Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1162

 
Aliaksandr Kryvanos:

Hola a todos, tengo una pregunta, ¿es posible cambiar los parámetros del indicador sobre la marcha, sin abrir la ventana de configuración?

https://www.mql5.com/ru/forum/213718#comment_5624828

Можно ли поменять входные параметры автоматически?
Можно ли поменять входные параметры автоматически?
  • 2017.08.17
  • www.mql5.com
Хочу сделать универсального солдата, который позволил бы, менять входные параметры на ходу, + чтобы советник переинициализовался Информации, по пов...
 
Сергей:

así es como lo escribí... No entiendo por qué los pares jpy se muestran incorrectamente... intente adjuntar a cualquier par sin jpy en el terminal y luego a un par con jpy, los resultados son diferentes...

Lo he encontrado - los pares con jpy tienen un valor Point diferente. Tomé MarketInfo("SYMBOL",MODE_POINT)). cambié la fuente, su tamaño y color. Se ha corregido un error más


Archivos adjuntos:
 
STARIJ:
Encontré lo que está mal - pares con jpy el valor del punto es diferente. Tomé MarketInfo("SYMBOL",MODE_POINT)). cambié la fuente, su tamaño y color. Se ha corregido un error más



Podría añadir la sincronización, porque no siempre se produce un tick en todos los gráficos al mismo tiempo y si cambias de barra obtendrás los datos erróneos...

Yo tengo más o menos el mismo sistema y en la vida real he visto discrepancias en los resultados.

Lo resolví de esta manera -

    BarShift_AUDUSD = iBarShift("AUDUSD",0,Time[1],true); if(BarShift_AUDUSD <= 0) return;
    BarShift_NZDUSD = iBarShift("NZDUSD",0,Time[1],true); if(BarShift_NZDUSD <= 0) return;
    BarShift_USDCAD = iBarShift("USDCAD",0,Time[1],true); if(BarShift_USDCAD <= 0) return;
    BarShift_USDJPY = iBarShift("USDJPY",0,Time[1],true); if(BarShift_USDJPY <= 0) return;

    vol = iMA("AUDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_AUDUSD);
    vo2 = iMA("NZDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_NZDUSD);
    vo3 = iMA("USDCAD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDCAD);
    vo4 = iMA("USDJPY",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDJPY);

sincroniza todas las lecturas de los otros gráficos en el gráfico abierto - es decir, hasta que una nueva barra comienza en todos los gráficos...

 
elmucon:
Podría añadir la sincronización, porque no siempre se produce un tick en todos los gráficos al mismo tiempo y si cambias de barra obtendrás los datos erróneos...
Yo tengo más o menos el mismo sistema y en la vida real he notado discrepancias en los resultados.
Lo resolví de esta manera -
Sincroniza todas las lecturas de otros gráficos en el gráfico abierto, es decir, hasta que se inicia una nueva barra en todos los gráficos...

Mira atentamente el código publicado. En general, la tarea era simplemente eliminar los errores, para ayudar a Sergei a conseguir un gran beneficio

 


Me pueden decir por qué el valor del indicador iCustom es siempre 0. Incluso en las cimas. Esto es si se obtienen los valores en el indicador. Luego como en el EA sin problemas. El segundo buffer en el indicador sin problemas.


//--------------------------------------------------------------------
#property indicator_separate_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property  indicator_color1 Blue     // Цвет первой линии
#property  indicator_color2 Red      // Цвет второй линии
double zz; 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
  
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      zz=iCustom(NULL,0,"Zig_Zag",15,5,5,0,i);
      Buf_0[i]= zz;                 // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i];              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 
Александр:

Por favor, dígame por qué el valor del indicador iCustom es siempre igual a 0. Incluso en las cimas. Es si recibo valores en el indicador. Entonces no hay ningún problema con él en el Asesor Experto. El segundo buffer en el indicador sin problemas.

Mira si el script adjunto puede ayudarte. El ZigZag es cero en todas partes excepto en los vértices. iCustom - función para calcular el indicador personalizado

Archivos adjuntos:
 
STARIJ:

Mira si el script adjunto puede ayudarte. El ZigZag es cero en todas partes excepto en los vértices. iCustom - función para el cálculo del indicador personalizado

Yo dije específicamente: - "Incluso en los vértices". Es decir, iCustom debería mostrar los valores en la parte superior. Hace exactamente eso en el Asesor Experto. Pero no lo hace en un indicador. ¿Por qué?

 
Александр:

Yo dije específicamente: - "Incluso en las cimas". Es decir, iCustom debería mostrar los valores en la parte superior. Eso es lo que hace en el Asesor Experto. Pero no lo hace en el indicador. ¿Por qué?

Mira el script adjunto - quizás encuentres una respuesta a tu pregunta. En general, con la ayuda de los guiones se puede comprobar, averiguar, aclarar...
 
STARIJ:
Mira el script publicado aquí - quizás encuentres la respuesta a tu pregunta. En general, puede utilizar los guiones para comprobar, averiguar, aclarar...
OK
 
Александр OK

aprender guiones, escribir guiones es una buena manera de aprender un idioma y buscar errores