Inhalte aufrufen

  • Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Error 4027 und auch Error 130

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
5 Antworten zu diesem Thema

  #1
OFFLINE   siero

Hi zusammen,
 
vielleicht hat einer der guten MQL4 Developer hier eine Idee. Ich habe einen EA Draft für ein M5-Break-Out-System erstellt. Dort soll nach jeder M5 Bar Eröffnung eine Pending Order gesetzt werden. Und zwar bestimme ich in den ersten Sekunden jeder neuen Kerze die obere und die untere Grenze einer Box und setze jeweils eine BUYSTOP und SELLSTOP Order mit genau diesen Boxgrenzen als Einstiegspreis. 
 
Eigentlich funktioniert das Konstrukt auch. Ich sage aber deswegen "eigentlich", weil ab uns zu die Order mit Error 4027 und ab und zu auch mit Error 130 nicht gesetzt wird. Und ich weiß nicht warum? Ich habe schon versucht mit dem aktuellen Preis die Situationen abzufangen, bei denen der Kurs schon aus der Box gelaufen ist (Market-Order), trotzdem kommen ab und zu noch die Errors?
 
Würdet Ihr das Setzen in eine Schleife bauen?
 
// aktprice = aktueller Kurs
// lots1B = Lotsize
// box-high5 = obere Grenze der Box
// box-low5 = untere Grenze der Box
// TP5 und SL5 = TP und SL
 
if(cmd=="BUYSTOP5")
{
 if(aktprice > box_high5)
ticket=OrderSend(wp,OP_BUY,lots1B,0,5,openprice_M5[0]-SL5,openprice_M5[0]+TP5,comment,MagicNummer,0,clrNONE);
 else
ticket=OrderSend(wp,OP_BUYSTOP,lots1B,box_high5,5,box_high5-SL5,box_high5+TP5,comment,MagicNummer,0,clrNONE);
 printf(StringConcatenate(GetLastError()," ",aktprice,"",wp,"","OP_BUYSTOP5","",lots1B,"",box_high5,"",5,"",box_high5-SL5,"",box_high5+TP5));
if(cmd=="SELLSTOP5")
{
 if(aktprice < box_low5)
ticket=OrderSend(wp,OP_SELL,lots1S,0,5,openprice_M5[0]+SL5,openprice_M5[0]-TP5,comment,MagicNummer,0,clrNONE);
 else
ticket=OrderSend(wp,OP_SELLSTOP,lots1S,box_low5,5,box_low5+SL5,box_low5-TP5,comment,MagicNummer,0,clrNONE);
 printf(StringConcatenate(GetLastError()," ",aktprice,"",wp,"","OP_SELLSTOP5","",lots1S,"",box_low5,"",5,"",box_low5+SL5,"",box_low5-TP5));
}
 
 
Ich freue mich über jeden Tipp.
Sonnige Grüße
Rolf

Bearbeitet von siero, 23 June 2020 - 13:01 Uhr,


  #2
OFFLINE   traderdoc


Die OrderSend-Funktionen bei OP_BUY und OP_SELL
sollten nicht funktionieren, weil die Openpreise mit 0
angegeben wurden.
Und der Fehler 130 kommt immer, wenn TP, SL oder der
Abstand des Ausführungspreises zu dicht am gesendeten
Preis liegt (Beachtung des STOPLEVEL!).

traderdoc
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #3
OFFLINE   siero

Besten Dank traderdoc,

 

ich habe jetzt bei der Marktorder anstelle der 0 ein "Bid" und ein "Ask" eingetragen:

 

 ticket=OrderSend(wp,OP_SELL,lots1S,Ask,5,openprice_M5[0]+SL5,openprice_M5[0]-TP5,comment,MagicNummer,0,clrNONE);
 

 

Und die Pendingorder sieht jetzt wie folgt aus:

 
 stopplev=MarketInfo(symbolname,MODE_STOPLEVEL);
 if(cmd=="BUYSTOP5")
 {
if(aktprice > box_high5-stopplev/100)
 ticket=OrderSend(wp,OP_BUY,lots1B,Bid,5,openprice_M5[0]-SL5,openprice_M5[0]+TP5,comment,MagicNummer,0,clrNONE);
else
 ticket=OrderSend(wp,OP_BUYSTOP,lots1B,box_high5,5,box_high5-SL5,box_high5+TP5,comment,MagicNummer,0,clrNONE);
printf(StringConcatenate(aktprice,"",wp,"","OP_BUYSTOP5","",lots1B,"",box_high5,"",5,"",box_high5-SL5,"",box_high5+TP5));
 }
 
Mal schauen, ob es funktioniert:welldone:
 
Sonnige Grüße
Rolf


  #4
OFFLINE   -ixbone-

Buy = Ask

Sell = Bid

Ordersend, return, inkl. error function

TP+SL möglicherweise zu eng!

 

Freeze level nicht vergessen!

 

edit: comment sollte von Haus aus aussagekräftig sein, da man auch in der History danach selektieren kann.


Bearbeitet von -ixbone-, 23 June 2020 - 15:08 Uhr,


  #5
OFFLINE   traderdoc

Zumindest diese Änderungen müssten noch vorgenommen werden:

 

ticket=OrderSend(wp,OP_SELL,lots1S,Bid,5,openprice_M5[0]+SL5,openprice_M5[0]-TP5,comment,MagicNummer,0,clrNONE);

 

wäre richtig und bei OP_BUY

 

 ticket=OrderSend(wp,OP_BUY,lots1B,Ask,5,openprice_M5[0]-SL5,openprice_M5[0]+TP5,comment,MagicNummer,0,clrNONE);

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #6
OFFLINE   siero

Danke Euch. Erledigt. 

 

@ixbone, das Kommentarfeld nutze ich, für die Kerzensteuerung. Da steht drin, bei welcher Kerze ich die Position schließen muss, falls sie noch offen ist. 

Rolf





Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer