Freitag, 19. April 2024, 22:30 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

1

Montag, 4. Februar 2008, 13:34

Merker setzen!

Hallo an alle,

ich arbeite mich gerade in Inv ein und möchte mir eine vorherige Bedinung merken, da man diese Funktion sehr oft benötigt. Zum testen wollte ich mal folgende Bedingung: GD10 kreuzt GD 20 nach oben - dieses soll er sich merken. Geht jetzt der Close über die GD50 dann soll ein Longentry kommen. Ich habe im Forum bestimmt alles gelesen was mit Merker, Schalter und ValueWhen zu tun hat, aber ich mache irgendeinen Fehler.

Quellcode

1
2
3
calc Longtrigger:ValueWhen((Cross(GD(Close, 10, S), GD(Close, 20, S), 1) = 1), 1, 1,V); 

(Cross(Close, GD(Close, 50, S), 1) = 1) AND Longtrigger


Was mache ich falsch? Über Hilfe würde ich mich sehr freuen.

Gruß Arend
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

2

Dienstag, 5. Februar 2008, 13:20

Hallo,

57 Zugriffe und niemand kann mir helfen? ;( Ich weis das es ne Anfängerfrage ist aber vielleicht erbarmbt sichja jemand. In Visual Basic hätte ich es längst programmiert aber mit der Investox-Eigensprache komme ich noch nicht so klar. Da verstehe ich die Logik noch nicht. Oder Ihr feiert alle Fasching und habt keine Zeit.

Gruß Arend
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

3

Dienstag, 5. Februar 2008, 13:49

Helau :-))

Probiere es mal damit-die GD Perioden musst Du noch anpassen!

calc GDCross:BarsSince((Cross(GD(Close, 2, S), GD(Close, 5, S), 1) = 1), 1);
Calc CloseCross:(Cross(close, GD(Close, 10, S), 1) = 1);
GDCross and CloseCross

Falls das Overcross der GDs schon stattgefunden haben muss, musst Du CROSS mit <> ersetzen oder wenn eine bestimmte Anzahl Perioden eingesetzt werden soll dann mit:
CrossCrossHold(Close, 0, 1)
Happy Trading

Snoopy

unregistriert

4

Dienstag, 5. Februar 2008, 13:54

Hallo trader Hawk,
Merker setzen und später abfragen und zurücksetzen ist nicht möglich.
Vielleicht reicht auch folgendes:
Longtrigger: GD10 ist größer GD50
Cross GD and Longtrigger

Übrigens kannst du auch mit dem Entwicklungstool oder in Version 5 mit Visual Basic Script programmieren.

Gruß Snoopy

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

5

Dienstag, 5. Februar 2008, 15:14

Helau Udo und Snoopy,

danke für die Antwort. Werde eure Lösungen gleich mal ausprobieren. Aber Snoopy, ist das Dein Ernst das man bei Investox keine Merker setzen und später abfragen kann ?( Das braucht man doch ständig in der Programmierung. Ich dachte auch ich hätte so was im Forum schon gelesen. Und das VB-Script, so dachte ich ist nur für Indikatoren und sehr stark eingeschränkt oder? Habe damit noch gar nichts versucht. Was ist eigentlich dieses Entwicklungstool oder Kit von dem viele sprechen?

Gruß Arend
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

6

Dienstag, 5. Februar 2008, 16:27

Hallo,

so, nochmal herzlichen Dank an Udo und Snoopy. Die Lösung von Dir Udo passt - aber ich verstehe nicht wieso :baby: Ich wäre nie drauf gekommen das ich dafür "BarsSince" benötige, da es in der Hilfe anders rüber kommt. Laut dieser Hilfe wäre eigentlich "ValueWhen" angebracht. Das meinte ich in meinem Posting, das mir die Logik von Investox noch völlig fremd ist. Wie will man da alleine mit der Hilfe drauf kommen? Für was ist dann "ValueWhen"? - denn ich dachte genau dieser speichert ein Ereignis. Hm.

Gruß Arend
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

7

Dienstag, 5. Februar 2008, 16:56

ValueWhen hält ein Ergebnis bei einer bestimmten Bedingung fest, solange bis eine neue Bedingung entsteht. Also bei jeder neue Bedingung (Cross GD) wird z.B. der Wert Close überschrieben.

Bei der Funktion Schalter wird ein Wert gespeichert. Aber es muss auch in der gleiche Programmzeile angegeben werden, wann der Schalter zurückgesetzt wird.

Es kann kein Merker gesetzt werden und dann später in einer beliebige Programmzeile wieder zurückgesetzt werden.

Gegenüber einer geläufigen Programmiersprache muss du betrifft der logischen Programmierung umdenken.

Frage einmal wegen dem Programmiertool (bis Ver. 4) bei Investox an (Herr Menstanza).
In Version 5 ist es enthalten.
Deine Abfrage kann als Indikator programmiert werden. Wie weit der Umfang der Programmierung in VB ist, kann ich nicht beurteilen. In denke das in Ver. 5 mehr möglich ist.

Gruß Snoopy

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

8

Dienstag, 5. Februar 2008, 18:43

Hallo Snoopy,

vielen Dank für die rasche Antwort. Das ich bei Investox umdenken muss habe ich gemerkt, leider. Aber schön das Du mir das bestätigt hast. Dann geht es offenbar jedem so ;) . Ich habe übrigens Inv.5. Muss ich echt mal schauen was das Entwickler-Kit ist. Oder meint man damit das jetzige VB-Script?

