Metastock: Gibt es ein Tutorial zur Programmierung ?
Hallo,
ich arbeite mich gerade ein wenig in die Programmierung für System-Tests, Expert und Indikatoren ein. Leider gibt es keine Tutorials, jedenfalls konnte ich keine finden.
Gibt es keine Bücher die sich mit der Metastock-Programmierung beschäftigen ?
Ich wollte eine völlig simple Formel schreiben, die mir ein Kaufsignal generiert wenn die letzten 5 Ticks positiv (jeder Tick höher als der letzte) waren und ein Indikator >30 ist.
Das müsste ein einfacher Einzeiler sein ?
Ich hoffe mir kann jemand helfen ;-)
greetz
aureleus
Doch, es gibt etwas !
Unter groups.yahoo.com gibt es eine Benutzergruppe "equismetastock". Melde dich dort an, dann kannst du unter "files" das FormulaBook.pdf herunterladen.
Ist wirklich nicht schlecht und nützlich für Einsteiger.
Warum Equis so etwas nicht den Metastock Handbüchern beilegt ist mir ein Rätsel.
Gruß Rock
Hi rock,
danke erstmal, das mit den Indikatoren einbinden klappt schon ganz gut aber hat nicht jemand einen Schnipsel Code bezüglich der 5 positiven Ticks hintereinander, steh da echt auf der Leitung ?
Sorry, aber ich bin halt kein Programmierer ;-((
greetz
thx
aureleus
TckComp := Close>Ref(Close,-1);
TTest := Sum(TckComp,5)=5;
TTest AND Indikator >30 { Deinen Indikator einsetzen }
Auf dem SPU0, mit ca 27000 Ticks in 130 Tagen, traf die Bedingung knapp 250 mal zu, also nichtmal zweimal am Tag.
Viel Spaß
Bernd Kürbs
Big Thx, Bernd,
eine Verständnisfrage habe ich aber noch ;-))
TckComp := Close>Ref(Close,-1);
Hier legst du eine Variable mit Namen TckComp an in der der letzte Schlusskurs gespeichert wird.
TTest := Sum(TckComp,5)=5;
Hier eine weitere Variable um die erste Variable 5mal zu checken ob sie (Tick) jeweils größer ist als die letzte. Stimmt doch soweit ?
Aber wozu steht die zweite 5 und wieso habe ich immer die gleichen Ergebnisse wenn ich diese Zahl beliebig auswechsle, z.b. 10 Ticks hintereinander ? Ich bekomme jeweils die gleiche Anzahl von Signalen, was ja nicht stimmen kann ?
Ich hoffe ich nerve nicht zu sehr, aber ich würde es auch gern kapieren was ich so eintippe ;-))
greetz
big thx
aureleus
------------------------- Zitat -------------------------------
TckComp := Close>Ref(Close,-1);
Hier legst du eine Variable mit Namen TckComp an in der der letzte Schlusskurs gespeichert wird.
--------------------------------------------------------
Nein, das ist ein Flag, das angibt, ob das aktuelle Tick höher als das vorherige ist. Man kann es auch so schreiben:
TckComp := If(Close>Ref(Close,-1),1,0);
-------------------------- Zitat ---------------------------
TTest := Sum(TckComp,5)=5;
Hier eine weitere Variable um die erste Variable 5mal zu checken ob sie (Tick) jeweils größer ist als die letzte. Stimmt doch soweit ?
------------------------------------------------------
Nein, hier wird die Summe über die letzten 5 ( Sum(...,5) ) Werte des Flags "TckComp" gebildet: Wenn diese gleich 5 ist ( Sum(..)= 5 ), dann ist deine Bedingung erfüllt. "TTest" ist auch ein Flag, normal = 0 und nur dann = 1, wenn die genannten Bedingungen erfüllt sind.
--------------------------- Zitat ---------------------------
Aber wozu steht die zweite 5 und wieso habe ich immer die gleichen Ergebnisse wenn ich diese Zahl beliebig auswechsle, z.b. 10 Ticks hintereinander ? Ich bekomme jeweils die gleiche Anzahl von Signalen, was ja nicht stimmen kann ?
------------------------------------------------------
Da weiss ich weder, was du gemacht hast, noch auf was für Daten du testest. Wenn du nur die "zweite" 5 gegen eine 10 auswechselst, solltest du immer eine 0 bekommen. Die Summe über max 5 Einsen kann höchstens 5 sein.
---------------------------- Zitat -------------------------
Ich hoffe ich nerve nicht zu sehr, aber ich würde es auch gern kapieren was ich so eintippe ;-))
------------------------------------------------------------
Das ist ein sehr begrüßenswerter Wunsch. Er wird am schnellstens und besten durch üben und nochmal üben erfüllt (und ins Handbuch schauen).
Wenn du eine Zeile nicht verstehst, gib diese einzeln in einen Indikator ein, und schaue dir an, was sie bewirkt.
Viel Erfolg
Bernd Kürbs
Ui, da habe ich ja so ziemlich alles falsch interpretiert ;-)
Du schreibst:
Da weiss ich weder, was du gemacht hast, noch auf was für Daten du testest. Wenn du nur die "zweite" 5 gegen eine 10 auswechselst, solltest du immer eine 0 bekommen. Die Summe über max 5 Einsen kann höchstens 5 sein.
Ich habe einfach im Systemtester unter
ENTER LONG das eingegeben:
TckComp := CLOSE>Ref(CLOSE,-1);
TTest := Sum(TckComp,5)=5;
und unter ENTER SHORT:
TckComp := CLOSERef(CLOSE,-1);
TTest := Sum(TckComp,10)=10;
Tut er aber nicht, immer die gleiche Anzahl ? Oder habr ich hier einen kompletten Denkfehler ?
Handbuch ?
Habe ich leider keines, ich habr Metastock 7.02 Prof. bei Ebay für 900 $ ersteigert, der Verkäufer hat mir aber leider kein Handbuch mitgeschickt, damals war mir das auch nicht so wichtig und jetzt meldet er sich nicht mehr auf meine mails ;-((
Nochmals vielen Dank.
greetz
aureleus
--------------------------------------------------------
Angewendet habe ich das bei einem 1 Minuten Intraday Dax-Chart, müsste ja auch klappen da er halt immer die letzten Ticks nimmt.
---------------------------------------------------------
Ein 1-Minuten-Chart ist kein Tick-Chart. Was meinst du mit "die letzten Ticks"? Wenn du die Formel auf einen 1-Minuten-Chart anwendest, nimmt MS halt das Close des Bars, d.h. den letzten Tick des Bars.
------------------------------------------------------------------------
Wenn ich jetzt die BEIDEN 5er gegen 10er austausche, müsste er mir ja entsprechend weniger anzeigen ? Also:
ENTER LONG:
TckComp := CLOSE>Ref(CLOSE,-1);
TTest := Sum(TckComp,10)=10;
Tut er aber nicht, immer die gleiche Anzahl ? Oder habe ich hier einen kompletten Denkfehler ?
----------------------------------------------------------------------
Das siehst du schon richtig. Ich habe den Test mal mit 10 Up-Ticks hintereinander auf den SPU0 angewandt und es gibt kein einziges Ereignis. Im Gegensatz zu den ca 270 5-Up-Ticks.
Zum Vergleich: Ich habe die beiden Indikatoren mal auf einen Tageschart des SP500 angewandt (von 1930 bis heute). Es gibt 760 mal 5-Up-Tage und ganze 29 mal 10-Up-Tage.
Ich kann nur dazu raten, sich die Indikatoren und Ereignisse, die man in einem Systemtest einbauen will, sich zuerst als Indikatoren im Chart bzw. mit Hilfe des Expert Advisors anzeigen zu lassen. Im Systemtester gibt es halt noch einige Stellschrauben mehr und das alles auf einmal anzuwenden, führt dazu, dass man sich schnell verheddert.
Was bei deinem Test schief läuft, weiß ich nicht.
Die Online-Hilfe in MS entspricht weitestgehend dem Handbuch.
Viel Erfolg
Bernd Kürbs