Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 454

 
niktron:

if(kolpos==0&&Volumen[0]<10&&iOpen("EURAUD",PERIOD_M1,1)<iClose("EURAUD",PERIOD_M1,1)&&iOpen("EURUSD",PERIOD_M1,1)>iClose("EURUSD",PERIOD_M1,1)
&&iOpen("USDJPY",PERIOD_M1,1)<iClose("USDJPY",PERIOD_M1,1)&&iOpen("AUDJPY",PERIOD_M1,1)>iClose("AUDJPY",PERIOD_M1,1)&&Open[1]<Close[1])
OrderSend("AUDUSD",OP_BUY,Lot,Ask,Slippage,Ask-SL*Point,0,NULL,OrderMagicNumber(),0,Green);
if(kolpos==0 && 
   Volume[0]<10 && 
   iOpen("EURAUD",PERIOD_M1,1)<iClose("EURAUD",PERIOD_M1,1) && 
   iOpen("EURUSD",PERIOD_M1,1)>iClose("EURUSD",PERIOD_M1,1) &&
   iOpen("USDJPY",PERIOD_M1,1)<iClose("USDJPY",PERIOD_M1,1) &&
   iOpen("AUDJPY",PERIOD_M1,1)>iClose("AUDJPY",PERIOD_M1,1) &&
   Open[1]<Close[1])
   OrderSend("AUDUSD",OP_BUY,Lot,Ask,slippage,NormalizeDouble(Bid-SL*Point,Digits),0,NULL,magic,0,Green);

Testen Sie es auf AUDUSD?

Die berechneten Werte der Preise in einem Handelsauftrag müssen auf Ziffern normalisiert werden. Nicht nur das, sondern es sollte auch mit den StopLevel-Anforderungen übereinstimmen (habe es hier nicht getan)

Die OrderMagicNumber() ist die magische Nummer der vorausgewählten Bestellung. Sie müssen ihn entweder mit einem bestimmten Wert festlegen oder ihn im EA berechnen, damit er für ihn eindeutig ist.

Vor dieser Prüfung werden alle Werte aller Bedingungen, die hier geprüft werden, gelöscht. Dann wird Ihnen klar sein, wo Sie suchen müssen.

 
artmedia70:

Testen Sie auf AUDUSD?

Die berechneten Preiswerte in Ihrem Handelsauftrag sollten auf Digits normalisiert werden. Nicht nur das, sondern es sollte auch die StopLevel-Anforderungen erfüllen (was hier nicht der Fall war)

OrderMagicNumber() ist die magische Zahl einer vorselektierten Bestellung. Sie sollten ihn entweder als spezifischen Wert festlegen oder ihn im EA berechnen, damit er für ihn eindeutig ist.

Vor dieser Prüfung werden alle Werte aller Bedingungen, die hier geprüft werden, gelöscht. Dann wird Ihnen klar sein, wo Sie suchen müssen.



Ja, Test auf AUDUSD

OrderSend("AUDUSD",OP_BUY,Lot,Ask,Slippage,Ask-SL*Point,0,NULL,OrderMagicNumber(),0,Green);-diese Zeile funktionierte im Testgerät ohne Probleme, bis wir die Bedingungen hinzugefügt haben

wie

iOpen("AUDJPY",PERIOD_M1,1)>iClose("AUDJPY",PERIOD_M1,1)...

Ich wiederhole, dass alles auf dem Konto funktioniert... nicht im Testgerät...

 
Alle...sortiert...fehlte der Kursverlauf...AUDJPY-als Moll bezeichnet))) Vielen Dank an alle!
 
niktron:

OrderSend("AUDUSD",OP_BUY,Lot,Ask,Slippage,Ask-SL*Point,0,NULL,OrderMagicNumber(),0,Green);-diese Zeile funktionierte im Testgerät ohne Probleme, bis die Bedingungen hinzugefügt wurden

Über diesen Strang habe ich Ihnen bereits geschrieben. Wenn Sie dann Fehler 130 erhalten, fragen Sie nicht, was das Problem ist.
 
artmedia70:
Ich habe Ihnen bereits über diese Linie geschrieben. Wenn dann die Fehlermeldung 130 erscheint, fragen Sie mich nicht, was das Problem ist.


Es kann also sein, dass derFehler 130 lange Zeit nicht auftritt und dann doch passiert?
 
Falls jemand einen Code zur Berechnung des Equity Drawdown (absolut und relativ) kennt, bitte ich um einen Link.
 
Leo59:
Falls jemand einen Code zur Berechnung des Equity Drawdown (absolut und relativ) kennt, bitte ich um einen Link.
Als ich es brauchte, suchte ich, aber nicht finden, weil ich nicht in der Vergangenheit benötigt, wie in der Tester, sondern in der Zukunft, indem SL auf eine offene Position, um den möglichen Drawdown zu antizipieren, wenn die Position auf SL zu schließen, die Anzeige der Daten in den Kommentar auf dem Chart, die ich tat, und es wurde sehr bequem, um alle möglichen Probleme im Voraus zu sehen, wie ich Ihnen wünschen! Gleichzeitig habe ich durch meine eigene Arbeit viel gelernt, was noch wertvoller ist. Viel Glück für Sie!
 
TarasBY:
Bereits geschrieben.

Großartig, vielen Dank für dieses Material, es wird jetzt viel effektiver sein, um Verluste zu begrenzen und Gewinne zu steigern.
 
niktron:

d.h. der Fehler 130 wird vielleicht lange Zeit nicht auftreten, aber dann doch?
Ich bin weder ein Telepath noch ein Nostradamus. Ich kann Ihnen nicht genau sagen, wann der Fehler 130 auftreten wird. Aber ich kann Ihnen sagen, dass sie erscheinen wird. Solange Sie nicht alle berechneten Preise in den Handelsaufträgen normalisieren und die sl- und tp-Preise im Handelsauftrag überprüfen, um zu sehen, ob sie in Bezug auf die StopLevel-Anforderungen Ihres Maklerunternehmens korrekt sind, werden Sie den 130sten Fehler erhalten.
 

Es gibt einen solchen Funktionscode. In MT4 beta erhalte ich beim Kompilieren die Warnung "expression not boolean" in den mit einem Pfeil gekennzeichneten Zeilen. Können Sie vorschlagen, wie man das Problem beheben kann?

void WindowCaptions()
{
  int hwnd = GetAncestor(WindowHandle(Symbol(),Period()),1); 

  int ret = GetWindowLongA( hwnd, GWL_STYLE );
  if (ret & WS_MAXIMIZE) return;                                               //<---
  if (ret & WS_DLGFRAME) ret -= WS_DLGFRAME; else ret += WS_DLGFRAME;          //<---

  //это если совсем без рамочек 
  // if (ret & WS_THICKFRAME) ret -= WS_THICKFRAME; else ret += WS_THICKFRAME;
  
  SetWindowLongA( hwnd, GWL_STYLE, ret );
  SetWindowPos ( hwnd, 0,0,0,0,0, 39); 
}