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_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)));
}
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 |
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.
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 |
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));
}
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.
И приходится ждать оплаты неделями.
Просветите, как заставить работать функции iClose-iOpen и пр. с таймфреймом отличным от нуля и от тестируемого таймфрейма. и чтобы код для тестера совпадал с кодом для реала.
Y un experto no puede ser sometido a prueba por principio.
No basta con que un zass multidivisa...
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.
Тестер видит только 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. :(
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
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!