Zitat

In denke das in Ver. 5 mehr möglich ist.
Ich hoffe das mit Investox generell mehr möglich ist, was auch mechainsche Systeme betrifft, als wie mit einem günstigen Programm wie z.B. Visual Chart oder ProRealtime. Aber ich sehe gerade doch, das eigentlich sehr einfache Dinge irgendwie bei Inv. kompliziert sind. Hoffe das ich noch zu neu und unerfahren in Inv. bin um das beurteilen zu können und das, wenn man es beherrscht, wirklich sehr viel kann. Hoffentlich :S

Zu dem Merker habe ich jetzt bei der Lösung von Udo das Problem, das wenn er ausgestopt wird und die Bedingung noch "Wahr" ist, sofort wieder einsteigt. Deshalb wäre, denke ich die "Schalterfunktion" nicht schlecht, die Du mir erklärt hast. Diese müsste sich beim erneuten Cross zurück setzen. Muss ich mal versuchen ob ich das hinbekomme.

Also, vielen Dank nochmal und nicht das mir jemand den oberen Satz über Inv. krumm nimmt. Bin halt gerade etwas Nachdenklich geworden was die Umsetzung von einfachen Dingen betrifft. ?( In diesem Sinne: Helau

Gruß Arend
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

9

Dienstag, 5. Februar 2008, 20:07

Hallo trader-hawk,
dann hast du ja VB-Script. Das Entwicklertool benötigst du nicht (nur bis Version 4). Schaue einmal in der Hilfe, welche Befehle möglich sind. Im Anhang noch Beispiel Indis in VB-Script (Investox Seite).
Wenn du mit der Formel nicht weiterkommst, musst du dich noch mal melden.

Darf ich noch mal fragen, warum du von VisualChart weggegangen bist. In VisualChart sollte doch mit der kompletten Visual Basic Sprache fast alles möglich sein?

Gruß Snoopy
»Snoopy« hat folgende Datei angehängt:
  • ScriptIndis.Inn (4,69 kB - 385 mal heruntergeladen - zuletzt: 9. April 2024, 18:41)

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

10

Dienstag, 5. Februar 2008, 21:03

Hallo Snoopy,

nochmal Danke für Deine Hilfe. Werde mir die Indis mal ansehen.

Bis jetzt bin ich noch bei Visual Chart, wollte mich aber ganz auf Investox konzentrieren. Wieso fragst Du? Weil auch VC hier und da seine Tücken hat, ich auch einiges Tricksen musste um das zu bekommen was ich wollte (aber es ging) und ich echt dachte oder bis jetzt immer noch denke, das Investox mehr kann. Hoffe ich werde in diesem Punkt nicht enttäuscht. Aber ehrlich gesagt habe ich mich auch gewundert wieso man sich nicht an international anerkannte Progarmmiersprachen hält. Auch das man eigentlich gar nicht so richtig programmieren kann, sondern es eher eine Formelsammlung ist, war mir so nicht klar (ist aber meine eigene Schuld). Ich wollte eigentlich schon immer Investox, seit ich denken kann, auch natürlich wegen den Neuronalen Netzen da mich das einfach interessiert. Aber auch komplexe mechanische Systeme sollten natürlich möglich sein. Die Überlegung war Investox oder Omega Tradestation. Habe mich wegen den NN und dem deutschen Forum hier für Inv. entschieden.

Wie gesagt, ich hoffe nicht das Du mir jetzt sagst wie Naiv ich bin und das Inv. sehr starke Grenzen hat. Mache mir schon selber Gedanken. Es gibt ja viele Vorteile wo man Dinge in Berechnungen oder Direktabfragen schnell testen kann und Inv. nimmt einem natürlich auch sehr viel ab. Das ganze ist ja schon durchdacht. Nur hoffe ich halt das es bei mechanischen Systemen keine so starken Einschränkungen gegenüber VBA gibt. Der Preis muss ja auch irgendwie gegenüber anderen Programmen gerechtfertigt sein, wenn ich das so sagen darf. Weiterhin hoffe ich auch das im Bereich NN was passiert da es Wahnsinn ist ein brauchbares NN 3-7 Tage zu trainieren.


Momentan ist es noch so das ich Ideen die ich schnell programmiert haben möchte in VC mache, da wie ich schon sagte es in Inv. echt zum Teil kompliziert ist und das hat nichts damit zu tun, das ich noch ein Newbie bin :)


Gruß Arend
Grüße aus dem Schwabenland
Arend

Snoopy

unregistriert

11

Dienstag, 5. Februar 2008, 21:42

Hallo trader-hawk,
Ich hatte gefragt weil ich VisualChart (vom Lesen) schon sehr umfangreich finde. Auch macht die grafische Programmierung kein schlechten Eindruck. Wahrscheinlich aber komplexe Anwendung damit nicht möglich?

Wenn du bei Investox etwas umgedacht hast, wird das schon.
Aber wie man weißt ist immer das Programm das Beste, das man kennt.

Gruß Snoopy

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

12

Dienstag, 5. Februar 2008, 21:45

Hallo Arend,

wann soll das System nach dem ausstoppen wieder LONG gehen oder sollen LONG und SHORT im ständigen Wechsel gehandelt werden?

NN:

Bei 3-7 Tagen Training (mit einem schnellen PC) drängt sich mir immer der Aufwand-Nutzen Effekt gegenüber anderen Systemen auf! Ich sehe es als viel wichtiger,das die Qualität der Inputs so wie deren Aufbereitung hochwertig ist!Das zur Verfügung stehende Backprop-Netz ist m.A. für Finanzanlysen ohnehin überdimensioniert und man sollte mit möglich wenig Gewichten und Inputs ein stabiles Ergebnis erzielen um einen stabilen OutofSample Zeitraum zu erreichen!
Happy Trading

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

13

Dienstag, 5. Februar 2008, 22:06

Hallo,

@Snoopy: Danke für die aufmunternden Worte. "Und mit dem Programm was man kennt..." hast Du natürlich recht. Und ich möchte jetzt Investox richtig kennen lernen, nur fehlt mir noch der Bezug zur Syntax des ganzen. Deshalb bin ich froh über dieses Forum hier.

Der grafische Entwicklungsassistent von VC ist sehr gut, aber wie Du schon vermutet hast, sollte man komplexere Systeme direkt im Codeteil machen.

@ Udo Hallo, ich bin gerade dabei es zu versuchen mit dem Schalter. Das Problem ist, das es auser dem Entry und Exit eigentlich nichts gibt was den Schalter auslösen könnte. Ich möchte eigentlich das wenn der Trade zu Ende ist, durch Stop oder Target, er erst wieder bei neuem Cross (egal ob Long oder Short) ein evt. neues Signal liefert. Ich weis nicht ob ich jetzt falsch liege, aber könnte man nach einem Entry und dessen Bedingung, nicht einfach sagen, wenn es ein neues Close gibt, stelle den Schalter wieder auf 0 bis ein neues Cross kommt. Das wäre doch die einfachste Möglichkeit wenn ich jetzt keinen Denkfehler mache.

Gruß Arend
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

14

Dienstag, 5. Februar 2008, 22:20

@Arend

In der Regel sollte die Crossformel so wie Du es beschrieben hast abgearbeitet werden! CROSS ist nur gültig wenn ein einmaliges CROSS vorliegt! <> ist immer gültig so lange die Bedingung wahr ist-egal ob der Trade zwischenzeitlich mit einem Stopp beendet wurde oder nicht! Wir der Trade mit den Vorzeichen <> mit einem Stopp beendet, und alle Bedingungen sind noch wahr,ist man frühestens in der nächsten Periode wieder LONG/SHORT. Steht dort aber CROSS MUSS CLOSE den GD crossen. Es genügt nicht wenn alle Bedingungen wahr sind und kein OVERCROSS stattfand um ein Signal auszulösen!
Happy Trading

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

15

Mittwoch, 6. Februar 2008, 12:07

Hallo Udo,

danke für Deine Antwort mit der Du natürlich recht hast. War im Nachhinein ein blödes Beispiel, da Du es elegant ohne Schalter-Funktion gelöst hast. Denn es geht mir ja nicht um den GD-Cross, sondern echt darum wie ich einen Schalter setzen kann, der pro Bedingung nur einen Trade zulässt. Hm, muss mir ein anderes Beispiel einfallen lassen wo man das testen kann.

