[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 66

 
vovan-gogan:

Was soll das bringen? Der SL-Wert ist korrekt. Wenn ich die SL-Variable auf MA20 mit einer Verschiebung von 3 einstelle, gebe ich den SL-Pegel über Alert aus und er ist immer auf dem richtigen Niveau. Ich weiß nicht, warum der SL vor Erreichen der SL-Ebene entfernt wird.

Nun, wenn es Ihnen wichtig ist, nicht das Problem zu lösen, sondern zu kommunizieren, dann verzichte ich darauf.
 
PapaYozh:

Nein, wenn es nicht darum geht, das Problem zu lösen, sondern zu kommunizieren, dann verzichte ich darauf.

Nein, ganz im Gegenteil, ich werde Ihren Rat befolgen. Mal sehen, was passiert.
 
Mich verwirrt die Tatsache, dass beide Arten von BUYSTOP / SELLSTOP-Aufträgen durch dieselbe Bedingung gelöscht werden, zumindest sind es unterschiedliche Dinge. Ich nehme an, dass es ein weiteres ähnliches Codefragment gibt, das alle ausstehenden Aufträge in Serie löscht.
 
splxgf:
Mich verwirrt die Tatsache, dass beide Arten von BUYSTOP / SELLSTOP-Aufträgen durch dieselbe Bedingung gelöscht werden, zumindest sind es unterschiedliche Dinge. Ich nehme an, dass es ein weiteres ähnliches Codefragment gibt und alle ausstehenden Aufträge nacheinander gelöscht werden.

Nein. Nicht um einen. Ich habe gerade einen Teil des Codefragments vorgestellt, das den Fall des Löschens von SellStop-Aufträgen beschreibt, um es deutlicher zu machen.
 
vovan-gogan:

Nein. Nicht um einen.
   if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

Eine der Auftragsarten liegt unter dem Preis, die andere über dem Preis... und die Bedingung für das Schließen ist die gleiche Bid>SL... Man muss sich fragen, wo die Logik ist.

Ich empfehle, eine Auftragsart aus der Bedingung zu entfernen, oder Sie können die Bedingung noch weiter vereinfachen.

 
vovan-gogan:

Leute, helft mir, herauszufinden, was zum Teufel das ist! Mein EA ist so konzipiert, dass er einen Oplot ausgibt, und wenn der Kurs ihn nicht erreicht, sondern auf das Niveau seines Stopps zurückfällt, sollte der Oplot gelöscht werden. Aber auf dem Tester wird manchmal ein Oplot ausgegeben und sofort gelöscht, bevor er überhaupt den Stopp erreicht. Was ist das Problem? Hier ist ein Screenshot und ein Löschcode.

Hier ist der Code:

Wo liegt hier der Fehler?

Gleich in der ersten Zeile (über den Rest schweigen wir)... Wenn das Bid unter dem StopLoss Ihrer Order liegt...
Der Auftrag wird unter dem Bid gesetzt und sein StopLoss liegt ebenfalls unter dem Bid. Die erste Zeile des Codes löscht sie sofort.
 
Hallo, eine ziemlich heikle Frage...denke ich. In den Screenshots sehe ich oft auf Standard (native MT4-Tools) Fibo Ebenen und Fibo-Erweiterungen, nach der Fibo-Nummer gibt es einen Preis, auf dem das Niveau ist ...... Meine Frage ist: wie kann ich es aktivieren?
 
Vinin:

Angepasst von



Hallo, bitte um Hilfe... Hier gibt es einen Indikator. Ist es möglich, beim Zeichnen eines neuen Segments ein Tonsignal anzuhängen? ZigzagFr_v1.mq4 (4.4 Kb) Ansicht
 
Guten Tag, ich verstehe etwas nicht. Ich habe beschlossen, einen Trailing-Stop an meinen Expert Advisor anzuhängen, aber es wird immer wieder der Fehler 130 angezeigt. Ich kann nichts verstehen, und gestern konnte ich es auch nicht.
  } }
   
   
  //+------------------------------------------------------
  double JUN;int tiktik;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_BUY ) continue;
     if (price-OrderOpenPrice( )>30*Point) {JUN= price-OrderOpenPrice( );tiktik=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktik," имеет JUN, ",JUN);Alert("JUN",JUN,"JUNpomnim",JUNpomnim);
    if (JUN>0){if (JUN>JUNpomnim){Alert("JUN",JUN,"JUNpomnim+++++++++++++++++++++++++",JUNpomnim);
      OrderModify(tiktik,OrderOpenPrice(),price-15*Point,OrderTakeProfit(),0,0);     JUNpomnim=JUN;
      Alert("OrderModify-BAY", GetLastError()); }}
      
      
      
  double BAN;int tiktAk;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_SELL ) continue;
     if (OrderOpenPrice( )-price>30*Point) {BAN= OrderOpenPrice( )-price;tiktAk=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktAk," имеет BAN, ",BAN);Alert("BAN",BAN,"BANpomnim",BANpomnim);
    if (BAN>0){ if (BAN>BANpomnim){Alert("BAN",BAN,"BANpomnim++++++++++++++++++++++++++++",BANpomnim);
      OrderModify(tiktAk,OrderOpenPrice(),price+15*Point,OrderTakeProfit(),0,0);  BANpomnim=BAN;
       Alert("OrderModify-SELL", GetLastError()); }}
    

  
   return(0);
  }
//+------------------------------------------------------

Bitte sehen Sie sich die Zeile mit der Änderung an, sie enthält einen Fehler. Der Stop-Loss wird also für Bai 15 Pips höher gesetzt und umgekehrt für Sell.

Im Allgemeinen beginnt ein Trailing-Stop zu fallen, wenn der Buy-Stop und der Sell-Stop geöffnet sind und sich der Kurs um 30 Pips nach oben bewegt (oder bei einem Sell-Stop nach unten), wobei zu beachten ist, dass der Stop nicht unter dem Eröffnungswert liegt; mit anderen Worten, ich sehe keine logischen Fehler.

Ich berechne den Preis bei jedem Tick und das geht so

int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4); 

Die Hauptsache ist, dass die eingegebenen Werte korrekt sind.

Obwohl ich ein Codefragment ohne Plan geschrieben und nicht durchdacht habe, habe ich es trotzdem verfasst.

 
Dimka-novitsek:
Guten Tag, ich verstehe etwas nicht. Ich habe mich entschlossen, einen Trailing-Stop an meinen EA anzuhängen, aber er zeigt weiterhin den Fehler 130 an. Ich kann nichts verstehen, ich konnte es gestern auch nicht.

Bitte sehen Sie sich die Zeile mit der Änderung an, sie enthält einen Fehler. Der Stop-Loss wird also für Bai 15 Pips höher gesetzt und umgekehrt für Sell.

Im Allgemeinen beginnt ein Trailing-Stop zu fallen, wenn der Buy-Stop und der Sell-Stop geöffnet sind und sich der Kurs um 30 Pips nach oben bewegt (oder bei einem Sell-Stop nach unten), wobei zu beachten ist, dass der Stop nicht unter dem Eröffnungswert liegt; mit anderen Worten, ich sehe keine logischen Fehler.

Ich berechne den Preis bei jedem Tick und das geht so

Was soll ich sonst noch schreiben? Im Allgemeinen dachte ich, na ja, alles ist richtig.

Ich habe einen Teil des Codes ohne Plan geschrieben, ohne darüber nachzudenken, aber er ist trotzdem korrekt.

in einem solchen Durcheinander ist es schwer, etwas vorzuschlagen.

Nun, zunächst einmal:

1) schreiben Sie nicht 2-3 Operatoren pro Zeile, das bringt alles durcheinander und ist schlecht lesbar

2) JUNpomnim-Variable. Wo wird ihr ein Anfangswert "gegeben"? Ist das für alle offenen Aufträge gleich?

Ein einfaches Beispiel: Sie haben 2 Aufträge. Sie verschieben einfach den SL des ersten Auftrags, ändern diese Variable, und das war's. Die zweite wird nicht verschoben, da JUN = JUNpomnim.

3) Wenn Sie OrderModify() verwenden, normalisieren Sie alle Preise

Grund der Beschwerde: