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

Geschrieben von Gast (nicht überprüft) am
Rock
Mitglied seit 11 Jahre 4 Monate

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

Gast

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

BKuerbs
Mitglied seit 11 Jahre 4 Monate

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

Gast

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

BKuerbs
Mitglied seit 11 Jahre 4 Monate

------------------------- 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

Gast

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

BKuerbs
Mitglied seit 11 Jahre 4 Monate

--------------------------------------------------------
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

Rückrufservice
Beschreiben Sie bitte Ihr Anliegen, damit wir uns auf den Rückruf vorbereiten können.
Ja, ich habe die Datenschutzerklärung zur Kenntnis genommen und willige ein, dass die von mir angegebenen Daten inklusive der Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen elektronisch erhoben und gespeichert werden. Meine Daten werden dabei nur streng zweckgebunden zur Bearbeitung meiner Anfrage genutzt und nicht ohne Einwilligung weitergegeben. Diese Einwilligung kann jederzeit mit Wirkung für die Zukunft widerrufen werden.
Fragen?

Sie haben Fragen zu ZMP Live? Unser Team steht gerne hilfsbereit zu Ihrer Verfügung. Senden Sie uns gerne eine Nachricht:

Es gilt unsere Datenschutzerklärung

Jetzt registrieren

Jetzt registrieren und ZMP Live+ 14 Tage kostenlos testen!
  • Dauerhaft kostenfrei
  • Keine Zahlungsinformationen erforderlich