Eu notei esse recurso...
Se você precisar remover dados de buffer de algum indicador para um símbolo que não esteja selecionado na "Observação do mercado" e para o qual o histórico não esteja preenchido, será necessário inserir algo como isso na função:
..... uint start=GetTickCount(); // minhas linhas [início] long m=SymbolInfoInteger(symbol,SYMBOL_SELECT); if(m<1) { bool is_selected=SymbolSelect(symbol,true); Sleep(500); } // minhas linhas [end] if(CheckTerminalHistory(symbol,period,size) || CheckServerHistory(symbol,period,size)) { if(print_info) { .....
if ( first && !CheckLoadHistory( _Symbol,PERIOD_H4, BarsToAnalyze ) )
Estou fazendo algo errado, mas não consigo descobrir o quê. Gráfico (testador) - H1. Preciso carregar barras - H4 no valor de 3000 unidades (BarsToAnalyse=3000). Ele não carrega... Linha com a função:
O que ele escreve no registro? O que acontece? Ela simplesmente trava?
Se você executá-la em um gráfico normal, ela carrega? Há algum histórico no servidor do corretor?
Entendo que o carregamento é feito usando SeriesInfoInteger com o parâmetro SERIES_SYNCHRONIZED?
Isso é uma coisa interessante que eu deveria verificar... porque estou mexendo com essas cotações históricas... Abro um gráfico e simulo o Home até que o carregamento das barras pare. Gostaria de saber qual será a diferença entre esses métodos....
Entendo que o carregamento é feito usando SeriesInfoInteger com o parâmetro SERIES_SYNCHRONIZED?
Isso é uma coisa interessante que eu deveria verificar... porque estou mexendo com essas cotações históricas... Abro um gráfico e simulo o Home até que o carregamento das barras pare. Eu me pergunto - qual será a diferença entre esses métodos....
A única coisa que funciona no final de 2018. +5 e obrigado!
Alguma ideia para melhorar?
A única coisa que funciona no final de 2018. +5 e obrigado!
Alguma ideia para melhorar?
Vladimir, não fale por enigmas
Vladimir, não fale por enigmas
Eu estava com pressa, e seu código também trava em símbolos com histórico problemático....
Testei vários códigos para carregar o histórico, todos eles travam em alguns tsfd.
O mesmo acontece com seu código.
Eu estava com pressa, e seu código também trava em caracteres com histórico problemático.
Testei vários códigos para carregar o histórico, todos eles travam em alguns tsfd.
Seu código é o mesmo.
Houve uma discussão sobre o fato de que até mesmo o iBars congela sob certas condições.
Não quero dar uma olhada nisso agora.
Olá,
Tenho duas perguntas sobre seu código.
Na função
CheckServerHistory()
CheckServerHistory(...)
{
...
if(first_server_date>TimeCurrent()-size*PeriodSeconds(period)) return(false);
...
}
Isso realmente funcionará, pois a diferença de tempo e a contagem de períodos são diferentes quando se leva em conta o fechamento do mercado?
Na função
CheckLoadHistory()
CheckLoadHistory(...)
{
if(CheckTerminalHistory(symbol,period,size) || CheckServerHistory(symbol,period,size))
{ ... }
}
Aqui, a execução verifica primeiro os dados do terminal e, depois, os dados do servidor.
Faz sentido fazer o contrário?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
CheckHistory - Função que verifica e carrega o histórico:
Autor: Andrey Khatimlianskii