Jump to content


Photo

mql4 Pending Order nach "nicht Ausführung" kurz vor Close schließen


Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.

  • Please log in to reply
10 replies to this topic

#1 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 03 March 2016 - 02:31 PM

Ich bin seit einer Woche am "coden", wenn man meine ersten Gehversuche so nennen kann. Ich habe sogar bei meinem ersten Backtest einen critical error beseitigen können happy.png hat auch "nur" ca. 4,5 Stunden gedauert. Seit dem (also Dienstagnacht) stehe ich vor dem nächsten Problem. 

 

Wie lasse ich eine Pending Order auslaufen?

 

Konkret: Am ersten Tag t=0 habe ich ein Setup. Das möchte ich am darauffolgendenTag t=1 per Stop Order handeln. Wenn mein Einstieg jedoch nicht erreicht wurde, möchte ich, dass die Order um eine Minute vor Close des Tag t=1 gecancelled wird. Ich verwende die OrderSend Funktion. Die vorletzte Variable in der Funktion soll ja angeblich genau dafür gedacht sein (Expiration). Das Problem ist halt nur, dass es sich hierbei um eine datetime Variable handelt und ich damit nicht umgehen kann. datetime rechnet ja von 01.01.1970 an. Ich habe auch schon versucht eine TimeMinute dort ein zu bauen und vieles mehr aber am Ende wird immer nach einer datetime gefragt.

 

Was erschwerend jetzt noch hinzu kommt ist, dass nicht alle Tage um die selbe Uhrzeit schließen, sodass wenn ich auch mit der Variable datetime umgehen könnte, es unweigerlich zu Verschiebungen kommen würde. Wichtig ist mir dass die Order Kurz vor Close nach nicht Ausführung geschlossen wird.

 

MQLC

1
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,(Ask-0.01),(Ask+0.02),NULL,0,0,Green);
[...more]
1
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,(Ask-0.01),(Ask+0.02),NULL,0,0,Green);

(ich hoffe ich habe das jetzt richtig gemacht)

 

Ich hoffe es kann mir jemand helfen.

 

 


  • 0

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 2 Members:
oldschuren , Vola

#2 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 03 March 2016 - 02:34 PM

MQLC

1234
void Kaufen()<br>{</p><p>OrderSend(Symbol(),OP_BUY,0.01,Ask,3,(Ask-0.01),(Ask+0.02),NULL,0,0,Green);<br>}
[...more]
1234
void Kaufen()<br>{</p><p>OrderSend(Symbol(),OP_BUY,0.01,Ask,3,(Ask-0.01),(Ask+0.02),NULL,0,0,Green);<br>}

 

(jetzt aber pelo1.gif)


Edited by chimbonda, 03 March 2016 - 02:46 PM.

  • 0

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 1 Member:
Vola

#3 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,204 posts
  • 13772 thanks
  • Wohnsitz:O-Town

Posted 03 March 2016 - 03:19 PM

Was erschwerend jetzt noch hinzu kommt ist, dass nicht alle Tage um die selbe Uhrzeit schließen, sodass wenn ich auch mit der Variable datetime umgehen könnte, es unweigerlich zu Verschiebungen kommen würde. Wichtig ist mir dass die Order Kurz vor Close nach nicht Ausführung geschlossen wird.

 

Das ist wahrlich unschön und lässt sich IMHO nur über verschiedene Abfragen lösen. Eine Minute finde ich allerdings etwas knapp bemessen. Würde da eher auf 5 oder mehr gehen. Bei Deinem OrderSend Beispiel sendest Du übrigens keine Pending sondern eine Market Order ab. Die kann naturgemäß nicht verfallen, da sie sofort ausgeführt wird.


  • 2

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 3 Members:
oldschuren , Vola , chimbonda

#4 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 03 March 2016 - 03:50 PM

Ach so. Dann kann da auch nichts draus werden. Ich schau nochmal richtig nach. Hatte da mal so eine Tanelle mit den Orderarten gesehen. Vielen Dank für den Tipp. Werde dann meine Fortschritte hier posten.
  • 1

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 2 Members:
oldschuren , Vola

#5 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 05 March 2016 - 12:24 PM

JUHUU sauber ich hab´s !!! idea.gifgoody.gif

 

Ich arbeite zwar immer mit StoppOrders aber das muss der EA ja nicht wissen ;) also habe ich aus aus dem OP_SELLSTOPP einfach ein OP_STOPP gemacht (oben habe ich versehentlich die falsche Formel hineinkopiert). Hier die "echte" also bereits verbesserte. (ich hatte wirklich ein OP_SELLSTOPP in der Ausgangsformel)

MQLC

12345
void Short()<br>{<br>OrderSend(Symbol(),OP_SELL,0.01,entry,3,sl,tp,NULL,0,0,Green);<br>// OrderSend(akt Symbol,Kaufen,Lot,entry,Abw3Punkte,sl,tp,Kommentartext,ID,Datum,Farbe<br>}<br>
[...more]
12345
void Short()<br>{<br>OrderSend(Symbol(),OP_SELL,0.01,entry,3,sl,tp,NULL,0,0,Green);<br>// OrderSend(akt Symbol,Kaufen,Lot,entry,Abw3Punkte,sl,tp,Kommentartext,ID,Datum,Farbe<br>}<br>

 

Wenn man also eine StoppOrder am Ende des Tages verfallen lassen möchte muss man nur die Bedingungen um einen Tag in die Vergangenheit versetzen und Market einsteigen. Nur was mache ich wenn wenn die möchtegern StoppOrder zwei Tage stehen bleiben soll???

 

Jetzt muss ich nur noch den Sonntag mit hilfe von 20000 if Funktionen eliminieren und alles ist gut :D

 

 

PS.:Warum schreibt der immer den Code zwei mal dahin obwohl ich den nur einmal einfüge? Und dann noch diese komischen <br>. Ach Gott wat ne. Dat han wa so nit jewollt.


Edited by chimbonda, 05 March 2016 - 12:32 PM.

  • 0

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 2 Members:
Vola , WOGO

#6 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,204 posts
  • 13772 thanks
  • Wohnsitz:O-Town

Posted 05 March 2016 - 01:26 PM

Wenn man also eine StoppOrder am Ende des Tages verfallen lassen möchte muss man nur die Bedingungen um einen Tag in die Vergangenheit versetzen und Market einsteigen. Nur was mache ich wenn wenn die möchtegern StoppOrder zwei Tage stehen bleiben soll???

 

Oder man sendet die Order einfach vernünftig ab :wink:.


  • 0

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 2 Members:
Vola , chimbonda

#7 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 05 March 2016 - 03:37 PM

Und genau darin liegt meine derzeitige Herausforderung. Habe immer noch nicht herausgefunden wie man die Order nach x Tagen verfallen lässt.
  • 0

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 2 Members:
Vola , oldschuren

#8 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,204 posts
  • 13772 thanks
  • Wohnsitz:O-Town

Posted 05 March 2016 - 11:05 PM

Schau mal hier:

https://forum.mql4.com/4992

 

Ist zumindest ein Anfang zum rein denken.


  • 1

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 3 Members:
Vola , chimbonda , oldschuren

#9 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 06 March 2016 - 09:10 PM

Hab es gerade mal quer gelesen. ich gucke mir das gleich mal genauer an. So wie es aussieht ist es genau das was ich brauche bzw. der direkte Weg zu meinem Ziel. Vielen Dank für den Link good.gif


  • 0

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 2 Members:
Vola , conglom-o

#10 chimbonda

chimbonda

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 178 posts
  • 822 thanks
  • Wohnsitz:NRW

Posted 25 March 2016 - 05:35 PM

Als erstes wünsche ich allen hier in der community schöne Ostertage. Ich persönlich versuche nicht zu viel zu futtern aber das ist heute (erster Familientag) schon mächtig in die Hose gegangen :D

 

Zweitens möchte ich mich dafür entschuldigen, dass ich meinem Versprechen meine Vortschritte hier zu posten nicht ganz nachgekommen bin. Das "Semester" hat zwischenzeitlich wieder angefangen und die Semestervorbereitungen haben mich voll eingespannt und in ca. drei Monaten stehen schon wieder Prüfungen an.

 

@ conglom-o: das war tatsächlich genau das wonauc ich gesucht habe. Vielen Dank nochmal.

 

Obwohl ich weiß, dass die meisten hier meine Problemchen belächeln mögen, gibt es vielleicht jemanden wie mich der gerade vor dem gleichen Problem Steht bzw. die selben Fargen hat. Deswegen jetzt das Update:

 

MQLC

123456
datetime et;<br><br>et = (TimeCurrent()+86400);<br><br>void Short()<br>  {<br>   OrderSend(Symbol(),OP_SELLSTOP,0.01,entry,3,sl,tp,NULL,0,et,Green);<br>// OrderSend(akt Symbol,Kaufen,Lot,entry,Abw3Punkte,sl,tp,Kommentartext,ID,Datum,Farbe
[...more]
123456
datetime et;<br><br>et = (TimeCurrent()+86400);<br><br>void Short()<br>  {<br>   OrderSend(Symbol(),OP_SELLSTOP,0.01,entry,3,sl,tp,NULL,0,et,Green);<br>// OrderSend(akt Symbol,Kaufen,Lot,entry,Abw3Punkte,sl,tp,Kommentartext,ID,Datum,Farbe

 

et steht für exporation time und ich habe es als globale Variable definiert. Die 86400 Sekunden sind die Sekunden pro Tag und et voilà die StopOrder wird nach einem Tag bei Nichtausführung gelöscht good2.gif Das hat fast auf Anhieb funktioniert. Nur wenn das Ziel am selben Tag/ Bar erreicht wird, wird beim take profit nochmal eine Order gesendet. Und manchmal wird eine Order gesendet die nicht im geringsten meinem Setup entsprechen. Ich definiere es mal als Schluckauf.

 

Das Setup folgt folgenden einfachen Regeln: Wenn a > b und a > c dann mach am nächsten Tag einen SellStopp, der nur einen Tag stehen bleibt.

 

Und der Schluckauf setzt hin und wieder absolut willkürlich und ohne Sinn eine Orde.

 

Ich vermute mal, dass es an der OrderSend Funktion liegt. Es steht immer folgende Warnug  "return value of 'OrderSend' should be checked". Jetzt habe ich herausgefunden, dass wenn ich die OrderSend Funktion in einer if() Funktion Verwurste, dass diese Meldung nicht mehr kommt. Nur hatte diese if Funktion absolut keine Auswirkungen auf das o.g. Problem gehabt weswegen ich das wieder rückgängig gemacht habe. Ich hatte es auch schon mal mit einem return (0) versucht nur ist dann immer die Handelsplattform abgestürtzt. Return (0) hat der Kasten dann wahrscheinlich zu wörtlich genommen und absolut nichts mehr zurück gegeben grin.gif

 

Ich habe auch schon in diesem mql4 forum gesucht bin aber nicht fündig geworden. Wahrscheinlich verwende ich die falschen Suchbegriffe.


Edited by chimbonda, 25 March 2016 - 05:47 PM.

  • 2

shok.gif               Schöne Grüße aus dem Rheinland                                                                                                                                                                poc.gif


Thanked by 3 Members:
Vola , oldschuren , conglom-o

#11 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,204 posts
  • 13772 thanks
  • Wohnsitz:O-Town

Posted 25 March 2016 - 08:28 PM

@conglom-o: das war tatsächlich genau das wonauc ich gesucht habe. Vielen Dank nochmal.

 

Immer gerne. Dafür ist das Forum hier ja da.


  • 0

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 2 Members:
Vola , chimbonda

Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users