[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 414

 
inoy:

Der Berater wird einen Auftrag nicht rechtzeitig schließen, wenn ein anderer Auftrag für das Symbol zu einem früheren Zeitpunkt als der eigene Auftrag des Beraters geöffnet wurde.
bestellen. Wenn der Auftrag eines anderen Kunden später offen ist oder keine anderen Aufträge vorliegen, funktioniert die Funktion OrderClose korrekt. Bitte geben Sie an, wo der Fehler liegt


Der Fehler liegt darin, dass Sie nur den Auftrag mit dem Index 0 nehmen und ihn nicht unter den offenen Aufträgen suchen.
 
Roger:

Der Fehler liegt darin, dass Sie einfach einen Auftrag mit dem Index 0 nehmen, anstatt ihn unter den offenen Aufträgen zu suchen.

Ich bitte um Verzeihung, aber die Situation ist bei DIESER Variante ähnlich.
//---- закрытие позиции
if(OrdersTotal() > 0)
for(int i=OrdersTotal();i>=0;i--)
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol()&& OrderMagicNumber() == MagicNumber)
if ( iTime(Symbol(),0,0) >= OrderOpenTime()+SecondsClose )
if (OrderType() == OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);
Wären Sie so freundlich, die richtige Lösung für das Problem zu nennen?
 
Avelox:

Wie gibt man einen Piepton in einem Indikator mit dem folgenden Ausdruck aus?

if (num1 == 9) {
ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 16, "Arial", RoyalBlue);

}

Wenn Sie ausführlicher sein können als "Sie können OBJ_SICICOCI verwenden und sich die Details in der MQL4-Dokumentation ansehen, dort steht alles!"

Ich habe dieses Problem selbst lösen können:


ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 18, "Arial", RoyalBlue);
PlaySound("havecall.wav"); }
 
inoy:

Ich bitte um Verzeihung, aber in DIESEM Szenario ist die Situation ähnlich. Wären Sie so freundlich, eine angemessene Lösung für das Problem zu finden?

//---- закрытие позиции
if(OrdersTotal() > 0) 
{
  for(int i=OrdersTotal();i>=0;i--) 
  {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol()==Symbol()&& OrderMagicNumber() == MagicNumber) 
    {
      if ( iTime(Symbol(),0,0) >= OrderOpenTime()+SecondsClose ) 
      {
         if (OrderType() == OP_BUY)
         {
            OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);
         }
      }
   }
}
 

Nun, ersetzen Sie auch

for(int i=OrdersTotal();i>=0;i--) 

zu

for(int i=OrdersTotal()-1;i>=0;i--) 


И еще, не понял, что за элемент в функции (подчеркнуто красным)?

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);

 
 for ( Ausdruck_1; ; Ausdruck_2) // Keine Bedingung { // Öffnende geschweifte Klammer Operatorblock, // Der Schleifenkörper kann aus ... bestehen, die den Schleifenkörper //... aus mehreren Operatoren bilden } // Schließende geschweifte Klammer

Können Sie mir sagen, was eine Bedingung ist, um eine solche Schleife zu beenden? Oder eine Schleife wie diese

 For ( ; ; ) // Abwesend. Ausdruck und Bedingung { // Öffnende geschweifte Klammer Ein Block von Operatoren, // Ein Schleifenkörper kann aus // ... mehreren Operatoren bestehen, die den Schleifenkörper bilden } // Schließende geschweifte Klammer
 
VladimirR:

Können Sie mir sagen, unter welchen Bedingungen ein solcher Zyklus beendet werden kann? Oder eine von diesen


Pause
 

Vinin, Roger - danke, das hat geholfen.

NormalizeDouble((Ask - Bid) * Point,Digits) ist Slippage für Symbole mit großen Spreads, z.B. XAUUSD.

 
inoy:

Vinin, Roger - danke, das hat geholfen.

NormalizeDouble((Ask - Bid) * Point,Digits) ist Slippage für Symbole mit großen Spreads, z.B. XAUUSD.


Können Sie sich also vorstellen, dass es 0 ist? Erstens sollte der Schlupf eine positive ganze Zahl sein, zweitens sollte die Differenz durch Punkt geteilt und nicht multipliziert werden.
 
Meine Herren, wie "trainiert" man einen EA, nachts nicht zu handeln? D.h. Endzeit zwischen 23 und 02 Stunden (GMT)... Hour()>=2&Hour()<=23 hat nicht geholfen...
Grund der Beschwerde: