Scripts: sHistoryExport - roteiro prático para exportar os dados históricos no formato do МetaТrader 4 - página 4

 

Hello, 


Is it possible to change the script so that the generated .csv file is made from the present to the past?

Grateful for the attention.

Thank you

 
CarlosFa:

Is it possible to change the script so that the generated .csv file is made from the present to the past?

Yes, just change this row:

for ( int i = copy_count-1; i > 0; i -- )

to the following:

for ( int i = 1; i < copy_count; i ++ )
 
Arquivo de conversão de gráfico personalizado do Metatrader 5. O arquivo não abre. Ajuda, por favor
 
Lvbey:

Muito obrigado, está funcionando para mim!

Mas descobri que há uma linha de código que deveria ser assim(sobre a linha 125 nesse script):

linha 125: for ( int i = copy_count-1; i >= 0; i -- )...

por causa do i > 0 (acho que deveria ser i >= 0), não há o primeiro registro.

^_^

Se você substituir > 0 por >= 0, também recuperará os dados da última barra (ou seja, a mais recente, a atual), que provavelmente está incompleta. Embora esse possa ser o comportamento desejado, ele pode ser bastante enganoso.


Obrigado Andrey Khatimlianskii!

 
Hello my friend! When I run the script the last candle does not appear in the .csv files. For example, in Brazil, the last day of negotiations was the last 4th of September and the export only shows until the 3rd of September.
I exported the .csv in the standard form of Metatrader 5 (File> Save) and the September 4th candle appears. Would you help me?
 
gscruzz:
Hello my friend! When I run the script the last candle does not appear in the .csv files. For example, in Brazil, the last day of negotiations was the last 4th of September and the export only shows until the 3rd of September.
I exported the .csv in the standard form of Metatrader 5 (File> Save) and the September 4th candle appears. Would you help me?

Hi!

Just change "i > 0" to "i >= 0" in this row:

for ( int i = copy_count-1; i >= 0; i -- )
 

Olá,

Acredito que estou fazendo algo errado. Depois que termino de executar meu EA no Strategy Tester, arrasto e solto esse script no gráfico de saída, mas só obtenho resultados vazios. Há algo realmente básico que não estou conseguindo obter. Você pode me ajudar?

Muito obrigado

The Fundamentals of Testing in MetaTrader 5
The Fundamentals of Testing in MetaTrader 5
  • www.mql5.com
What are the differences between the three modes of testing in MetaTrader 5, and what should be particularly looked for? How does the testing of an EA, trading simultaneously on multiple instruments, take place? When and how are the indicator values calculated during testing, and how are the events handled? How to synchronize the bars from different instruments during testing in an "open prices only" mode? This article aims to provide answers to these and many other questions.
 

2021.01.05 21:10:32.910 HistoryExport (Usa500,H1) Baixando o histórico e gravando arquivos: 0,0% concluído...


// não mais do que 100 tentativas fracassadas
if(++fail_cnt >= 100)
   return false;

Não importa se são 100 ou 1 milhão de tentativas, o bloco a seguir nunca é bem-sucedido:

//a cópia da próxima parte força o carregamento de dados
if (CopyTime(symbol,period,size-1,1,times)==1)
{
   return true;
}
Também em CheckServerHistory:
/Dados suficientes no servidor?
if (first_server_date>TimeCurrent()-size*PeriodSeconds(period))
   return false;

essa condição difícil está *sempre* retornando falso porque a data_do_primeiro_servidor reconhecida geralmente está mais próxima do presente do que o histórico esperado alcançaria no passado. Especialmente se você atribuir a opção "max bars in chart" (número máximo de barras no gráfico) como "unlimited" (ilimitado) nos gráficos, então TERMINAL_MAXBARS retornará 1000000 e, portanto, essa condição sempre considerará que nunca há histórico suficiente carregado.

 
O script não é tão longo agora, analise-o com o depurador para ver em qual linha o script "dá errado".
 
Marcel Fitzner:

2021.01.05 21:10:32.910 HistoryExport (Usa500,H1) Baixando o histórico e gravando arquivos: 0,0% concluído...


Não importa se são 100 ou 1 milhão de tentativas, o bloco a seguir nunca é bem-sucedido:

Também em CheckServerHistory:

essa condição difícil está *sempre* retornando falso porque a data_do_primeiro_servidor reconhecida geralmente está mais próxima do presente do que o histórico esperado alcançaria no passado. Especialmente se você atribuir a opção "max bars in chart" (número máximo de barras no gráfico) como "unlimited" (ilimitado) nos gráficos, então TERMINAL_MAXBARS retornará 1000000 e, portanto, essa condição sempre considerará que nunca há histórico suficiente carregado.

Você tem razão, eu apenas copiei esse código da biblioteca padrão.

Eu já reescrevi essas funções para atender às minhas necessidades. Mas não estou pronto para atualizar a publicação no momento.