DarthTrader Posted March 1, 2009 Report Share Posted March 1, 2009 Hallo zusammen, wie in dem Thread zuvor soll hier die Idee der Daily-Range aus einem Traders-Magazin von Philipp Kahler als Indikator und EA umgesetz werden. Die Range bestimmt die Schwankungsbreite des Vortages. Diese wird dann vom aktuellen Hoch des laufenden Tages abgezogen und zum Tief hinzuaddiert. So werden Tage mit größerer Volatilität erkannt, die man Intraday in die Ausbruchsrichtung traden kann. Pro Tag wird nur ein Trade eingegangen, wenn die UpperRange oder LowerRange durchbrochen wird. Ist der Schlusskurs von gestern größer als die Range und als die Eröffnung, wird heute eingestiegen, wenn es einen Tick über oder unter dem Band gibt. Der Ausstieg findet entweder am Schlusskurs, hier 21:45 statt, oder bei Erreichung der Eröffnung, da dies einen strategischen Wechsel von Short nach Long oder umgekehrt nach sich zieht. Vorerst reicht dies, um die Ergebnisse zu testen. In TradeSignal hatten sich bessere Werte ergeben, wenn die Uhrzeit auf 10-12 und 14-21 Uhr begrenzt wird, Fehltrades werden so vermieden. Ich rede hier als Underlying vom FDAX, bei anderen Werte kann sich das ändern. Da ich den FDAX als Symbol bei TradeSignal sehr gut zum Vergleich nehmen kann und hier die Open + Close-Werte transparenter sind, würde ich gerne erst die Strategie hierauf zum Laufen bringen, danach kann man sich um EURUSD oder andere Währungspaare kümmern. Leider wird, wenn ich den nun funktionierenden (so glaube ich) Indikator DailyRange nehme, immer nur ein Trade generiert. Laufzeit ist ab dem 01.01.2009, getradet wird erst ab dem 10.01.09, da über Weihnachten nichts los ist. Wo ist hier der Fehler? Ich verwende doch nur den Indikator. Leider werden in der Print-Ausgabe auch ander Range-Werte ausgespuckt, als der Indikator für die Tage zugrunde legt ... merkwürdig. Sollten die Fehler behoben sein, können wir uns gerne um Themen wie Money-Management, Effizientester Ausstieg und bestes Underlying kümmern. Hier ist der Code: DT_IND_DailyRange.mq4DT_EA_DailyRange.mq4 Seht es mir bitte nach, wenn einige Debug-Ausgaben vorhanden sind, ich bin ja noch die Sprache am lernen. Wobei eher, wie bei vielen Tradingprogrammen, der Ablauf bzw. die Abarbeitung der Bars das größere Problem darstellt. Viel Spaß damit und einen guten WochenstartDarthTrader Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 2, 2009 Report Share Posted March 2, 2009 Als erstes:Find ich super das du den EA reinstellst! Das hilft sicher auch den anderen MT-Neulingen! Leider wird, wenn ich den nun funktionierenden (so glaube ich) Indikator DailyRange nehme, immer nur ein Trade generiert. Laufzeit ist ab dem 01.01.2009, getradet wird erst ab dem 10.01.09, da über Weihnachten nichts los ist. Wo ist hier der Fehler? Ich verwende doch nur den Indikator. Leider werden in der Print-Ausgabe auch ander Range-Werte ausgespuckt, als der Indikator für die Tage zugrunde legt ... merkwürdig. Inwiefern andere Rangewerte ausgespuckt? Du führst das ganze bei jedem Tick aus, wenn du jetzt also einen Bar hast, bei dem gerade ein neues lokales Low entsteht, wird ab dem Moment, wo der kurs unter das aktuelle Low fällt, bei jedem Tick deine UpperRange ausgespuckt, und hier natürlich immer eine andere, weil ja das aktuelle Low nach unten wandert (und damit dazwischen auch anders ist, als am Ende von dem Bar (was dann im Chart angezeigt wird). Warum nur eine Order ausgeführt wird: Das eröffnen von mehr als einer pro Tag verhindert "schonGetradet", aber woher weiß die Variable wann ein neuer Tag startet und sie wieder false sein sollte? ;) Bei der Margin Berechnung blick ich noch nit ganz durch ;) Zahlst du beim FDAX immer nur 1000 Euro Margin pro Lot? Wär mir neu... Zum System: Soweit ich mich erinnere war der Ausstieg bei Open bzw. anderem Ende der Range, je nachdem was näher ist oder?Und wurde nicht "nur ein Trade in eine Richtung pro Tag"? Also wenn er zuerst nach oben läuft, umdreht ins SL und dann nach unten abmarschiert, kriegt er eine zweite Chance? I mein man kann natürlich das System auch einfach modifizieren, je nachdem was erfolgreicher ist ;) Ansonsten nur noch ein paar Anmerkungen:Noch zum Indi: du löscht beim deinit alle Objekte, obwohl du gar keine erzeugst ;) Also auch Trendlinien oder was auch immer der User selber einzeichnet. Zum EA: - Bid und Ask müssen nit Normalisiert werden, die sind direkt vom Server und damit auf "Kursniveau" ;)- Aufgrund deiner Defaults bei den Parametern: Du kannst auch intern die Ticksize des Symbols abfragen und damit die Entfernungen vom User in Ticks angeben lassen, ist meist intuitiver als in Points.- Ich würd empfehlen, dass du eine Magicnumber verwendest, um die Trades vom EA zu kennzeichnen. Derzeit würdest du am Abend alle offenen Orders in dem Account in dem Symbol closen, auch wenn sie händisch oder von einem anderen EA geöffnet wurden. Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 2, 2009 Author Report Share Posted March 2, 2009 Inwiefern andere Rangewerte ausgespuckt? Du führst das ganze bei jedem Tick aus, wenn du jetzt also einen Bar hast, bei dem gerade ein neues lokales Low entsteht, wird ab dem Moment, wo der kurs unter das aktuelle Low fällt, bei jedem Tick deine UpperRange ausgespuckt, und hier natürlich immer eine andere, weil ja das aktuelle Low nach unten wandert (und damit dazwischen auch anders ist, als am Ende von dem Bar (was dann im Chart angezeigt wird). Klar, so ist der Algo. Aber in der Print-Ausgabe jeden Tages sollten zumindest für heute die aktuellen Werte drinn stehen. Es sind aber andere, als wenn ich mir im Chart die Rangewerte anschaue. Das irritiert mich etwas. Zumal der EA ja noch nicht fehlerfrei läuft. Warum nur eine Order ausgeführt wird: Das eröffnen von mehr als einer pro Tag verhindert "schonGetradet", aber woher weiß die Variable wann ein neuer Tag startet und sie wieder false sein sollte? ;) Oh, hatte vorher nicht auf meinen Indi zugegriffen, sondern die Berechnung nochmal im EA ausgeführt, da wusste sie es natürlich. Jetzt muss ich nochmal den Tageswechsel hinzuprogrammieren :-) Bei der Margin Berechnung blick ich noch nit ganz durch ;) Zahlst du beim FDAX immer nur 1000 Euro Margin pro Lot? Wär mir neu...Zum System: Soweit ich mich erinnere war der Ausstieg bei Open bzw. anderem Ende der Range, je nachdem was näher ist oder?Und wurde nicht "nur ein Trade in eine Richtung pro Tag"? Also wenn er zuerst nach oben läuft, umdreht ins SL und dann nach unten abmarschiert, kriegt er eine zweite Chance? I mein man kann natürlich das System auch einfach modifizieren, je nachdem was erfolgreicher ist ;) Zur Margin: Das habe ich aus einem anderen EA kopiert, ist nur ein Anhaltspunkt für mich, wie so etwas geht, denn für einen späteren Live-Handel finde ich das schon wichtig. Ja, das andere Ende der Range habe ich noch nicht beachtet. Brachte aber in TS keine wirklich besseren Ergebnisse. Das muss aber nochmal getestet werden. Nur ein Trade, ja, dass kann man variabel halten, einer hat sich eben beim FDAX in TS besser bewährt, aber da bin ich offen. Noch zum Indi: du löscht beim deinit alle Objekte, obwohl du gar keine erzeugst ;) Also auch Trendlinien oder was auch immer der User selber einzeichnet. Yo, dass ist auch intern für mich, um zu sehen wie es geht, aber Danke für den Hinweis. Es ist geplant Textobjekte zur Ausgabe der Rangeweite einzubauen. Zum EA: - Bid und Ask müssen nit Normalisiert werden, die sind direkt vom Server und damit auf "Kursniveau" ;)- Aufgrund deiner Defaults bei den Parametern: Du kannst auch intern die Ticksize des Symbols abfragen und damit die Entfernungen vom User in Ticks angeben lassen, ist meist intuitiver als in Points.- Ich würd empfehlen, dass du eine Magicnumber verwendest, um die Trades vom EA zu kennzeichnen. Derzeit würdest du am Abend alle offenen Orders in dem Account in dem Symbol closen, auch wenn sie händisch oder von einem anderen EA geöffnet wurden. Ticks, Points, ok ich schaue mal nach was Du genau meinst.Gibt es eine Methode, zur Generierung von MagicNumber und dann wieder der Abfrage bei der Order?Ich gebe ja eine mit, muss sie nur wieder auslesen. Wenn ich diese dann noch per Random() erzeugen könnte, hätte man es ja... ... kann erst wieder Morgen am EA weiterarbeiten ... danke aber schon mal für die Tipps ... Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 2, 2009 Report Share Posted March 2, 2009 Ticks, Points, ok ich schaue mal nach was Du genau meinst. ticksize: minimale Kursbewegung: beim FDAX 0.5, beim EURUSD 0.0001Pointsize: kommastellen in denen der kurs läuft, hat nix direkt mit dem kurs zu tun und ist mitunter auch sehr unintuitiv (wenn man Handel mit dem FDAX gewohnt ist, und dann 2000 für einen 20 punkte SL eintragen muss ....) Gibt es eine Methode, zur Generierung von MagicNumber und dann wieder der Abfrage bei der Order?Ich gebe ja eine mit, muss sie nur wieder auslesen. Wenn ich diese dann noch per Random() erzeugen könnte, hätte man es ja... Naja, Random erzeugen wär nit so top, du musst die Order ja auch wieder erkennen.Mach dir einfach eine Konstante#define MAGIC_NUMBER 12345Die gibst bei der OrderSend dazu, und mit OrderMagicNumber() kannst sie wieder abrufen.Damit kannst du dann mehrere EAs am gleichen Symbol im gleichen Account laufen lassen, ohne das sie sich beeinflussen (solang du in jedem EA eine andere Zahl bei der Konstanten nimmst ;) Quote Link to comment Share on other sites More sharing options...
Ecart Posted March 2, 2009 Report Share Posted March 2, 2009 Find ich super das du den EA reinstellst! Das hilft sicher auch den anderen MT-Neulingen! dito. Werde den EA heute abend testen...+ Feedback Quote Link to comment Share on other sites More sharing options...
Ecart Posted March 2, 2009 Report Share Posted March 2, 2009 soll hier die Idee der Daily-Range aus einem Traders-Magazin von Philipp Kahler Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 2, 2009 Author Report Share Posted March 2, 2009 (edited) Danke für den Link, das Buch liegt auch auf meinem Schreibtisch. Kann ichnur empfehlen. Edited March 2, 2009 by DarthTrader Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 2, 2009 Author Report Share Posted March 2, 2009 So, anbei die neue Version, mit den von Mythos angesprochenen Änderungen.Jetzt läuft er schon mal, aber die Ergebnisse sind im Gegensatz zu TS ganz anders ...Hm... hatte extra nur ab 01.01.09 backgetestet, da ich irgendwie keinen Endlos-Kontrakt vom FDAX habe.Aber auch hier wird nur Verlust generiert. Muss noch ein Programmfehler sein. Alle Trades, werden direkt wieder geschlosesen ... Da ich jetzt weg muss, hier schon mal die Version 1.1 des Codes. DT_EA_DailyRange.mq4 Quote Link to comment Share on other sites More sharing options...
Ecart Posted March 3, 2009 Report Share Posted March 3, 2009 Klasse, vielen Dank für diesen Code. Kleiner Vorschlag: Versions-Nummer bitte im Namen angeben. (Kann zwar jeder selber machen, aber so haben wir es alle einheitlich). Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 3, 2009 Author Report Share Posted March 3, 2009 Klasse, vielen Dank für diesen Code. Kleiner Vorschlag: Versions-Nummer bitte im Namen angeben. (Kann zwar jeder selber machen, aber so haben wir es alle einheitlich). Wie gesagt, erstes Ziel ist es dieselben Ergebnisse wie bei TS zu erzielen, dann weiß ich,dass ich auf dem richtigen Weg bin. Da ich wahrscheinlich bald mit Subversion als Konfigurationsverwaltungssystemarbeite, werden dort die VErsionsnummern verwaltet. Im Namen macht das aus meiner Erfahrung selten Sinn... Noch eine Frage. Was muss ein EA alles haben, was benötigt dieser EA noch alles um Fehler beim produktiven Einsatzabzufangen? Will ja lernen :-) Ich habe mal eine Endlosschleife gesehen, die immer wieder bei fehelrhafter Orderabwicklungdurchlaufen wird, ist dass sinnvoll? Beste GrüßeDarth Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 3, 2009 Report Share Posted March 3, 2009 Wie gesagt, erstes Ziel ist es dieselben Ergebnisse wie bei TS zu erzielen, dann weiß ich,dass ich auf dem richtigen Weg bin. Da ich wahrscheinlich bald mit Subversion als Konfigurationsverwaltungssystemarbeite, werden dort die VErsionsnummern verwaltet. Im Namen macht das aus meiner Erfahrung selten Sinn...SVN ist natürlich klasse, da du hier Versionen reinstellst, wärs trotzdem schön einen Header anzulegen, in dem du die Versionsnummer einträgst, dann ist es auch leichter abzugleichen ob alle über den gleichen reden ;) Noch eine Frage. Was muss ein EA alles haben, was benötigt dieser EA noch alles um Fehler beim produktiven Einsatzabzufangen? Will ja lernen :-) Ich habe mal eine Endlosschleife gesehen, die immer wieder bei fehelrhafter Orderabwicklungdurchlaufen wird, ist dass sinnvoll?Es ist schwer eine vollständige Liste aufzuzählen. Errorhandling beim senden von Orders etc macht auf alle Fälle Sinn. Wenn du willst kannst du da die Funktionen von der TradeBox verwenden (hier im Downloadbereich), dort wird die Preis"normalisierung" und das Errorhandling bereits intern erledigt, was den Code ein bissl übersichtlicher macht. Ich werd das ganze auch mal testen (leider nur auf EURUSD), mal sehen wo die derzeitigen Fehler liegen. Noch ein allgemeiner Hinweis zum schließen von Orders:Wenn du in einer Schleife alle Orders aus der History durchgehst und teilweise welche schließt, musst du sehr aufpassen mit dem index. Wenn du die Order i schließt, rücken dadurch alle anderen auf, und das was vorher i+1 war, ist jetzt i. Gehst du also einfach weiter, überspringst du dabei manche order. Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 3, 2009 Report Share Posted March 3, 2009 Hab mich ein bissl mit dem EA gespielt.1. Entry bis Hour == 21 zu machen ist suboptimal, da er zwischen 2145 und 2200 weiterhin einsteigen versucht, aber sofort wieder gekickt wird.2. Du hast bei der Zeitabfrage Klammern vergessen. Wenn du && und || i einer Bedingung hast, immer _alle_ Klammern setzen. Denn bei (a && b || c && d) weiß ich nicht wie der Compiler es liest, vermutlich von links nach rechts, was aber nicht in deinem sinn sein dürfte.Hier wie ich denke das du es gemeint hast: if ((((TimeHour(Time[0]) >= StartZeit1) && (TimeHour(Time[0]) <= EndZeit1)) || ((TimeHour(Time[0]) >= StartZeit2) && (TimeHour(Time[0]) <= EndZeit2))) && // Weihnachten rausnehmen, erst ab 10.01. wieder handeln (((TimeMonth(Time[0]) < 12) && (TimeMonth(Time[0]) > 1)) || ((TimeMonth(Time[0]) == 12) && (TimeDay(Time[0]) < 20)) || ((TimeMonth(Time[0]) == 1) && (TimeDay(Time[0]) > 9)))) Sonst tut der EA glaub ich genau das was er soll. Es ist im Moment nur nicht positiv ;)Beim vergleichen mit TradeSignal ergebnissen musst du aufpassen, in der TradeSignal werden nur ganze Bars betrachtet. Außerdem ist die Zeitberechnung eine andere. In MT ist Time[0] die Zeit des ersten Ticks des Bars, in Tradesignal die vom letzten Tick. Außerdem dürftest du andere Daten haben oder? Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 3, 2009 Author Report Share Posted March 3, 2009 (edited) Hab mich ein bissl mit dem EA gespielt.1. Entry bis Hour == 21 zu machen ist suboptimal, da er zwischen 2145 und 2200 weiterhin einsteigen versucht, aber sofort wieder gekickt wird.2. Du hast bei der Zeitabfrage Klammern vergessen. Wenn du && und || i einer Bedingung hast, immer _alle_ Klammern setzen. Denn bei (a && b || c && d) weiß ich nicht wie der Compiler es liest, vermutlich von links nach rechts, was aber nicht in deinem sinn sein dürfte.Hier wie ich denke das du es gemeint hast: if ((((TimeHour(Time[0]) >= StartZeit1) && (TimeHour(Time[0]) <= EndZeit1)) || ((TimeHour(Time[0]) >= StartZeit2) && (TimeHour(Time[0]) <= EndZeit2))) && // Weihnachten rausnehmen, erst ab 10.01. wieder handeln (((TimeMonth(Time[0]) < 12) && (TimeMonth(Time[0]) > 1)) || ((TimeMonth(Time[0]) == 12) && (TimeDay(Time[0]) < 20)) || ((TimeMonth(Time[0]) == 1) && (TimeDay(Time[0]) > 9)))) Ich möchte einfach nur die Tradezeit eingrenzen, da es nicht immer Sinn macht zu handeln, wenngar nichts am Markt los ist. Werde mir das heute Abend anschauen. Hatte erste nur Hour() dortstehen, aber dass ist ja wieder nur die letzte Serverzeit. Sonst tut der EA glaub ich genau das was er soll. Es ist im Moment nur nicht positiv ;)Beim vergleichen mit TradeSignal ergebnissen musst du aufpassen, in der TradeSignal werden nur ganze Bars betrachtet. Außerdem ist die Zeitberechnung eine andere. In MT ist Time[0] die Zeit des ersten Ticks des Bars, in Tradesignal die vom letzten Tick. Außerdem dürftest du andere Daten haben oder? Ich denke, so unterschiedlich sollten die Ergebnisse nicht sein. Zum Vergleich sollten die Anzahl der TRades annähernd gleich sein und wenn ich als Einstieg die Ranges angebe, mit Limit Orders, sollte es zumindest einigermaßen passen. Die Daten auf 15min Ebene sind nur marginal anders. Es sind eben noch einige Fehler im Code ... die es auszumerzen gilt, danke für Tipps. Was meinst Du mit Time[0] ist der erste Tick des Bars in der Zeiteinheit? Wenn ich M15 habe und dort schon 10 min. gelaufen sind, ist denn Time[0] immer noch der erste Tick? ich dachte, es ist immer der letzte Tick? Wie sollte ich sonst an den letzten, oder vorletzten aufgetretenen Tick gelangen? SVN ist natürlich klasse, da du hier Versionen reinstellst, wärs trotzdem schön einen Header anzulegen, in dem du die Versionsnummer einträgst, dann ist es auch leichter abzugleichen ob alle über den gleichen reden ;) Habe ich bereits erledigt, mal sehen, ob ich Author, Version und Date -Tags von SVN verwaltet bekomme :-) Wenn du in einer Schleife alle Orders aus der History durchgehst und teilweise welche schließt, musst du sehr aufpassen mit dem index. Wenn du die Order i schließt, rücken dadurch alle anderen auf, und das was vorher i+1 war, ist jetzt i. Gehst du also einfach weiter, überspringst du dabei manche order. Ok, dann muss ich bei schließen einer Order i wieder um eins dekrementieren, dann sollte es gehen. Etwas tricky, aber klingt logisch. Allerdings hätte die Funktion bzw. der Wert auch erst nach einem Programmzyklus angepasst werden können :-) Danke schonmal für die AuskünftDarth Edited March 3, 2009 by DarthTrader Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 3, 2009 Report Share Posted March 3, 2009 Ich möchte einfach nur die Tradezeit eingrenzen, da es nicht immer Sinn macht zu handeln, wenngar nichts am Markt los ist. Werde mir das heute Abend anschauen. Hatte erste nur Hour() dortstehen, aber dass ist ja wieder nur die letzte Serverzeit.Die letzte Serverzeit ist ja genau die Zeit, zu der start() aufgerufen wurde. Was meinst Du mit Time[0] ist der erste Tick des Bars in der Zeiteinheit? Wenn ich M15 habe und dort schon 10 min. gelaufen sind, ist denn Time[0] immer noch der erste Tick? ich dachte, es ist immer der letzte Tick? Wie sollte ich sonst an den letzten, oder vorletzten aufgetretenen Tick gelangen? Sieh dir einfach mal im MetaTrader den chart an, bzw. die Zeit im Datenfenster. Time[0] ist die Zeit des Bars, nicht des letzten Ticks. Auf die Zeit des letzten Ticks (also der, bei dem start() aufgerufen wurde) kommst du mit TimeCurrent() bzw. direkt über Hour(). Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 3, 2009 Author Report Share Posted March 3, 2009 Die letzte Serverzeit ist ja genau die Zeit, zu der start() aufgerufen wurde. Hm ... klar, ich war wieder bei den Indikatoren, da bekomme ich ja alle Chartdatensofort und es wird nicht wie im Test nach und nach dier Ticks abgearbeitet. Also wäre es bei EAsegal welche Funktion ich verwende, bei Indis muss ich aufpassen ... Arrrghhhh ... Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 3, 2009 Report Share Posted March 3, 2009 Hm ... klar, ich war wieder bei den Indikatoren, da bekomme ich ja alle Chartdatensofort und es wird nicht wie im Test nach und nach dier Ticks abgearbeitet. Also wäre es bei EAsegal welche Funktion ich verwende, bei Indis muss ich aufpassen ... Arrrghhhh ... jup, bei indis musst du immer selber wissen für welchen Bar du gerade die Werte berechnest und dementsprechend die werte raussuchen, bei eas arbeitest du immer im "jetzt".Noch ein Spezialfall: skripte. Sind eigentlich wie EAs aber die start() wird nur einmal aufgerufen, zwingst du ein Skript jetzt zu warten bis etwas bestimmtes passiert, kann die Serverzeit schon lang nicht mehr aktuell sein, und du musst wieder selber schaun wie spät es ist ;) Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 3, 2009 Author Report Share Posted March 3, 2009 (edited) Ok, Version 1.2 ist aktuell. Verwende nun die TradeBox (sehr schöne Funktionen)Korrektur, möchte sie verwenden, aber wegen init() Funktion und Inputs noch nicht möglich.Siehe anderen Thread ... Aber die korrekte Serverzeit mit Hour() geht nun ... endlich ... Weiterhin ist der OrderTotal() Bug behoben.Man sieht deutlich, das der EA nun wie bei TS funktioniert, die Orderssind im großen und ganzen identisch, nur die Ausführung manchmal ne andere.Ein PF von 1.5 ist schon Ok für den Anfang. Jetzt ist Optimierung angesagt. Welche Ausstieg würdet Ihr empfehlen?Können auch Forex-Märkte gehandelt werden, mit anderen TRadezeiten unddann vielleicht auch Rangezeiten? Input ist gerne gesehen.... Nochmal herzlichen Dank an Mythos, ohne ihn wäre der EA noch nicht fertig,da die Programmierung in MT doch etwas gewöhnungsbedürftig ist. DT_EA_DailyRange.mq4 Edited March 3, 2009 by DarthTrader Quote Link to comment Share on other sites More sharing options...
Ecart Posted March 4, 2009 Report Share Posted March 4, 2009 Halla DT, endlich mal // "Super-gute Kommentare", die kann ich als +53 nun endlich besser verstehen. Danke. Was ist ein PF? (PF von 1.5). Tippfehler letzte Zeile? wäre // 10 [entspricht 10 Punkte im DAX] nicht richtig? unser Team-EA soll ja 100 % stimmen. der erbsenzähler... Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 4, 2009 Author Report Share Posted March 4, 2009 Halla DT, endlich mal // "Super-gute Kommentare", die kann ich als +53 nun endlich besser verstehen. Danke. Danke. Wenn man in eine Sprache reinkommen will, ist dies für mich sehr wichtig. Was ist ein PF? (PF von 1.5). PF = ProfitFactor := Win / Loss, Alleine ist er natürlich nicht so aussagekräftig, aber hieran sehe ich schonmal, ob ich Gewinne oder verliere. Ein PF über 2 ist schon sehr gut, pber 1.5 kann man damit arbeiten.Gibt es eigentlich Indis oder EAs, die mir weitere Statistiken bzgl. meines Systems anzeigen, bspw. Sharpe-Ratiooder den Fröhlich-Faktor, ... ? Tippfehler letzte Zeile? wäre // 10 [entspricht 10 Punkte im DAX] nicht richtig? unser Team-EA soll ja 100 % stimmen. der erbsenzähler... Tippfehler akzeptiert ... wird heute Abend geändert ... Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 4, 2009 Author Report Share Posted March 4, 2009 Ich sehe des öfteren im Log die Fehlermeldung: 2009.03.04 19:47:06 2009.01.22 16:20 DT_EA_DailyRange EuBundMr09,M15: unknown ticket 3 for OrderClose function Was kann das sein. In der Ergbnissliste wird die Order trotzdem geschlossen, im Chart habe ich allerdingskeine ClosedOrder dazu, zumindest nur manchmal. Liegt es daran, dass ich den OrderTotals Zähler immer um eins erniedrige, wenn ne Order geschlossenwurde? Da in dem OrderTotal -Array nach Schließung einer Order, diese um einen Platz nach vorner rücken? Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 4, 2009 Report Share Posted March 4, 2009 Ich sehe des öfteren im Log die Fehlermeldung: 2009.03.04 19:47:06 2009.01.22 16:20 DT_EA_DailyRange EuBundMr09,M15: unknown ticket 3 for OrderClose function Was kann das sein. In der Ergbnissliste wird die Order trotzdem geschlossen, im Chart habe ich allerdingskeine ClosedOrder dazu, zumindest nur manchmal. Liegt es daran, dass ich den OrderTotals Zähler immer um eins erniedrige, wenn ne Order geschlossenwurde? Da in dem OrderTotal -Array nach Schließung einer Order, diese um einen Platz nach vorner rücken? gute Frage. Am besten ein Print vor jede OrderClose mit der Ausgabe des Tickets etc. dann weißt was sache ist ;) Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 4, 2009 Author Report Share Posted March 4, 2009 (edited) gute Frage. Am besten ein Print vor jede OrderClose mit der Ausgabe des Tickets etc. dann weißt was sache ist ;) Ok, habe den Fehler nicht gefunden, aber mit der TradeBox geht es nun. Leider tritt der Fehlernun beim OrderModify auf .... 2009.03.04 21:56:53 2009.01.28 21:36 TradeBox Ger30Mr09,M15: OrderModify error 130 Werde weiter forschen .... .... klar, kein gültiger Stop, der war zu nah am Markt nehme ich, obwohl 10 Punkte beim Dax ...... Hm Stoplevel gibt mir 100 aus, sind damit 100 Ticks gemeint = 50 Punkte oder wirklich100 Punkte ... beides ist für nen Trailing Stop recht viel .... Edited March 4, 2009 by DarthTrader Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 4, 2009 Report Share Posted March 4, 2009 Ok, habe den Fehler nicht gefunden, aber mit der TradeBox geht es nun. Leider tritt der Fehlernun beim OrderModify auf .... 2009.03.04 21:56:53 2009.01.28 21:36 TradeBox Ger30Mr09,M15: OrderModify error 130 Die TradeBox liefert bei OrderModify einen Error... das ist dann ein Bug von der TradeBox... muss ich mir mal anschauen. .... klar, kein gültiger Stop, der war zu nah am Markt nehme ich, obwohl 10 Punkte beim Dax ...... Hm Stoplevel gibt mir 100 aus, sind damit 100 Ticks gemeint = 50 Punkte oder wirklich100 Punkte ... beides ist für nen Trailing Stop recht viel ....Diese Werte sind in Points. Beim DAX dürftest du digits= 2 haben, das bedeutet ein Point = 0.01. stoplevel 100 also 1 Punkt, bzw 2 Ticks.Error 130 kann auch bedeuten, dass die Werte für die Stops nicht passen (was ich glaube das der Fehler ist), sprich ich in der tradeBox wo einen Hund eingebaut hab ;) werds mir demnächst mal anschauen Quote Link to comment Share on other sites More sharing options...
DarthTrader Posted March 4, 2009 Author Report Share Posted March 4, 2009 Habe jetzt erstmal den Trailing-Stop rausgenommen und folgende Stopps eingebaut: LONG-EXITs: - Schnitt der LowerRange (nach Definition)- Schnitt der UpperRange (wenn Trade nicht in die gewünschte Richtung läuft) SHORT-EXITs analog. Beim FDAX für März habe ich einen PF von über 2, sieht also sehr gut aus. Auch andere Wertesehen ganz gut aus. Für den Forex Markt musste man evtl. noch die Tradingzeiten anpassenoder die Berechnungszeit für die Range. Habe da noch keine richtige Idee. Haupthandelszeit ist ja8-18Uhr für EURUSD, wenn ich es richtig gelesen habe. Ansonsten kann man konfigurieren, ob man nur einen Trade pro Tag machen möchte oder Wiedereinstige erlaubt sind.Es gibt also genug zum Testen ... Feel Free ... DT_EA_DailyRange.mq4 Noch eine Info. Die Datei DT_Include.mqh beherbergt einfach nur die Standard-Includes zur TradeBox.Leider darf ich sie nicht hochladen. Das müsste noch angepasst werden. Quote Link to comment Share on other sites More sharing options...
Mythos Posted March 4, 2009 Report Share Posted March 4, 2009 - Schnitt der UpperRange (wenn Trade nicht in die gewünschte Richtung läuft) Den x-timeExit find ich ne klasse idee! Wenn der Kurs nur rumtümpelt, wird er wieder geclosed. noch was zur TBModifyOrder :TBModifyOrder (OrderTicket(), OrderOpenPrice(), TrailingStop, OrderTakeProfit(), 0);Da TrailingStop bei dir 10 ist, versuchst du hier den Stop der Order auf 10 zu setzen, nicht auf Kurs-10 ;)(zumindest glaub ich das die TradeBox das tut ;) Meine Empfehlung:ticksize= MarketInfo(Symbol(),MODE_TICKSIZE); TBModifyOrder (OrderTicket(), OrderOpenPrice(), Bid - TrailingStop*ticksize, OrderTakeProfit(), 0); Damit hättest du den Trailingstop in ticks angegeben, was meist einfacher zum Denken ist. Weitere Tests und Ideen kommen wie gesagt morgen, im Texteditor mql code durchschauen erinnert zwar an die Basics, ist aber irgendwie nit so lustig... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.