O testador MT4 não fornece informações de outros períodos de tempo

 
No processo de aprendizagem da MQL4 descobri que pelo menos meu testador não dá informações
de outras TFs. Aqui está o código de verificação, ele pode ser anexado a qualquer Expert Advisor. Em meu testador
apenas as indicações da TF estão mudando, outras ficam no mesmo lugar.
Comentário (
"\n", " ----------- 1
= ",iOpen(Symb ol(),1,1)," - ", iClose(Symbol(),1,1), "\n", "
2----------- = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1), "\n", " ------ 3 = ",iOpen(Symbol(),15,1)," - ",iClose(Símbolo(),15,1),
"\n", " ----------- 4------ = ",iOpen(Símbolo(),30,1)," - ", iClose(Símbolo(),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(Símbolo(),1440,1),
"\n", " ------ 8------ = ",iOpen(Símbolo(),10080,1)," - ", iClose(Símbolo(),10080,1),
"\n", "
9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1)); Tentei cada um em cada TF, mesma história - as leituras mudam apenas para aquela TF
na qual é testado. A Internet não está resolvendo a situação.
Por favor, informe, é um conserto ou não estou pedindo para não estar lá.
obrigado pela atenção!
 
é um fato. :(
E os valores atuais estão em pé, ou seja, a partir do tempo real.
E ao testar em barras formadas com uma nova barra, a anterior muda... :О)
#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, temos no testador
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 писал(а) >>
No processo de aprendizagem da MQL4, descobri que pelo menos meu testador não dá informações
de outras TFs. Aqui está o código de verificação, ele pode ser anexado a qualquer Expert Advisor.
Pode ser pendurado em qualquer Expert Advisor, em meu testador apenas as indicações do TF estão mudando.
Comentário (
"\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))
Eu tentei em cada TF, a mesma história - as leituras mudam apenas para a TF
no qual é testado. O trabalho em rede ainda não resolveu a situação.
Por favor, informe, é um assunto para tratamento ou peço que não esteja lá.
Obrigado por seu feedback!


Com a abordagem correta, tudo funciona bem.
 
Vinin >>:


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


Desculpe, você poderia entrar em mais detalhes aqui?
 
vladv002 писал(а) >>


Desculpe-me, poderia entrar em mais detalhes aqui?


E qual é o problema a ser resolvido?

 
Vinin >>:


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

Eis o que obtemos

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
Se no código acima mudarmos o bloco de saída para

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 писал(а) >>


>> Que problema você tem que resolver?


Sim, eu também estou curioso. Os clientes costumam encomendar artesanato multiuso, e só é possível testá-lo ao vivo...
E ter que esperar semanas para o pagamento.

Ilumine-me como fazer com que as funções iClose-iOpen funcionem com um prazo diferente de zero e o prazo que está sendo testado. E para fazer o código para o testador coincidir com o código para o verdadeiro.
 
api >>:


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

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

E um especialista não pode ser testado como uma questão de princípio.

Não é suficiente que um zass com múltiplas moedas...

 
Vinin >>:


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

Muito simples - desenhamos 9 quadrados em uma linha no gráfico - sombrearemos de acordo com as leituras dos indicadores
que usaremos para o teste - verde ou vermelho.
Estou tentando entender em detalhes o que se move por carrapatos, mas existe uma armadilha.
Há algumas informações na Internet, mas não no site https://www.mql5.com/ru/articles/1385. Há muita água em outros artigos, mas
não é a mesma coisa. Tentei substituir as variáveis e colocá-las em uma matriz, mas o resultado é zero, ou melhor
O resultado é zero, ou para ser mais preciso, não há resultado porque não há dados.
A fim de avaliar corretamente a situação, quanto mais escrever um programa, eu preciso saber exatamente
Agora acontece que uma coisa é real e a outra está errada no testador.
Ainda não foi testado na demonstração em ON-Line - ainda não foi verificado!
Ontem eu notei algo errado.

 

O testador só vê as últimas 1000 barras no início dos testes. Se você definir um consultor especializado em M1, você não verá mais de 1000 minutos atrás (no momento do início dos testes).

Eu resolvo este problema definindo a data de início do testador muito antes, e prescrevendo a data necessária no próprio Expert Advisor.

 
sak120 >>:

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

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

Tem sido alegado que dados minuciosos são usados para gerar os carrapatos.

Mas o valor minuto em si, como visto no meu exemplo - o valor atual - não tem nada a ver com o histórico minuto.

E onde você obteve as informações sobre 1000 barras?

Talvez você tenha configurado as propriedades do histórico dessa forma?

Mas não é assim no meu caso...

----

É um fato que não há mais de 100 barras de dados antes do início do período de teste.

Isto também é um fato. :(

Razão: