Dienstag, 16. April 2024, 11:57 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

olli

unregistriert

1

Sonntag, 24. Februar 2008, 19:00

scriptberechneformel("refvar(high,z)", myref) funktioniert nicht...

hallo ich spiele gerade mit folgender simpler formel, da ich in einer VBS berechnung refvar benutzen möchte.
die periodenvariable von refvar soll durch eine berechnung und einen loopzähler angepasst werden;
hier habe ich mit einer einfacheren formel a la "mymacd" experimentiert
und es schon so nicht zum laufen bekommen. was mache ich falsch, oder kann man in "scriptberechneformel"
keine variablen perioden nehmen? das wäre dann nicht so gut... es ging allerdings schon mit "ref" und -10 als periode
nicht...

dim z,i
dim myref

z=-1
scriptberechneformel("refvar(high,z)", myref)
for i= 1 to alleperioden
ergebnis(i)=myref(i)
next

ganz allgemein wüsste ich gerne, wie konkret man verschiedene IV indis in dem VBS fenster aufruft und dann miteinander verkettet.
könnte jemand (z.b. herr knöpfel) mal so etwas posten, wie man, sagen wir mal einfach :

const GDp:20;
const Poszipk:7;
const Poszipl:15;
const refp:-10;
ref(POszi(GD(Close, GDp, S), Poszipk, Poszipl, S, %),refp)

in dem VBS fenster schreiben würde...

danke danke

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

2

Sonntag, 24. Februar 2008, 19:19

Hallo Olli,

probier bitte:


dim i
dim myref

if scriptberechneformel("const z: -1;refvar(high,z)", myref) then
for i= 1 to alleperioden
ergebnis(i)=myref(i)
next
end if
Viele Grüße von Anke

http://www.ascunia.de

olli

unregistriert

3

Sonntag, 24. Februar 2008, 21:31

danke anke

probiere das gerade aus und habe keinen zweifel, dass es funktionieren
wird.

diese funktion selbst ist ja noch uninteressant, denn das ganze macht ja erst sinn,
wenn man in das ref einen anderen indi hineinpacken und das ganze mit einer schleife
ausstatten kann.

leider kann man aber offenbar auch auf die konstante z nicht in dem VB programm
zugreifen um beispielsweise in einer schleife das z über einen zähler zu ändern, oder doch?
das in dem bild beigefügte beispiel geht leider nicht...

könnte jemand ein beispiel geben, wie man zwei verschiedene indikatoren aufruft
und ineinander verschachtelt und mit optimierbaren feldern ausstattet? das wäre
sehr hilfreich. muss man dann mit "ergebnis" die ergebnisse der verschiedenen indis
aufrufen?

wie gesagt, ein beispiel, das einen IV indi in einer schleife verwendet, wäre ebenfalls sehr nützlich
für uns programmiernieten... :-)

ich habe intuitiv das gefühl, dass es gar nicht so schwer ist, brauchbare sachen in VBS zu entwickeln,
wenn wir nur genügend beispiele bekommen, wie man bestimmt dinge vom prinzip her in unserem VBS fenster aufbauen muss.

also biiiiiiitttteeee : ein paar beispiele mit schleifen und IV indis!!! :P

danke
»olli« hat folgendes Bild angehängt:
  • VBprob1.png

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »olli« (24. Februar 2008, 22:10)


Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

4

Montag, 25. Februar 2008, 09:42

Hallo,

ein paar Beispiele finden sich auch schon im Forum, hier z.B. wie man einen Parameter (im Beisipiel den Parameter "Tagesperioden") in einer Schleife verändern kann:

Tageszeitabhängige Bewegung der letzten Tage


Viele Grüße

Andreas Knöpfel

olli

unregistriert

5

Montag, 25. Februar 2008, 10:42

danke für den link.

ich denke, es wäre schön, eine kleine beispielbibliothek an die hand zu bekommen, die von der systematik
die wichtigsten fälle der einbindung von IV indikatoren im VBS abdeckt und habe die mir wichtig erscheinenden
thematiken in den verbesserungsvorschlägen gepostet.

vielleicht könnte man die hier im forum geposteten VBS indis (und nicht nur diese) irgendwo als liste zusammenfassen,
damit sie als beispiele zur verfügung stehen? das würde viele herumsucherei ersparen.

olli

unregistriert

6

Montag, 25. Februar 2008, 12:17

konkretes BEISPIEL

:love: der witz an schleifen ist ja, dass man zeitpunkte in der vergangenheit finden kann,
zu denen etwas bestimmtes passiert ist, und dazu bar für bar zurückschaut, bis man
das ereignis gefunden hat.

als beispiel habe ich die kleine graphik beigefügt.

wie würde man in VBS das problem lösen, zu jedem zeitpunkt die zahl bars
berechnet zu bekommen die vergangen ist, seitdem der stochastik das letzte
mal (oder vorletzte mal) höher als zum aktuellen zeitpunkt war.
mit barssince und HHV geht das m.e. nicht und man braucht eine schleife.
die bar für bar nach hinten geht und überprüft, ob das high höher war als der jetzige kurs
(oder das high der letzen abgeschlossenen bar).
das wäre ein interessantes besipiel, das man gut an andere situationen anpassen könnte.

hat da jemand eine idee?

danke
»olli« hat folgendes Bild angehängt:
  • barszählen.png

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

7

Montag, 25. Februar 2008, 12:30

Hallo olli,

die Grafik fehlt!Ich programmiere Dir das gleich mal in VB,muss nur noch meine Finger aufwärmen dann geht's los.. :D :D
Hast Du schon mal den Indikator NewLevelBarSince() getestet? Vielleicht kommst Du auch damit hin?

PS: Die Grafik hatte gefehlt...:)
Happy Trading

olli

unregistriert

8

Montag, 25. Februar 2008, 12:32

hehe, daumen schon warm?

freue mich schon auf die magische formel.
aber der chartausschnitt ist doch gepostet?
ich kann ichn aufrufen... hmmm...

tja,
nein, den indi habe ich noch nicht ausprobiert.
sehe ihn mir gleich mal an! :-)

10m später: in der tat. das ist es, was ich machen wollte.
den kannte ich noch nicht!

vielleicht sollte man das beispiel dahingehend abändern,
dass der indi die bars zählen soll, in denen der stoch während
der letzten x perioden in einem band zwischen 40 und 60 war.
das wäre auch nicht uninteressant von der methodik her.

z.b. wenn der indi 40 ausgibt, war der STOCH in 40 der letzten
sagen wir x=500 bars innerhalb des bands von 40 und 60...

daanke

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »olli« (25. Februar 2008, 12:59)


Tobias Männlich

Meister

Registrierungsdatum: 3. September 2002

Beiträge: 663

Wohnort: NRW / Paderborn

9

Montag, 25. Februar 2008, 15:25

... ich bin immer wieder begeistert wie ihr auf die neuen Indikatoren aufmerksam werdet ...

steht das irgendwo -- welchen neuen Indikator es mit welchem Update gibt ? Irgendwie kriege ich da nie was mit... und das finde ich nicht schön ....
Gruss Tobias

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

10

Montag, 25. Februar 2008, 22:39

Hallo,

den Indikator gibt es eigentlich schon seit V4! Olli,Du kannst mal damit testen:

calc Level:CumSince(Zwischen(Stoch(5, 3), 20, 50), Stoch(5, 3)>50 or Stoch(5, 3)<20, 0);
SUM(Level, 500) {500Perioden Es erfolgt ein Reset auf 0, wenn der Stoch>50 oder <20 ist}
Happy Trading

olli

unregistriert

11

Dienstag, 26. Februar 2008, 09:29

super udo danke

nur funktioniert das nicht richtig...
der indikator kumuliert zwar korrekt,
setzt das cum aber nicht auf 0 wenn STO
ausserhalb des bandes bricht...
wenn der wert ausserhalb des bandes
liegt geht der indi langsam auf 0 zurück
offenbar bis die maximale periodenzahl
in cum durchlaufen ist....
allerdings sehe ich den fehler nicht...

hier ein screenshot.
die rote kurve ist ein STO(200,190) und das band liegt zwischen 45 und 55
als beispiel habe ich die grünen linien eingezeichnet bei denen der indi
auf 0 spingen müsste. tut er aber nicht...
»olli« hat folgendes Bild angehängt:
  • udocumsinceERR.png

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

12

Dienstag, 26. Februar 2008, 09:57

Hallo olli,

die Summe bezieht sich auf die eingestellten Perioden. Wenn man 100 Perioden zum Test verwendet wird die Summe auch über 100 Perioden berechnet,selbst wenn die Resetbedingung eintrifft!. Daher verringert sich die Kurve bei den Resetbedingungen bei jeder Periode um einen Zähler. Stelle mal die SumPerioden auf 2 oder 5 und Du wirst sehen, das der Indikator sofort auf 0 springt! Die Abfallende IndiKurve kann so interpretiert werden, das der STO sich nicht mehr in der eingestellten Zone befindet, deren binärer Wert über 100 Perioden aufsummiert wird!
Happy Trading

olli

unregistriert

13

Dienstag, 26. Februar 2008, 10:35

alles klar. mal sehen, ob ich es irgendwie schaffe, dass der zähler bei eintreten der resetbedingung auf null geht.

das scheint zu funktionieren...:

calc Level:CumSince(Zwischen(Stoch(stop, stov), leveld, levelu), (Stoch(stop, stov)>levelu) or (Stoch(stop, stov)<leveld), 0);
level

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »olli« (26. Februar 2008, 10:51)


Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

14

Dienstag, 26. Februar 2008, 10:53

Genauer betrachtet macht die Zählung schon Sinn! Wenn man den SumIndikator in Zonen unterteilt, kann man ihn als Filter oder Signalgeber nutzen. Umso weiter die Kurve fällt/steigt desto häufiger/weniger hält sich der STO in der eingestellten Bandzone,über den Betrachtungszeitraum (100) auf. Das heißt, wenn über 100 Perioden die Kurve stark abfällt und die Indikator Range zwischen 75 und 99 einstellt ist wird ein (anhaltender) Aufwärtstrend immer unwahrscheinlicher....
Happy Trading

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

15

Dienstag, 26. Februar 2008, 11:12

Hallo olli,

hier noch mal eine Formel die eventuell das treffen könnte, was Du meinst!

calc Level:CumSince(Zwischen(Stoch(200, 190), 45, 55), (Cross(Stoch(200, 190), 55, 1) = 1) or (Cross(Stoch(200, 190), 45, 1) = -1), 0);
Calc Summe:SUM(Level, 200);
calc Wert: ROC(Summe, 1, $);
(If(Wert>0, CUM(Wert), 0))
Happy Trading