El probador de MT4 no da información de otros plazos - página 9

 
avatara >>:

да не в том вопрос.

Получается, что на тесторе нельзя тестировать советника если его логика основана на показаниях мультитайфреймных индикаторов.

Нужно выносить расчётную часть в советник.

Или я не прав?

equivocado - usted puede

 
Vinin >>:


Конечно не прав.
Но правда не понятно зачем использовать мультитаймфреймные индикаторы?
Советник может обращаться к нужному таймфрейму или брать значения индикатора с нужного таймфрейма.
Использование мультитаймфреймных индикаторов нужно только для ручной торговли.
Получается дополнительное усложнение кода и возможность вноса дополнительных ошибок.

¿Qué tiene de malo? ¿Has mirado los registros?

Algunos de los escritores creen en Tester e iCustom...

Si tratas de entenderlo - puedes ser baneado.

Si es posible, por favor, muestre cómo recibir datos correctos de otro marco temporal en el indicador llamado por iCustom (no del período, que se pasa a iCustom) y cómo puede funcionar en el probador.

No es una limitación obvia, como para mí. No lo he encontrado en ningún sitio.

-----------------

Y el uso de toda la lógica y el código de los indicadores en lugar de iCustom definitivamente complicará el EA, pero no al revés como usted afirma... ;)

 
avatara писал(а) >>

¿Qué pasa? ¿Has mirado los registros?

Algunos de los que escriben creen en Tester e iCustom...

Si tratas de entenderlo, puedes ser expulsado.

Si es posible, por favor, muestre cómo el indicador iCustom puede recibir datos correctos del TF extranjero (no del período pasado a iCustom) y cómo puede funcionar en el probador.

No es una limitación obvia, como para mí. No lo he encontrado en ningún sitio.


Si desea obtener datos correctos en el modo visual del probador (más precisamente en el indicador superpuesto en el gráfico de prueba visual), debe proporcionar la sincronización de tiempo en el indicador.
Por lo tanto, cualquier uso de iOpen(), iClose, etc. en este modo es incorrecto. Se accede a los datos reales. Llamar a una barra cero significa dirigirse a la última barra real.

Y la mayoría de los indicadores multitemporales basados en los precios de cierre en modo de visualización miran hacia el futuro (incluso utilizando la sincronización temporal).
Por eso digo que este tipo de trabajo es innecesario, y muy probablemente perjudicial, porque da datos incorrectos.

Pero esto no se aplica a la llamada iCustom de un EA

 
Vinin >>:


Если ты хочешь получить корректные данные в визуальном режиме работы тестера (точнее в индикаторе, наброшенном на график визуального тестирования), то нужно в индикаторе предусмотреть синхронизацию времени.
Так любые обращение типа iOpen(), iClose и прочее в таком режиме работы некорректно. Идет обращение к реальным данным. И обращение к нулевому бару означает обращение к действительному последнему бару.

И большинство мультитаймфреймных индикаторов построенных на ценах закрытия в режиме визуализации заглядывают в будущее (даже используя синхронизацию по времени)
Потому и говорю, что подобная работа не нужна, а скорее всего и вредна, так как дает не корректные данные.

Repito.

Comprobación sin visualización.

Su asesor está llamando a mi inductor.

no importa qué o cómo cuente. mira los registros para ver lo que obtiene como precio desde el minuto TF.

-------

He retocado un poco el ejemplo. En tf=1 no funciona correctamente, en otros funciona como debería.

Archivos adjuntos:
curval.mq4  4 kb
 
avatara писал(а) >>

Repito.

Comprobación sin visualización.

Su asesor está llamando a mi pavo.

No importa qué o cómo cuente. mira los registros para ver lo que obtiene como precio desde el minuto TF.


Su indicador devolverá cero porque está hecho con un error lógico.
Después de un pequeño ajuste, funciona bien
 
Vinin >>:

Зачем так сложно
В режиме визуализации работать будет не корректно

Lo siento, estaba tomando una siesta, es +6gmt aquí.
Te equivocas en lo de "complicado", el código presentado es sólo una parte del código del EA, se muestra en el indicador para comprobar
para comprobar si el EA funciona correctamente en modo de prueba.
Ahora, sobre "En modo de visualización no funcionará correctamente", para los programas escritos correctamente y cuando funcionan correctamente, el programa hará (y debe hacer) lo que el programador le pidió que hiciera y nada más,
El programa no funcionará correctamente, hará (y debe hacer) lo que los programadores le han puesto, de lo contrario el software es burdo y no está ajustado, esta es mi opinión y no la mía.
Lo que se refiere a la visualización y no visualización - es del campo de los cuentos de hadas de un futuro brillante:))
He dado el código con el que he comprobado los datos procesados, se ve claramente que los TFs adyacentes
no cambian sus datos, puede poner este indicador en el EA de Onlin y comprobar que en Onlin
El código presentado funciona correctamente, y los 5 indicadores muestran aproximadamente lo mismo lógicamente
datos relacionados, el código se describe en detalle, debe ser como se describe PERO ... ¿Cómo se pueden evitar las deficiencias del bateador?
Si hay algún argumento constructivo, sugerencias, puedo ver su código donde será prácticamente probado
y se muestra - aquí están los datos de la TF actual, y aquí están los datos de la TF superior e inferior en el modo TESTOR.
Por favor, trasladen las discusiones sobre nada a otros hilos, o nos perderemos una idea útil en estas disputas innecesarias.

Pido disculpas si algo está mal. No te ofendas. Todavía tenemos que depurar el software, todavía tenemos sugerencias.

 
vladv002 писал(а) >>

Lo siento, estaba tomando una siesta, es +6gmt aquí.
Te equivocas en lo de "complicado", el código presentado es sólo una parte del código del EA, se muestra en el indicador para comprobar
para comprobar si el EA funciona correctamente en modo de prueba.
Ahora, sobre "En modo de visualización no funcionará correctamente", para los programas escritos correctamente y cuando funcionan correctamente, el programa hará (y debe hacer) lo que el programador le pidió que hiciera y nada más,
El programa no funcionará correctamente, hará (y debe hacer) lo que los programadores le han puesto para que haga lo contrario, de lo contrario el software está crudo y fuera de servicio, es mi opinión y no la mía.
Lo que se refiere a la visualización y no visualización - es del campo de los cuentos de hadas de un futuro brillante:))
He dado el código con el que he comprobado los datos procesados, se ve claramente que los TFs adyacentes
no cambian sus datos, puede poner este indicador en el EA de Onlin y comprobar que en Onlin
El código presentado funciona correctamente, y los 5 indicadores muestran aproximadamente lo mismo lógicamente
datos relacionados, el código se describe en detalle, debe ser como se describe PERO ... ¿Cómo se pueden evitar las deficiencias del bateador?
Si hay algún argumento constructivo, sugerencias, puedo ver su código donde será prácticamente probado
y se muestra - aquí están los datos de la TF actual, y aquí están los datos de la TF superior e inferior en el modo TESTOR.
Por favor, trasladen las discusiones sobre nada a otros hilos, o nos perderemos una idea útil en estas disputas innecesarias.

Pido disculpas si algo está mal. No te ofendas. Tengo que depurar el software, todavía tengo sugerencias.


El indicador está diseñado para trabajar en tiempo real.
Una vez más, no toma sus valores del gráfico de virtualización, sino de datos reales recientes.
Podemos hacer que funcione también en el gráfico de virtualización, pero tenemos que entender que no funcionará correctamente porque los datos seguirán siendo tomados del historial real y no del simulado. Habrá un vistazo al futuro, tal vez no haya suficiente historia para los cálculos. Y puede haber muchas más.
Habrá otra serie de preguntas.
 
Este es un simple indicador que escribe los valores de cierre de 6 marcos temporales en sus 6 buffers.
//+------------------------------------------------------------------+
//|                                               MultiTimeframe.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Navy
#property indicator_color3 DarkSlateGray
#property indicator_color4 Orange
#property indicator_color5 Magenta
#property indicator_color6 CornflowerBlue
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexStyle(5,DRAW_LINE);
   SetIndexBuffer(5,ExtMapBuffer6);
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   ExtMapBuffer1[0]=iClose(Symbol(),PERIOD_M1,0);
   ExtMapBuffer2[0]=iClose(Symbol(),PERIOD_M5,0);
   ExtMapBuffer3[0]=iClose(Symbol(),PERIOD_M15,0);
   ExtMapBuffer4[0]=iClose(Symbol(),PERIOD_M30,0);
   ExtMapBuffer5[0]=iClose(Symbol(),PERIOD_H1,0);
   ExtMapBuffer6[0]=iClose(Symbol(),PERIOD_H4,0);   
//----
   return(0);
  }
//+------------------------------------------------------------------+
Y aquí hay un Asesor Experto que recibe los valores de este indicador y muestra estos valores en el gráfico sólo en modo de prueba visual.

//+------------------------------------------------------------------+
//|                                                     SimpleEA.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(IsTesting())
     {
      if(IsVisualMode())
        {
         double M1_Value=iCustom(Symbol(),0,"MultiTimeframe",0,0);
         double M5_Value=iCustom(Symbol(),0,"MultiTimeframe",1,0);
         double M15_Value=iCustom(Symbol(),0,"MultiTimeframe",2,0);
         double M30_Value=iCustom(Symbol(),0,"MultiTimeframe",3,0);
         double H1_Value=iCustom(Symbol(),0,"MultiTimeframe",4,0);
         double H4_Value=iCustom(Symbol(),0,"MultiTimeframe",5,0);
         string com="Last Bid="+DoubleToStr(Close[0],Digits)+"\n";
         com=com+"iClose(M1,0)="+DoubleToStr(M1_Value,Digits)+"\n";
         com=com+"iClose(M5,0)="+DoubleToStr(M5_Value,Digits)+"\n";
         com=com+"iClose(M15,0)="+DoubleToStr(M15_Value,Digits)+"\n";
         com=com+"iClose(M30,0)="+DoubleToStr(M30_Value,Digits)+"\n";
         com=com+"iClose(H1,0)="+DoubleToStr(H1_Value,Digits)+"\n";
         com=com+"iClose(H4,0)="+DoubleToStr(H4_Value,Digits)+"\n";
         Comment(com);
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+

Si después de esto sigues argumentando que los indicadores del probador no están correctamente calculados o que se modelan los datos de precios de plazos no nativos, tendrás que aportar pruebas, de lo contrario serás baneado. Prohibido.
 
Vinin >>:


Индикатор предназначен для работы в реал-тайм.
Я еще раз повторюсь что он берет свои значения с не с графика виртуализации, а с вполне реальных последних данных
Можно сделать что бы он работал и на графике виртуализации, но надо понимать что будет не совсем корректная работа, так как данные все равно будут браться с реальной истории, а не с моделированной. Будет заглядывание в будущее, возможно не будет хватать истории для расчетов. Да и много еще что может быть.
Появятся совсем другие вопросы.

Debo haber dicho algo mal, lo siento, lo intentaré de nuevo con más detalle.
Cada TF tiene sus propias barras que tienen su propio tiempo - ¿por qué tenemos una mirada hacia adelante?
Sé que hay Asesores Expertos con visión de futuro,
es un juego de niños.
De qué estás hablando "El indicador está diseñado para trabajar en tiempo real", ¡estamos hablando del Tester!
Pregunta específica - el probador no está dando datos de los TFs adyacentes, sólo los datos del TF actual está llegando - CÓMO correctamente
eludir esta deficiencia del probador del sistema MT4
.
Ninguna de las funciones MQL4 puede devolver datos de los TFs adyacentes en el probador, ni por encima ni por debajo.
Si los datos están ahí, puede arreglarlos, comprobarlos, mostrarlos - Comentario,Alerta,Impresión - o pasarlos para su procesamiento.
Cualquier sugerencia sobre cómo eliminar este inconveniente en el Probador, os lo agradecería mucho y creo que no soy el único.


 
Rosh >>:
Вот простой индикатор, который пишет в 6 своих буферов значения Close с 6-ти таймфреймов.
А вот эксперт, который получает значения из этого индикатора и выводит полученные значения на график только в режиме визуального тестирования.


Если и после этого вы продолжите утверждать, что в тестере неверно считаются индикаторы или моделируются ценовые данные с неродных таймфреймов, то вы обязаны будет предоставить доказательства, иначе бан. Надоело.

Gracias por el ejemplo convincente de los desarrolladores.

Extremadamente útil para tener a mano. Antes de las pruebas, para comprobar la corrección del trabajo.

Pero mis problemas locales permanecen - como puedes ver M1=0.0. :(

Aunque he borrado los archivos del historial y demás...

Aprenderá más.

Gracias de nuevo por toda su ayuda.