Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1037

 
Artyom Trishkin:

Controllare. PLOT_SHOW_DATA

Grazie mille!

 
Potete suggerire un analogo per MQL5 della funzione SetIndexDrawBegin() di MQL4.
 
The_Sheikh:
Si prega di suggerire un analogo per la funzione MQL5 SetIndexDrawBegin() da MQL4.

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

void SetIndexDrawBegin(int index,
                       int begin)
bool PlotIndexSetInteger(index,PLOT_DRAW_BEGIN,begin)
SetIndexDrawBegin
Imposta il numero di serie della barra dall'inizio dei dati, da cui deve iniziare il disegno della linea indicatrice indicata.
PlotIndexSetInteger
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
È possibile disabilitare i log di strategy tester in MT5? Non ho nessuna stampa di riserva, ma ho 20Gb durante la notte, il VPS è bloccato. Ho una strategia che funziona su 7 coppie e fino a 10 scambi al giorno su ciascuna...
 
Evgeny Dyuka:
È possibile disabilitare i log di strategy tester in MT5? Non ho nessuna stampa di riserva, ma ho 20Gb durante la notte, il VPS è bloccato. Ho una strategia che funziona su 7 coppie e fino a 10 scambi al giorno su ciascuna...

C'è un EA multivaluta in esecuzione su VPS? Per quanto tempo è stato eseguito il test? O ci sono 7 tester che corrono?

 
Alexey Viktorov:

C'è un EA multivaluta in esecuzione sul VPS? Per quale periodo viene consegnato il test? O ci sono 7 tester che corrono?

Un EA multicurrency in esecuzione su 7 coppie, 70-80 scambi al giorno, messo per un anno, dopo 5 ore di test il log era oltre 20GB, VDS è morto. Il problema con i log è costante, a volte il bot plumed depo non ferma il test, ma continua a mostrare il carico del depo al 150% e se non lo fermo, continua a scrivere log fino a quando il VDS si blocca. Ho risolto questo problema programmaticamente - quando "Sedstva" è inferiore al 10% del depo di partenza, il tester si ferma, ma è una stampella. Ma non so cosa fare con quella multicurrency.

 

Cambiare il tipo di dati interrompe la normalizzazione:


      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


È normale?

 
psyman:

Cambiare il tipo di dati interrompe la normalizzazione:

È normale?

Non ci sono conversioni di tipo nel tuo codice, hai solo usato la funzionehttps://www.mql5.com/ru/docs/convert/doubletostring.

con il parametro predefinito, quindi avete 8 caratteri in Print()

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

Ciao!

Non riesco a capire quale sia l'errore. Ho bisogno di ottenere tutti i tick per la candela corrente.

Quando si controlla, la dimensione dell'array di tick non cambia, e non è uguale al numero corrente di tick della candela.

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 );
  }
 

Come posso cambiare il colore di una linea d'ordine o di una posizione aperta?

In questo momento sono tutti dello stesso verde, il che crea confusione, e non riesco a trovarli con la forza bruta

   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);
    }

Sono disponibili solo gli oggetti che sono stati creati dall'utente.

Motivazione: