Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 587

 
Karputov Vladimir:
Traum11:

Guten Tag, hier ist das Problem... es gibt eine Trailing-Stop-Funktion...

Wie kann man es so ändern, dass es eine unbegrenzte Anzahl von Aufträgen durchsucht, anstatt nur einen ...


Ich habe so ein Gerät, es durchforstet alles.
extern int             TrailingStep = 10;     //Шаг трейлинга
extern int             TrailingStop = 30;     //Трейлинг стоп
//+------------------------------------------------------------------+
//Трейлинг стоп
void Trailing()
{
 int err = GetLastError();
 err = 0;
 
 for(int i = OrdersTotal()-1; i>=0; i--)
 {
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  {
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
   {
    if(OrderType() == OP_BUY)
    {     
     if(Ask - OrderOpenPrice() > TrailingStop*Point)
     {
      if(OrderStopLoss() < Ask - (TrailingStep + TrailingStop)*Point)
      {
       if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TrailingStop*Point,Digits),OrderTakeProfit(),0,clrGreen))
       {
        err = GetLastError();
        if(err != 0) Print("Ошибка модификации ордера № ",OrderTicket()," на покупку! Код ошибки: ",err,".");
       }
      }
     }
    }
    if(OrderType() == OP_SELL)
    {
     if(OrderOpenPrice() - Bid > TrailingStop*Point)
     {
      if(OrderStopLoss() > Bid + (TrailingStep + TrailingStop)*Point)
      {
       if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TrailingStop*Point,Digits),OrderTakeProfit(),0,clrRed))
       {
        err = GetLastError();
        if(err != 0) Print("Ошибка модификации ордера № ",OrderTicket()," на продажу! Код ошибки: ",err,".");
       }
      }
     }
    }
   }
  }
 }
}
//+------------------------------------------------------------------+
 
barudkinarseniy:
Ich habe so ein Ding und es macht alles kaputt.
Es ist so ziemlich dasselbe, vielleicht rufen Sie es an der falschen Stelle auf.
 
Alexey Viktorov:
Kann man das nicht über den OnTimer() machen?

Ich mache es mit einem Timer. Ich habe es bereits herausgefunden, danke, ich musste nur ChartRedraw Funktion in jeder Zeitschleife hinzufügen, um das Diagramm zu aktualisieren. Verdammt, sie haben eine Menge Komplexität in mql5 nach mql4 hinzugefügt, aber vielleicht ist es für das Beste...

 
Eine weitere Frage: Wie kann eine Datums-Zeit-Variable (Typ datetime) in NUMBER of seconds after 1970 umgewandelt werden? Denn wenn Sie die Zeit zu einer regulären Ganzzahl gleichsetzen, wird diese int-Variable in der Tat gleich diese Anzahl von Sekunden, aber es wird eine Warnung"möglicher Verlust von Daten aufgrund von Typkonvertierung", es ist ein bisschen ärgerlich, gibt es eine Möglichkeit, das Problem zu lösen?

 
loleg1991:
Eine weitere Frage: Wie kann eine Datums-Zeit-Variable (Typ datetime) in NUMBER of seconds after 1970 umgewandelt werden? Denn wenn Sie zu einem regulären Integer-Zeitwert gleichzusetzen, wird diese int-Variable in der Tat gleich diese Anzahl von Sekunden, aber es wird eine Warnung"möglicher Verlust von Daten aufgrund von Typkonvertierung", es ist ein bisschen ärgerlich, gibt es eine Möglichkeit, das Problem zu lösen?

Lesen Sie "Umwandlung numerischer Typen" in der Dokumentation
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
loleg1991:
Eine weitere Frage: Wie kann eine Datums-Zeit-Variable (Typ datetime) in NUMBER of seconds after 1970 umgewandelt werden? Denn wenn Sie zu einem regulären Integer-Zeitwert gleichzusetzen, wird diese int-Variable in der Tat gleich diese Anzahl von Sekunden, ABER es wird eine Warnung"möglicher Verlust von Daten aufgrund von Typ-Konvertierung", es ist ein bisschen ein Ärgernis, gibt es eine Möglichkeit, das Problem zu lösen?

datetime ist die Anzahl der Sekunden

https://www.mql5.com/ru/docs/basis/types/integer/datetime

.

https://www.mql5.com/ru/docs/convert/stringtotime

Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Тип datetime - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
loleg1991:
Eine weitere Frage: Wie kann eine Datums-Zeit-Variable (Typ datetime) in NUMBER of seconds after 1970 umgewandelt werden? Denn wenn Sie es zu einem regulären Integer-Wert der Zeit gleichzusetzen, wird diese int-Variable wirklich gleich diese Anzahl von Sekunden, aber es wird eine Warnung"möglicher Verlust von Daten aufgrund von Typ-Konvertierung", es ist ein bisschen ärgerlich, gibt es eine Möglichkeit, das Problem zu lösen?

Wenn Sie nicht das Datum, sondern die Anzahl der Sekunden meinen, dann konvertieren Sie es explizit in den Typ long.
 
Alexey Kozitsyn:
Wenn Sie die Anzahl der Sekunden anzeigen wollen, aber nicht das Datum, dann machen Sie es ausdrücklich zu einem langen Typ.
Ja, ich meinte die Anzeige, danke, das hilft.
 
loleg1991:
Ja, ich meinte das mit der Anzeige, danke, das hilft.
Gern geschehen)
 

Hallo, könnten Sie mir bitte sagen, ob es für den Expert Advisor möglich ist, ein Objekt wie eine Schaltfläche oder einen Kippschalter zum Diagramm hinzuzufügen, und wenn ja, wie?

Grund der Beschwerde: