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

 
STARIJ:
Sie haben eine Aufzählung

Ich danke Ihnen! Ich habe es durchlaufen lassen, und es ist behoben! Jetzt funktioniert es.

 
Artyom Trishkin:
Der Auftrag wird per Ticket ausgewählt, und dann, nach einem Kilometer Code, versucht man, ihn zu ändern. Es kann aber sein, dass sie zu diesem Zeitpunkt bereits geschlossen ist.

Wenn der Auftrag geschlossen wurde, ist OrdersTotal()==0; bzw. die OrderModify() würde überhaupt nicht stattfinden.

 
ijonhson:

Wenn die Bestellung geschlossen wurde, dann ist OrdersTotal()==0; bzw. OrderModify() würde gar nicht stattfinden

Zunächst prüfen Sie die Menge, dann prüfen Sie eine Reihe von Codes, bei denen die Position möglicherweise geschlossen wurde (aber Sie behandeln bereits eine Mengenbedingung größer als Null), und dann wählen Sie die geschlossene Position aus und ändern sie.
 

Aufträge können um jeweils 0,01 Lots geschlossen werden, wenn der Auftrag z.B. ein Lot von 0,59 beträgt. Es stellt sich eine Frage. Ist es möglich, zwei Bestellungen zu einer einzigen zusammenzufassen? Beispiel: Sie haben einen Auftrag mit einem Lot von 0,01 und möchten einen weiteren Auftrag mit einem Lot von 0,02 eröffnen. Können sie mit 0,03 Losen kombiniert werden, um die Anhäufung von Aufträgen zu vermeiden, und wenn ja, wie?

 
MT5-Netz installieren
 
Taras Slobodyanik:
MT5-Netz installieren

Gibt es so etwas in MT4 nicht?

 

Hallo nochmal an alle.


Bei allem Respekt vor den unberührten Rechtecken.


Ich verstehe nicht, warum es Verkaufsaufträge gerne ändert, Kaufaufträge aber ignoriert, selbst wenn man Weihrauch-Tamburine und andere irrationale Optimierungswerkzeuge verwendet.


wenn (Ticket>0)

{

//Setzen eines Stop Loss und Take Profit für einen Kaufauftrag//

if(OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES))

{

Doppelter Sl,tp;

wenn (Typ==OP_BUY)

{

sl=OrderOpenPrice () - (StopLoss*_Point);

sl=NormalizeDouble (sl,_Digits);

tp=OrderOpenPrice () + (TakeProfit*_Point);

tp=NormalizeDouble (tp,_Digits);

}

wenn (Typ==OP_SELL)

{

sl=OrderOpenPrice () + (StopLoss*_Point);

sl=NormalizeDouble (sl,_Digits);

tp=OrderOpenPrice () - (TakeProfit*_Point);

tp=NormalizeDouble (tp,_Digits);

}

bool mod = false;

int count=0;

while (!mod)

{

mod=OrderModify (ticket, OrderOpenPrice (), sl, tp, 0, clrYellow);

zählen++;

wenn (Anzahl>=100)

{

mod=true;

Pause;

 

Ich habe es herausgefunden!!!!!

 

Bitte helfen Sie mir, ich lerne gerade, wenn ZZ von einem Puffer von einem Puffer und ZZ von zwei Puffern aufgerufen wurde, wie sollte ich es richtig schreiben?

// - 2 - ======================== Поиск одного экстремума ЗЗ ============================ 
    double ZZCur = 0;
    while(ZZCur == 0 && i < Bars)
      {
       if(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);
       i++;
      }
// - 2 - ============================ Окончание блока ===================================

// - 3 - ======================== Анализ найденного экстремума ========================== 
    if (ZZCur == 0)
      return(False);           // Если ни один из экстремумов не определен, то это ошибка

Ich schreibe es nicht richtig, wie sollte es geschrieben werden? Dankeschön

 

Ich habe das Stück oben nicht erfasst, das macht mehr Sinn. Bitte nennen Sie mir den Fehler.