Gruß Arend
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

16

Mittwoch, 6. Februar 2008, 12:42

Hallo,

wie viele unterschiedliche Bedingungen sind es insgesamt pro Tag? Soll an einem Handelstag nur ein Trade (in jede Richtung) generiert werden?
Happy Trading

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

17

Mittwoch, 6. Februar 2008, 13:41

Hallo Udo,

das mit jedem Tag ein Trade kann man ja einstellen. Mich interessiert wirklich (aber nur als Beispiel) wie man einen Schalter setzen könnte wenn es KEINE definitive Bedingung gäbe, die ihn umstellen könnte. Es gibt ja Bedingungen wo ich ausgestoppt werde und die Bedingung immer noch WAHR wäre und deshalb sofort ein neues Entry käme. Dieses will ich dann unterbinden bis die Bedingung wieder von neuem zutrifft. Das bedeutet das ich nach dem ausstoppen oder sofort nach dem Entry den Schalter sofort umstellen müsste, damit kein neuer Trade generiert wird. Also muss das Entry oder der nächste Close den Schalter auf Unwahr stellen. Ich weis nicht ob Du verstehst was ich meine. Deshalb sagte ich das ich mir ein Beispiel suche wo ich das besser erklären kann. Vielleicht mache auch ich einen Denkfehler und man kommt bei Investox durch geschickte Programmierung ohne "Merker" aus. Bei den GD`s hast Du es ja auch mit BarsSince hinbekommen, wo ich nie drauf gekommen wäre :)

Gruß Arend
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

18

Mittwoch, 13. Februar 2008, 17:51

Hallo Udo und alle anderen,

jetzt hab ich ein Beispiel für mein Merker-Problem gefunden. :) Dieses Devisen-System was hier im Forum mal kurz gepostet wurde und auch in anderen Foren erscheint, trifft es auf den Kopf. Das ist das, wenn ich frage, wie kann ich einen Merker setzen, wenn keine Bedingung, auser einem Stop oder Target vorkommt, der ihn wieder zurück setzen könnte.

Wenn ich bei diesem System-Beispiel bleibe und nur diesen einen Indikator (Directional Movement Index) verwende, mit DI plus und Minus und dem ADX - fertig. Die beiden DI`s kreuzen sich, dieser Cross muss nun gemerkt werden. Ist dann zu einem späteren Zeitpunkt der ADX zwischen diesen beiden DI`s muss das Entry-Signal kommen. So weit kein Problem mit der Lösung von BarsSince, von Udo:

Quellcode

1
2
3
calc Shortcross: BarsSince((Cross(PDI(14), MDI(14), 1) = -1), 1); 
calc Shortsignal: ADX(14) < MDI(14) And ADX(14) > PDI(14); 
Shortcross And Shortsignal


Wird der Trade jetzt durch einen Stop oder Target geschlossen ist die Bedingung ja immer noch "Wahr" und er steigt sofort wieder ein. Er soll aber erst nach einem neuen Cross der DI`s wieder von vorne beginnen und das schaffe ich nicht. Hab schon mit Schalter und ValueWhen einiges versucht, aber leider ohne Erfolg. Und solche Dinge kommen ja oft vor, oder ich benötigte solche Merker früher immer oft, deshalb wundert es mich das ich im Forum nur wenig drüber gefunden habe. Deshalb denke ich das es in Investox irgendwie anders gelöst wird. Aber wie? ?(

Gruß Arend
Grüße aus dem Schwabenland
Arend

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

19

Mittwoch, 13. Februar 2008, 20:00

Hallo Arend,

probier bitte mal, ob folgende Formel Dein Problem löst:

calc GDCross:BarsSince((Cross(GD(Close, 10, S), GD(Close, 20, S), 1) = 1), 1);
Calc CloseCross:(Cross(close, GD(Close, 30, S), 1) = 1);
calc counter: CumSince(closecross,gdcross=0,0);

GDCross>0 and CloseCross and counter =1

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

20

Donnerstag, 14. Februar 2008, 01:34

Hallo Anke,

danke für Deine Hilfe. Könntest Du das Beispiel auf das vorherige Beispiel mit den DI`s versuchen. Denn das mit den GD`s ist nicht so prädestiniert dafür. Das mit den DI`s ist eigentlich ein sehr schönes Beispiel dafür. Wenn quasi keine Bedingung für die Rücksetzung eines Merkers kommt, auser einem Stop oder Limit. Da bin ich momentan Ratlos.

Das wäre Super.

Viele Grüße Arend
Grüße aus dem Schwabenland
Arend