Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1037

 
Artyom Trishkin:

Compruébalo. PLOT_SHOW_DATA

¡Muchas gracias!

 
Puedes sugerir un análogo para MQL5 de la función SetIndexDrawBegin() de MQL4.
 
The_Sheikh:
Por favor, sugiera un análogo para la función MQL5 SetIndexDrawBegin() de MQL4.

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

void SetIndexDrawBegin(int index,
                       int begin)
bool PlotIndexSetInteger(index,PLOT_DRAW_BEGIN,begin)
SetIndexDrawBegin
Establezca el número de serie de la barra desde el inicio de los datos, a partir del cual debe comenzar el trazado de la línea indicadora indicada.
PlotIndexSetInteger
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
¿Es posible desactivar los registros del probador de estrategias en MT5? No me sobra la impresión, pero tengo 20Gb de noche, el VPS está atascado. Tengo la estrategia en marcha en 7 pares y hasta 10 operaciones al día en cada uno...
 
Evgeny Dyuka:
¿Es posible desactivar los registros del probador de estrategias en MT5? No me sobra la impresión, pero tengo 20Gb de noche, el VPS está atascado. Tengo la estrategia en marcha en 7 pares y hasta 10 operaciones al día en cada uno...

¿Existe un EA multidivisa que funcione en VPS? ¿Durante qué periodo se realizó la prueba? ¿O hay 7 probadores corriendo?

 
Alexey Viktorov:

¿Hay un EA multidivisa que se ejecuta en el VPS? ¿Para qué período se entrega la prueba? ¿O hay 7 probadores corriendo?

Un EA multidivisa funcionando en 7 pares, 70-80 operaciones al día, lo puse durante un año, después de 5 horas de prueba el registro era de más de 20Gb, el VDS murió. El problema con los logs es constante, a veces el bot plumed depo no detiene la prueba, pero sigue mostrando la carga del depo al 150% y si no lo detengo, sigue escribiendo logs hasta que el VDS se cuelga. He resuelto este problema programáticamente - cuando "Sedstva" es menos del 10% de la deposición inicial, el probador se detiene, pero es una muleta. Pero no sé qué hacer con la multidivisa.

 

El cambio del tipo de datos rompe la normalización:


      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


¿Es esto normal?

 
psyman:

El cambio del tipo de datos rompe la normalización:

¿Es esto normal?

No hay conversiones de tipo en tu código, sólo has utilizado la funciónhttps://www.mql5.com/ru/docs/convert/doubletostring.

con el parámetro por defecto, por lo que tienes 8 caracteres en Print()

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

¡Hola!

No puedo averiguar cuál es el error. Necesito obtener todos los ticks de la vela actual.

Al comprobarlo, el tamaño del array de ticks no cambia, y no es igual al número actual de ticks de la vela.

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

¿Cómo puedo cambiar el color de una línea de orden o de una posición abierta?

Ahora mismo son todos del mismo color verde, lo que causa confusión, y no puedo encontrarlos por fuerza 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);
    }

Sólo están disponibles los objetos creados por el usuario.

Razón de la queja: