Erros, bugs, perguntas - página 907

 
x100intraday:

O oposto é verdade. Sob o controlo visual pessoal toda a história é descarregada no primeiro início, no final do descarregamento é verificada com a tecla Home com a ida para o início de 1994 na M1. Depois contorno manualmente os prazos que utilizo frequentemente, bem como os relevantes para o indicador multitemporal, espero pela sua formação e recarrego o terminal. É isso mesmo.

Tanto quanto sei, todas as TFs são construídas a partir da M1. Ou seja, ao reiniciar o terminal, "esquece" todos os desenhos anteriores e ao reiniciar o terminal precisa de tempo para o seu cálculo.

Tente antes de todos os cálculos inserir no seu indicador o download de todo o histórico necessário (para todos os símbolos utilizados e TFs), como é feito neste guião:

   for(int s=0; s<SymbolsCount; s++)
     {
      for(int p=0; p<PeriodsCount; p++)
        {
          if(!CheckLoadHistory(SymbolsName[s],StringToPeriod(PeriodsName[p]),BarsCount)) return;
         }
     }
sHistoryExport - удобный скрипт для экспорта исторических данных в формате МetaТrader 4
sHistoryExport - удобный скрипт для экспорта исторических данных в формате МetaТrader 4
  • votos: 14
  • 2012.11.12
  • Andrey Khatimlianskii
  • www.mql5.com
Экспорт всех необходимых инструментов и тайм-фреймов одним кликом с загрузкой и проверкой истории.
 
komposter:

Tanto quanto sei, todas as TFs são construídas a partir da M1. Ou seja, ao reiniciar o terminal, "esquece" todos os desenhos anteriores e num novo arranque o terminal precisa de tempo para os calcular.

Tente antes de todos os cálculos carregar todo o histórico necessário no seu indicador (para todos os símbolos e os TFs utilizados), como é feito neste guião:

Eu, se alguma coisa, estou a referir-me a este directório:

C:\Arquivos de Programas\MetaTrader 5\Bases\Bases\MetaQuotes-Demo\history\NZDUSD\cache,

Se por "construções" entendemos a criação de prazos não-M1. Mas ainda não os veremos no lançamento inicial do terminal e contornaremos os prazos não-M1 para a sua formação e possibilidade de continuar a trabalhar com eles, mesmo que o terminal esteja completamente pronto a funcionar e não apenas manualmente. No entanto, depois de o terminal ter sido descarregado e também durante as próximas execuções, os prazos anteriormente gerados podem ser facilmente vistos no mesmo directório. Mas como não evaporam com a descarga, mas permanecem e parecem ser adicionados durante as corridas subsequentes, é improvável que o terminal precise de tempo para recalcular completamente o prazo solicitado.

Mas quando se trata do indicador - tudo é recalculado a toda a profundidade necessária, decidi não me preocupar em salvar os cálculos anteriores, apesar de ter tido essa ideia.

O vosso código, a meu ver, nada mais é do que uma pré-sincronização da história local com o servidor um? Se assim for, já o tenho planeado há muito tempo, mas ainda não consegui acrescentar um bloco tão simples ao meu código.

 
komposter, apesar de ter mencionado intencionalmente que o terminal está pronto para plena funcionalidade no primeiro arranque (após o histórico necessário ter sido descarregado e as opções afinadas), tomo pessoalmente precauções e começo a comunicar o comportamento estabilizado do terminal apenas a partir do segundo arranque (devido a esta incerteza, que os prazos não configurados-M1 são guardados de forma fiável no disco e não ficam pendurados algures na RAM e podem começar a trocar de forma desajeitada e pesada à custa do SO quando há falta de memória, e pode ficar danificado). Portanto, em teoria, o indicador não deve falhar a partir do segundo início do MT5. Mas por alguma razão só parou na décima corrida, embora as outras nove corridas de MT5 não tenham mudado nada, tudo foi monótono.
 
x100intraday:

O seu código, tal como o entendo, não é mais do que uma pré-sincronização da história local com a do servidor? Se assim for, já o tenho planeado há muito tempo, mas ainda não tenho tempo para acrescentar um bloco tão simples ao meu código.

Não só sincronização com o servidor, mas também construção de todas as TFs.

Descarregue a biblioteca, insira 3 linhas de código no seu indicador e veja o resultado.

 

Não percebo porque é que a função ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0) retorna zero quando se testa o indicador, enquanto que as barras visíveis são pelo menos 30

(verificado por ChartGetInteger(0,CHART_VISIBLE_BARS,0)

Em gráficos normais - tudo está bem, um difere do outro por 1, mas quando se testa, há este disparate...

Como é que eu me livro dele?

 
Поясните, почему в данном простом индикаторе с двумя массивами - второй  имеет нулевой размер??

{Код удалил после ответа на вопрос чтобы не занимал место}



 
dimonsky: Explique porquê neste indicador simples com duas matrizes - a segunda tem um tamanho zero?
#property indicator_plots 2
 
avoitenko:
Obrigado!!!
 
Posso usar uma segunda conta aqui? Certamente não com o objectivo de acumular créditos
 
Zeleniy:

Posso usar uma segunda conta aqui? Não com o objectivo de acumular créditos, claro.
Pergunta natural. Porquê? ))