[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 874

 
Andrei01:
o tempo de uma nova vela é o tempo[0].

e como posso determinar ainda mais a chegada de uma nova vela?
 
reag:

e como você determina ainda mais a chegada de uma nova vela?
memorizar a anterior em uma variável e compará-la.
 
Andrei01:
memorizar a anterior em uma variável e comparar.

Vou tentar agora...
 
reag:

e como identificar a chegada de uma nova vela?


Há várias opções, aqui estão algumas delas:

1. Ao iniciar o Expert Advisor, lembre-se do número total de barras no gráfico e monitore as mudanças no número de barras durante a execução do Expert Advisor:

//начало кода - самый верх
int counted;

int init(){
   counted=Bars;     // запомним общее количество баров на активном ТФ
    Myorders();
return(0);
}

int start(){
   Myorders();
........................

// я рассполагаю этот код в самом конце ф-ции start() - мне так удобнее
  int bar = Bars;
  if (bar != counted ) { // сравним запомненное кол-во баров с текущим если они равны тогда нет нового бара на активном ТФ
      counted= bar;
// код который необходимо выполнить по закрытию/открытию бара
  }
return(0);
}

2. Lembre-se da hora da última barra para abrir; o código é mais ou menos o mesmo,

data de uso last=Time[0];

e compare last===Time[0] --> se o último tempo aberto for igual ao da última vez, se não for igual, significa que temos uma nova barra

não sei qual esquema é mais eficiente 1 ou 2 - tenho dúvidas sobre o download automático do histórico para o terminal, mas não vejo nenhum problema

 
IgorM:


Há várias opções, aqui estão algumas delas:

1. Ao iniciar o Expert Advisor, lembre-se do número total de barras no gráfico e monitore as mudanças no número de barras durante a execução do Expert Advisor:

isto não vai funcionar. o número de barras é limitado.
 
Andrei01:
não vai funcionar. o número de barras é limitado.


Isso funciona, porque o número total não importa, estamos interessados apenas no momento em que o número de barras no gráfico mudou, neste momento a variável barra != contada, preste atenção, eu me lembro propositadamente int bar = Bars; - não perder o valor de Bars, e então comparar e atribuir este valor contado = bar; - e você poderia fazer tudo com Bars sem a variável extra - mas eu decidi checar novamente

Também mencionei que pode haver um pequeno kazutz durante a história do auto bombeamento - pode ser bom ou pode ser ruim, se usarmos o tempo de abertura de barra, definitivamente funcionará - o tempo de abertura de barra nunca mudará

 
IgorM:


apenas interessado no momento em que o número de barras no gráfico mudou

Uma vez atingido o valor máximo definido nas configurações, o número de barras no gráfico não deve aumentar. embora possa ser que salte mais ou menos uma no máximo, eu não verifiquei, então pode ser possível pegá-la, mas esta é uma opção não documentada.
 
Andrei01:
Após atingir o valor máximo definido nas configurações, o número de barras no gráfico não deve aumentar. embora possa pular, eu não verifiquei, então pode ser possível pegá-lo, mas esta já é uma opção não documentada.

Essa era a questão. Verifiquei quando o máximo é alcançado... As barras não mudam, mas permanecem iguais às barras Max na janela (ver propriedades).
 
reag:

essa era a questão. Verifiquei quando o máximo é alcançado... As barras não mudam, mas permanecem iguais às barras Max na janela (ver propriedades).
Bem, deveria ser. Portanto, a primeira opção não funcionará.
 
Andrei01:
Bem, é assim que deve ser. portanto a primeira opção não vai funcionar.

Sim, a primeira opção não funciona, embora eu esteja trabalhando em um cronograma não-padrão, a segunda funciona. Obrigado a todos vocês!
Razão: