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

 
Artyom Trishkin:

Prüfen. PLOT_SHOW_DATA

Herzlichen Dank!

 
Können Sie ein Analogon für MQL5 der SetIndexDrawBegin() Funktion von MQL4 vorschlagen.
 
The_Sheikh:
Bitte schlagen Sie ein Analogon für die MQL5-Funktion SetIndexDrawBegin() aus MQL4 vor.

https://www.mql5.com/ru/articles/81

void SetIndexDrawBegin(int index,
                       int begin)
bool PlotIndexSetInteger(index,PLOT_DRAW_BEGIN,begin)
SetIndexDrawBegin
Legen Sie die Seriennummer des Taktes vom Beginn der Daten fest, ab dem die Zeichnung der angegebenen Indikatorlinie beginnen soll.
PlotIndexSetInteger
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Ist es möglich, die Logs des Strategietesters im MT5 zu deaktivieren? Ich habe keinen Ersatzdruck, aber ich habe 20Gb über Nacht, VPS ist überfüllt. Ich habe Strategie läuft auf 7 Paare und bis zu 10 Trades pro Tag auf jedem...
 
Evgeny Dyuka:
Ist es möglich, die Logs des Strategietesters im MT5 zu deaktivieren? Ich habe keinen Ersatzdruck, aber ich habe 20Gb über Nacht, VPS ist überfüllt. Ich habe Strategie läuft auf 7 Paare und bis zu 10 Trades pro Tag auf jedem...

Gibt es einen EA mit mehreren Währungen, der auf einem VPS läuft? Für welchen Zeitraum wurde der Test durchgeführt? Oder sind 7 Tester im Einsatz?

 
Alexey Viktorov:

Läuft auf dem VPS ein EA mit mehreren Währungen? Für welchen Zeitraum wird der Test geliefert? Oder sind 7 Tester im Einsatz?

Eine Multicurrency EA läuft auf 7 Paare, 70-80 Trades pro Tag, setzen Sie es für ein Jahr, nach 5 Stunden Test war das Protokoll über 20GB, VDS starb. Das Problem mit den Protokollen ist konstant, manchmal stoppt Bot Plumed Depo den Test nicht, sondern zeigt weiterhin eine Depo-Last von 150% an und wenn ich es nicht stoppe, schreibt es weiter Protokolle, bis VDS hängt. Ich habe dieses Problem programmatisch gelöst - wenn "Sedstva" weniger als 10% des Ausgangsdepots beträgt, hält der Tester an, aber das ist eine Krücke. Aber ich weiß nicht, was ich mit einer Mehrwährungswährung machen soll.

 

Durch die Änderung des Datentyps wird die Normalisierung aufgehoben:


      V=NormalizeDouble(size,2);
      closePrice=NormalizeDouble(partPrice,_Digits);

      Print("V = ",V, "","  closePrice = ",closePrice);
      Print("V = ",DoubleToString(V), "","  closePrice = ",DoubleToString(closePrice));


2019.05.05 20:04:29.483 _part_close (EURUSD,D1) V = 0.01 closePrice = 1.13456

2019.05.05 20:04:29.483 _part_close (EURUSD,D1) V = 0.01000000 closePrice = 1.13456000


Ist das normal?

 
psyman:

Durch die Änderung des Datentyps wird die Normalisierung aufgehoben:

Ist das normal?

In Ihrem Code gibt es keine Typumwandlungen, Sie haben lediglich die Funktionhttps://www.mql5.com/ru/docs/convert/doubletostring verwendet.

mit dem Standardparameter, so dass Sie 8 Zeichen in Print() erhalten

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 

Hallo!

Ich kann nicht herausfinden, was der Fehler ist. Ich muss alle Ticks für die aktuelle Kerze erhalten.

Bei der Überprüfung ändert sich die Größe des Arrays der Ticks nicht und ist nicht gleich der aktuellen Anzahl der Ticks der Kerze.

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(time,true);
   _R=__TIK__(time,0);
   return(rates_total);
  }
//+------------------------------------------------------------------+
bool __TIK__(const datetime &time[],int _i)
  {
   MqlTick tick_array[];   // массив для приема тиков 
   MqlTick lasttick;       // для получения данных последнего тика 

   ulong    from_msc=time[_i]*1000;  
   ulong    to_msc=time[_i+1]*1000;              

   CopyTicksRange(Symbol(),tick_array,COPY_TICKS_ALL,from_msc,to_msc);
   int __ArraySize=ArraySize(tick_array);
   Print((string)__ArraySize+"  "+(string)time[_i]+"  "+(string)time[_i+1]);


   return ( false );
  }
 

Wie kann ich die Farbe einer Auftragslinie oder einer offenen Position ändern?

Im Moment sind sie alle gleich grün, was zu Verwirrung führt, und ich kann sie nicht mit roher Gewalt finden

   int obj_total=ObjectsTotal(0,0,-1);
   string name;
   for(int i=0;i<obj_total;i++)
    {
     name = ObjectName(0,i,-1,-1);
     Print(i," - объект ",name);
    }

Es sind nur die Objekte verfügbar, die vom Benutzer erstellt worden sind.

Grund der Beschwerde: