Características da linguagem mql5, subtilezas e técnicas - página 88
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação
Bugs, bugs, perguntas
fxsaber, 2016.07.19 12:41
Pelo exemplo de ORDER_TICKET a idéia deve ser clara.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
OrderCloseTime () em MQL5?
fxsaber, 2018.07.18 03:51
Assim podemos verificar se a tabela do histórico atual, previamente gerada através da função HistorySelect, contém o registro que precisamos. O mesmo se aplica ao DEAL_TICKET.
Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação
Salvar nível de preço da posição através de compensação (é possível?)
fxsaber, 2018.07.17 20:45
Nem todos sabem que a função GetMicrosecondCount, ao contrário da GetTickCount, está ligada à hora local do computador. Isto significa que se esta hora mudar (por exemplo, devido à sincronização com a hora da Internet), os valores da GetMicrosecondCount também mudarão por um valor correspondente.Isto deve ser tido em conta se esta função for usada para medir intervalos de tempo; na verdade, não deve ser usada para este fim. GetTickCount, por outro lado, não tem estes problemas.
Como demonstração, você pode executar este código e mudar o tempo do computador enquanto ele está rodando.
Talvez nem todos saibam que a função GetMicrosecondCount, ao contrário da GetTickCount, está ligada à hora local do computador.
Eu não sabia, obrigado!
Uma variante da função GetTickCount que evita transbordamentos (desde que o intervalo entre chamadas para a função não exceda 50 dias)
Pode não ser conhecido que a função GetMicrosecondCount, ao contrário da GetTickCount, esteja ligada à hora local do computador. Isto significa que se esta hora mudar (por exemplo, devido à sincronização com a hora da Internet), os valores da GetMicrosecondCount também mudarão por um valor correspondente.Isto deve ser tido em conta se esta função for usada para medir intervalos de tempo; na verdade, não deve ser usada para este fim. GetTickCount, por outro lado, não tem estes problemas.
Para demonstrar isso, você pode executar esse código e alterar o tempo do computador durante a execução do código.
Bem, este é um bug que os desenvolvedores devem corrigir. A função então não se encaixa na descrição:
Функция GetMicrosecondCount() возвращает количество микросекунд, прошедших с момента начала работы MQL5-программы.
O valor desta função em comparação com GetTickCount é microssegundos, não milissegundos (1000 vezes maior precisão). É também não insuflável.É por isso que não é muito correcto falar sobre a sua substituibilidade.
Nem todos sabem que a função GetMicrosecondCount, ao contrário da GetTickCount, está ligada à hora local do computador. Isto significa que se esta hora mudar (por exemplo, devido à sincronização com a hora da Internet), os valores da GetMicrosecondCount também mudarão por um valor correspondente.Isto deve ser tido em conta se esta função for usada para medir intervalos de tempo; na verdade, não deve ser usada para este fim. GetTickCount, por outro lado, não tem estes problemas.
Para demonstrar isso, você pode executar esse código e mudar o tempo do computador enquanto ele está rodando.
Mais uma observação importante - daí decorre que é absolutamente inadequado usar a função GetTickCount em vez de GetMicrosecondCount.
Acho que será uma surpresa para muitas pessoas.
Examinando a operação de um simples roteiro:
O resultado do trabalho:
podemos tirar as seguintes conclusões:
Bem, então, este é um bug que os desenvolvedores fariam bem em consertar. Porque então a função não corresponde à descrição:
O valor desta função em comparação com GetTickCount é microssegundos, não milissegundos(1000 vezes mais preciso). Também é não insuflável.É por isso que não é muito correcto falar sobre a sua substituibilidade.
Se você medir o tempo de execução de algumas seções do programa, as flutuações de desempenho do sistema nivelam toda essa precisão e há um erro em milissegundos ou mesmo dezenas de milissegundos. Se você medir segmentos muito pequenos com duração inferior a 1 milissegundo, então qual é o ponto. A proporção de erro de medição será muito alta.
Eu ainda não vi nenhum uso prático de microssegundos. Se você medir o tempo de execução de algumas seções do programa, as flutuações de desempenho do sistema irão nivelar toda essa precisão, e o erro está em milissegundos, ou mesmo dezenas de milissegundos. Se você medir segmentos muito pequenos com duração inferior a 1 milissegundo, então qual é o ponto. O erro de medição será muito alto.
Outra observação importante sugere que o uso da função GetTickCount em vez de GetMicrosecondCount é bastante inapropriado.
Acho que vai ser uma surpresa para muitos programadores.
Examinando a operação de um simples roteiro:
as seguintes conclusões podem ser tiradas:
O argumento significativo