El probador de MT4 no da información de otros plazos

 
En el proceso de aprendizaje de MQL4 descubrí que al menos mi probador no da información
de otros TFs. Aquí está el código de comprobación, se puede adjuntar a cualquier Asesor Experto. En mi probador
sólo cambian las indicaciones del TF, los demás permanecen en el mismo lugar.
Comentario (
"\n", " -----------1------ = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " -----------2------ = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1),
"\n", " -----------3------ = ",iOpen(Symbol(),15,1)," - ",iClose(Symbol(),15,1),
"\n", " -----------4------ = ",iOpen(Symbol(),30,1)," - ", iClose(Symbol(),30,1),
"\n", " -----------5------ = ",iOpen(Symbol(),60,1)," - ", iClose(Symbol(),60,1),
"\n", " -----------6------ = ", iOpen(Symbol(),240,1)," - ", iClose(Symbol(),240,1),
"\n", " -----------7------ = ",iOpen(Symbol(),1440,1)," - ", iClose(Symbol(),1440,1),
"\n", " -----------8------ = ",iOpen(Symbol(),10080,1)," - ", iClose(Symbol(),10080,1),
"\n", " -----------9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1));
Probado cada uno en cada TF, la misma historia - las lecturas cambian sólo para ese TF
en el que se prueba. Internet no aclara la situación.
¡Por favor, aconsejar, es una solución o estoy pidiendo no hay.
gracias por la atención!
 
es un hecho. :(
Y los valores actuales están parados, es decir, desde el tiempo real.
Y al probar en barras formadas con una nueva barra, la anterior cambia... :О)
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_style1 0
#property indicator_color1 Orange
#property indicator_width1 2
#property indicator_style2 0
#property indicator_color2 BlueViolet
#property indicator_width2 2
extern bool Test=false;
//03/04/10
//SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);

//---- buffers
double DMA[];string PARA;int hFile;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,DMA);
SetIndexShift(0,0);
SetIndexLabel(0,"inv");
PARA=Symbol();
if (Test) hFile=FileOpen("Dt"+Symbol()+Period()+".csv",FILE_CSV |FILE_WRITE,";");


//if (iClose(PARA,0,0)<0.00001) {Alert (PARA," - not presents...");deinit();
// return (-1);}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
if (Test) FileClose(hFile);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{

//----
int counted_bars=IndicatorCounted();
int i,N;double Value;
N=Bars-counted_bars;

if(counted_bars<0) return(-1);
//---- last counted bar will be recounted

if (N==0) return(0);

if (Test){ FileWrite(hFile,"--1 ",StrTime(iTime(Symbol(),Period(),1)),iClose(PARA,0,1));
FileWrite(hFile,"--0 ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,0,0));
}
for (i=N-1; i>=0; i--)
{
Value=iClose(PARA,0,i);

// Print (i,"=",Value);
DMA[i]=Value;
}

return(0);
}
//+------------------------------------------------------------------+
string StrTime(datetime IT){
return(StringConcatenate(TimeYear(IT),".",TimeMonth(IT),".",TimeDay(IT)
, "-",TimeHour(IT),"^",TimeMinute(IT),"^",TimeSeconds(IT)));
}
Como resultado, tenemos en el probador
0
2009.2.3-10^15^0
1.2849

1
2009.2.3-10^15^0
1.2844

0
2009.2.3-10^30^0
1.2845

1 2009.2.3-10^30^0 1.2852
0 2009.2.3-10^45^0 1.2852
1 2009.2.3-10^45^0 1.2841
0 2009.2.3-11^0^0 1.2841
1 2009.2.3-11^0^0 1.2834
0 2009.2.3-11^15^0 1.2833
1 2009.2.3-11^15^0 1.2814
0 2009.2.3-11^30^0 1.2814
1 2009.2.3-11^30^0 1.2813
0 2009.2.3-11^45^0 1.2813
1 2009.2.3-11^45^0 1.2823
0 2009.2.3-12^0^0 1.2822
1 2009.2.3-12^0^0 1.281
0 2009.2.3-12^15^0 1.281
1 2009.2.3-12^15^0 1.2824
0 2009.2.3-12^30^0 1.2823
1 2009.2.3-12^30^0 1.2829
0 2009.2.3-12^45^0 1.2829
1 2009.2.3-12^45^0 1.2824
0 2009.2.3-13^0^0 1.2824
1 2009.2.3-13^0^0 1.2835
0 2009.2.3-13^15^0 1.2835
1 2009.2.3-13^15^0 1.2838
0 2009.2.3-13^30^0 1.2838
1 2009.2.3-13^30^0 1.2836
0 2009.2.3-13^45^0 1.2836
 
vladv002 писал(а) >>
En el proceso de aprendizaje de MQL4 descubrí que al menos mi probador no da información
de otros TFs. Aquí está el código de comprobación, se puede adjuntar a cualquier Asesor Experto.
Se puede colgar en cualquier Asesor Experto, en mi probador sólo cambian las indicaciones del TF.
Comentario (
"\n", " -----------1------ = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " -----------2------ = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1),
"\N -", "003------ = ",iOpen(Symbol(),15,1)," - ", iClose(Symbol(),15,1),
"\n", " -----------4------ = ",iOpen(Symbol(),30,1)," - ", iClose(Symbol(),30,1),
"\n", " -----------5------ = ",iOpen(Symbol(),60,1)," - ", iClose(Symbol(),60,1),
"\n", " -----------6------ = ",iOpen(Symbol(),240,1)," - ", iClose(Symbol(),240,1),
"\N -", "007------ = ",iOpen(Symbol(),1440,1)," - ", iClose(Symbol(),1440,1),
"\n", " -----------8------ = ",iOpen(Symbol(),10080,1)," - ", iClose(Symbol(),10080,1),
"\n", " -----------9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1))
Lo he probado en todos los TF, la misma historia - las lecturas cambian sólo para el TF
en el que se comprueba. En la red no se ha aclarado la situación.
Por favor, aconsejar, es un tema para el tratamiento o estoy pidiendo no hay.
Gracias por sus comentarios.


Con el enfoque adecuado, todo funciona bien.
 
Vinin >>:


При правильном подходе все работает нормально.


Lo siento, ¿podría entrar en más detalles?
 
vladv002 писал(а) >>


Disculpe, ¿podría entrar en más detalles?


¿Y cuál es el problema a resolver?

 
Vinin >>:


А какую задачу нужно решить?

Esto es lo que obtenemos

1 2009.7.10-22^45^0 1.39478
0 2009.7.10-23^0^0 1.39476
--0M 2009.7.10-23^0^0 1.3488
1 2009.7.10-23^0^0 1.39476
0 2009.7.10-23^15^0 1.39475
--0M 2009.7.10-23^15^0 1.3488
1 2009.7.10-23^15^0 1.39475
0 2009.7.10-23^30^0 1.39472
--0M 2009.7.10-23^30^0 1.3488
1 2009.7.10-23^30^0 1.39409
0 2009.7.10-23^45^0 1.39409
--0M 2009.7.10-23^45^0 1.3488
1 2009.7.10-23^45^0 1.39353
0 2009.7.13-1^0^0 1.39461
--0M 2009.7.13-1^0^0 1.3488
Si en el código anterior cambiamos el bloque de salida por

if (Test){ FileWrite(hFile,"--1 ",StrTime(iTime(Symbol(),Period(),1)),iClose(PARA,0,1));
FileWrite(hFile,"--0 ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,0,0));
FileWrite(hFile,"--0M ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,1,0));
}

 
Vinin писал(а) >>


>>¿Qué problema tiene que resolver?


Sí, yo también tengo curiosidad. Los clientes suelen pedir artesanías de varios tiempos, y usted sólo puede probarlas en vivo...
Y tener que esperar semanas para el pago.

Ilumíname cómo hacer que las funciones iClose-iOpen funcionen con un timeframe distinto de cero y del timeframe que se está probando. Y que el código del tester coincida con el código del real.
 
api >>:


Да, мне тоже интересно. Заказчики часто заказывают мультитаймфреймовые поделки, а тестировать можно только вживую...
И приходится ждать оплаты неделями.

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

Y un experto no puede ser sometido a prueba por principio.

No basta con que un zass multidivisa...

 
Vinin >>:


А какую задачу нужно решить?

Bastante simple - dibujamos 9 cuadrados en una línea en el gráfico - sombrearemos según las lecturas del indicador
que usaremos para la prueba: verde o rojo.
Estoy tratando de entender en detalle lo que se mueve por las garrapatas, pero hay una trampa.
Hay algo de información en Internet, pero no en https://www.mql5.com/ru/articles/1385. Hay mucha agua en otros artículos pero
no es lo mismo. He intentado sustituir las variables y ponerlas en un array, pero el resultado es cero, o mejor dicho
El resultado es cero, o para ser más precisos, no hay resultado porque no hay datos.
Para evaluar correctamente la situación, y más aún para escribir un programa, necesito saber exactamente
Ahora resulta que una cosa es real y la otra está mal en el probador.
Queda por probar en la demo en ON-Line - ¡todavía no lo he comprobado!
Ayer me di cuenta de que algo iba mal.

 

El probador sólo ve las últimas 1000 barras al inicio de la prueba. Si usted establece un Asesor Experto en M1, no verá más de 1000 minutos atrás (en el momento de iniciar la prueba).

Resuelvo este problema estableciendo la fecha de inicio del probador mucho antes, y prescribiendo la fecha requerida en el propio Asesor Experto.

 
sak120 >>:

Тестер видит только 1000 последних баров в начале тестирования. Если поставил эксперт на M1, то дальше 1000 минут назад не увидишь (в момент старта тестирования).

Решаю эту проблему постановкой даты старта тестера намного раньше, а в самом эксперте прописываю нужную дату.

Se ha afirmado que los datos de los minutos se utilizan para generar los ticks.

Pero el valor del minuto en sí, como se ve en mi ejemplo -el valor actual- no tiene nada que ver con el historial de minutos.

¿Y de dónde has sacado la información sobre las 1000 barras?

¿Tal vez configuró las propiedades del historial de esa manera?

Pero no es así en mi caso...

----

Es un hecho que no hay más de 100 barras de datos antes del inicio del periodo de prueba.

Esto también es un hecho. :(

Razón de la queja: