Mt4 Fim do apoio. - página 24

 
Реter Konow:

Já respondi que os bares abrem independentemente da chegada de uma cotação. Se não houver cotação, o preço da nova barra será o preço de fechamento da barra anterior. O fato de uma nova barra será fixado independentemente da chegada das citações, pelos próprios balcões, que funcionam com um cronômetro.

O prazo específico não importa, pois é apenas um contador que atinge seu valor e estabelece o evento da nova barra de tempo deste prazo. Este é simplesmente um método de sincronização com o aparecimento de novas barras de diferentes intervalos de tempo. SINCRONIZAÇÃO.

O instrumento também não importa. Se as citações forem de um servidor, isso significa que elas têm o mesmo tempo de aparecimento de novos bares. Portanto, não importa qual instrumento, desde que esses instrumentos sejam de um ponto do mundo.


Vou terminar o que disse e fazer outras coisas. Um pouco de uma coisa boa).

você está enganado.

Respeitosamente.

P.S. a formação de um novo bar começa com a chegada de um novo tick, que é o preço da abertura de um novo bar. em seu algoritmo há um cálculo de tempo que nada tem a ver com a chegada de um novo tick, daí a discordância. de fato, seu algoritmo não dá o fato de abrir um novo bar, mas o início do tempo após o qual você pode esperar a chegada da primeira cotação em um bar.
 
Artyom Trishkin:

É você, em seu algoritmo, que pensa que o bar está aberto. Na verdade - fisicamente - ainda não está presente no terminal. Isto é uma total inconsistência com as realidades do servidor.

O cronograma específico também é importante.

Todos que já estiveram perto de robôs comerciais com várias moedas sabem disso.

É uma pena que você não queira chegar à conclusão a que o estamos levando - visualmente e com um exemplo tangível.

Para o caso de um novo bar, não importa que símbolo seja. Novas barras de símbolos diferentes aparecem de forma síncrona (para cada período de tempo).

Há um contador para cada período de tempo. Quando o contador atinge o valor de seu período de tempo, ele é zerado e um novo evento de barra é definido para este período de tempo.

Além disso, chamar a função retorna um novo evento de bar uma vez durante o bar atual.

Obrigado a todos e adeus.

 
Реter Konow:

Não há diferença qual símbolo é usado para o novo evento do bar. Novas barras de símbolos diferentes aparecem de forma síncrona (para cada período de tempo).

O cronômetro tem um contador para cada período de tempo. Quando o contador atinge o valor de seu cronograma, ele é reinicializado e um novo evento de barra é definido para este cronograma.

Além disso, o acesso à função retornará o evento de um novo bar uma vez durante o bar atual.

É aí que eu acabo de soletrar.

Obrigado a todos e adeus.

Não é você que está soletrando - sua lógica é clara. Mas, infelizmente, isso está errado. Você tem que obter os dados do ambiente comercial - eventualmente do servidor.

E se não houver uma nova cotação no servidor, então não há uma nova abertura de bar no terminal.

Seu algoritmo, trabalhando no temporizador, "carimbará" novas barras quando o mercado estiver fechado. Mas não há nenhum no servidor e, portanto, no terminal do cliente.

E acredite-me, a diferença na chegada de citações para símbolos diferentes também causará uma diferença na abertura de uma nova barra - o início da formação de uma nova barra só será ativado quando o tique (citação) correspondente ao tempo desta barra chegar. Se o tick for recebido 4 minutos e 15 segundos após o fechamento da última barra na M1, então três barras serão perdidas porque não há nenhuma cotação para realizá-las.

Eu lhe dei uma dica.

 
Andrey Kisselyov:
você está enganado.

Sinceramente.

P.S. A formação de uma nova barra começa com a chegada de um novo tick, que é o preço da abertura de uma nova barra. Em seu algoritmo, há um cálculo baseado no timer que nada tem a ver com a chegada de um novo tick, daí a discordância.

Sim em um temporizador. Uma nova barra aparece sem uma citação. Estamos interessados exatamente no caso de aparecimento de um bar e podemos corrigir a cotação em Optisk();

A barra aparecerá em qualquer caso. Se for um fim de semana e não houver bares, tudo bem. A função não mudará e será sincronizada com a chegada das barras na hora do início da sessão.

 
Artyom Trishkin:

Não é você que a mastiga - sua lógica é compreensível. Mas, infelizmente, é falho. Você tem que obter os dados do ambiente comercial - eventualmente do servidor.

E se não houver uma nova cotação no servidor, então não há uma nova abertura de bar no terminal.

Seu algoritmo, trabalhando no temporizador, "carimbará" novas barras quando o mercado estiver fechado. Mas não há nenhum no servidor e, portanto, no terminal do cliente.

E acredite-me, a diferença na chegada de citações para símbolos diferentes também causará uma diferença na abertura de uma nova barra - o início da formação de uma nova barra só será ativado quando o tique (citação) correspondente ao tempo desta barra chegar. Se o tick chegar 4 minutos e 15 segundos após a última barra na M1, então três barras serão perdidas porque não há nenhuma citação para construí-las.

Eu lhe dei uma dica.

As citações podem ser obtidas na OnTick(). Você pode associar o evento de abertura de novo bar com a confirmação da chegada da cotação. Eu não o faria. Mas isso depende de todos.
 
Реter Konow:

Sim em um temporizador. Uma nova barra aparece sem uma citação. Estamos interessados exatamente no caso de aparecimento de um bar enquanto podemos corrigir a cotação em Optisk();

A barra vai aparecer de qualquer maneira. Se for um fim de semana e não houver bares, tudo bem. A função não entrará em colapso e será sincronizada com a chegada das barras no momento em que a sessão começar.

Suponha que você queira fazer as leituras do indicador em 1 e 2 barras de acordo com o evento de um novo início de barra. Olhando a lógica de seu algoritmo, você obterá os valores de 1 e 2 barras antes da chegada da nova cotação e a barra aparecerá no gráfico. Como conseqüência, ao tentar ler o indicador você obterá não os valores de 1 e 2 barras como deveria ser no momento da nova cotação, mas os valores de 1 e 2 barras que se moverão por 1 barra para ser 2 e 3 barras.


Sinceramente.

 

Artyom Trishkin:

E, acredite, a diferença na chegada de citações para símbolos diferentes também faz diferença na abertura de uma nova barra - o início da construção de uma nova barra é ativado apenas com a chegada de um tique (citação), correspondente ao tempo desta barra. Se o tick for recebido 4 min 15 seg após a última barra na M1, então três barras serão perdidas, porque não há nenhuma cotação para construí-las.


Agora sobre essa questão, - eu acho que você está errado. Favor verificar com servicedesk. Deixe-os responder à pergunta: se novas barras são formadas na plataforma, independentemente da chegada das citações, ou não. Se não, então, no caso de um novo bar, verifique se havia uma citação nele. Se assim foi, a nova barra foi formada. Podemos fazê-lo desta forma. Você não precisa mudar muito.

 
Andrey Kisselyov:
Suponha que você queira fazer leituras do indicador em 1 e 2 barras de acordo com o evento de um novo início de barra. Olhando a lógica de seu algoritmo, você terá um novo início de barra antes que a cotação chegue e a barra apareça no gráfico. Como conseqüência, ao tentar ler o indicador você receberá não os valores de 1 e 2 barras como deveria ser quando a cotação chegasse, mas os valores de 1 e 2 barras que serão deslocados por 1 barra quando a nova cotação chegar e serão 2 e 3 barras.


Cumprimentos.

Isso é possível. Adicione cheques para a nova cotação em cada novo evento de bar e pronto. Não trabalhe com o evento de um novo bar, mas com o evento de um bar e uma citação, por exemplo.
 
Реter Konow:
Possível. Acrescente um cheque de chegada da cotação em cada novo evento do bar e pronto. Trabalhar não com o evento de um novo bar, mas com o evento de um bar e uma citação, por exemplo.
Não preciso deste algoritmo, é o seu brainchild, estou apenas revendo-o para erros e possíveis melhorias, exercícios para o cérebro, por assim dizer.

Com todo respeito.
 
Реter Konow:
Receba suas citações da OnTick(). Você pode associar o evento de uma nova abertura de bar com a confirmação do recebimento de uma cotação. Eu não o faria. Mas este é um assunto pessoal.

Eu sei como obter citações :)

Em um programa com várias moedas - em um temporizador em loop nos símbolos certos. E a abertura de uma nova barra (física, não virtual - errónea - como no seu caso) é controlada pelo tempo da última citação e compara este tempo com o tempo do símbolo da barra zero.

Você, por outro lado, está fazendo ao acaso - um bar virtual que pode não existir. Você não os tem no fim de semana, mas supostamente os tem - isso é a coisa mais simples a dar como exemplo.

E, veja, você é o único que não o faria dessa maneira. O resto de nós o faz da maneira correta e confiável. Mas isso, é claro, é apenas seu próprio negócio.

Eu queria lhes dizer como fazê-lo corretamente e mostrar a grande diferença na simplicidade de escrever no OOP, e nas complexas reviravoltas no estilo processual ao resolver o mesmo problema.

Mas você provavelmente sabe mais e não precisa disso. Não me atrevo a parecer que sei mais nada na sua frente. Sinto muito.

Razão: