Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 430

 
igrok333:

hat diesen Code geschrieben.

murmelt der Meta-Editor.



Warum paart sie sich?


#Eigenschaft streng

Ist Ihr pr initialisiert?

 
igrok333:

hat diesen Code geschrieben.

murmelt der Meta-Editor.
Warum paart sie sich?


#Eigenschaft streng

Dort steht eindeutig geschrieben, dass in Zeile 553 eine Variable ohne Wert verwendet werden kann. Versuchen Sie, bool pr=false zu schreiben; Dies wird den Compiler täuschen, aber Sie sollten es besser richtig überprüfen. Wenn es sich bei der Auftragsart nämlich um einen schwebenden Auftrag handelt, haben Sie immer noch pr ohne einen Wert...

 
Roman Sharanov:

auf der vorherigen, und was ist hier von mql4? die OnTick() Funktion?

Die Frage wurde in dem Artikel über die Sprache mql4 angesprochen, so dass ich sofort auf Time[0] aufmerksam wurde.

Bei näherer Betrachtung wird deutlich, dass es sich um ein benutzerdefiniertes Array handelt.

Und hier ist ein Kommentar aus der Dokumentation:

Hinweis

Die Funktion verwendet einen synchronen Aufruf - das bedeutet, dass die Funktion auf die Ausführung aller Befehle wartet, die vor ihrem Aufruf in die Warteschlange des Diagramms gestellt wurden, so dass diese Funktion zeitaufwändig sein kann. Dies sollten Sie bedenken, wenn Sie mit einer großen Anzahl von Objekten im Diagramm arbeiten.

Da ein Objekt in einer Preiskoordinate mehrere Werte haben kann, ist es notwendig, die Zeilennummer anzugeben. Diese Funktion kann nur auf die folgenden Objekte angewendet werden:

  • Trendlinie (OBJ_TREND)
  • Trendlinie nach Winkel (OBJ_TRENDBYANGLE)
  • Gann-Linie (OBJ_GANNLINE)
  • Äquidistanter Kanal (OBJ_CHANNEL) - 2 Zeilen
  • Kanal für lineare Regression (OBJ_REGRESSION) - 3 Zeilen
  • Standardabweichungskanal (OBJ_STDDEVCHANNEL) - 3 Zeilen
  • Linie mit Pfeil (OBJ_ARROWED_LINE)


 
Artyom Trishkin:

Ist Ihr pr initialisiert?

Muss es initialisiert werden? Ich dachte, es reicht, es zu deklarieren.
Ich dachte, er würde bei der Deklaration mit Null initialisiert.
 
STARIJ:

In Zeile 553 steht eindeutig, dass es möglich ist, eine Variable zu verwenden, die keinen Wert hat. Versuchen Sie, bool pr=false zu schreiben; Das wird den Compiler täuschen, aber es ist besser, alles richtig zu überprüfen. Denn wenn es sich bei der Auftragsart um einen schwebenden Auftrag handelt, haben Sie immer noch pr ohne Wert...

danke, dass Sie mich an die ausstehenden Bestellungen erinnert haben)



Ist das der richtige Weg?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for (int i=OrdersTotal()-1; i>=0; i--)       
   {                                        
   if(OrderSelect(i,SELECT_BY_POS)==true)
      {  
         pr=false; 

         if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );                              
         if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
         
         if (pr==false) Print("закрытие ордера ", OrderSymbol() ," завершилось с ошибкой #",GetLastError());
         if (pr==true) Print("ордер ", OrderSymbol() , " ЗАКРЫТ");
       }
    }
  }  
 
igrok333:

danke, dass Sie mich an die Pausen erinnert haben)
ist das der richtige Weg, es zu tun?

if (pr==false) ist gleichwertig mit if (!pr)
if (pr==true) ist gleichwertig mit if (pr)

Ich verwende "Alert" anstelle von " Print" - es sollte sofort erscheinen, ohne das Journal zu öffnen. Und es gibt keine zusätzlichen Informationen

 
Вместо
if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );
if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
короче
if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), Bid, 30 );
if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), Ask, 30 );
или просто
pr=OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 30 );


 
STARIJ:

if (pr==false) ist gleichbedeutend mit if (!pr)
if (pr==true) ist gleichbedeutend mit if (pr)

Ich verwende "Alert" anstelle von "Print" - es wird sofort auf dem Bildschirm angezeigt, ohne dass das Journal geöffnet werden muss. Und es gibt keine zusätzlichen Informationen

Ich spreche eigentlich über die Platzierung von pr im Code))
 
Дед пенсионер:
können wir OrderClosePrice() so schreiben?

Wir erhalten OrderClosePrice(), nachdem die Transaktion abgeschlossen wurde.
 
igrok333:
Ist es möglich, OrderClosePrice() wie folgt zu schreiben?

Wir erhalten OrderClosePrice(), nachdem der Handel geschlossen wurde.

Sie können. Aber seien Sie vorsichtig. Bei einer offenen Position gibt sie den Schlusskurs zurück. Entsprechend: für Buy - Bid, für Sell - Ask