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
Yedelkin:
Explicação. Se um consultor especializado não processar carraças para um símbolo ao qual está ligado a um gráfico, a geração contínua de eventosNewTick para este símbolo levará a um transbordamento da fila de eventos processados por esta EA.
O que quer dizer?
Não há OnTick() no Expert Advisor, mas os eventos NewTick ficam em fila de espera?
Como se sabe o que analisou a fila? )
Não foi possível encontrar uma forma de desactivar o tick stream( eventoNewTick) para o símbolo com o Expert Advisor anexado ao gráfico, se necessário.
Sinto que tenho trabalhado de domingo a sexta-feira sem descanso. :))
O que quer dizer?
Como soube...?
Aprendi isso de duas maneiras. Primeiro conheci a combinação EventChartCustom - OnChartEvent sobre o exemplo de um simples Expert Advisor que recolhe sinais indicadores de símbolos estrangeiros. Ao mesmo tempo, o Expert Advisor não trabalhou com as carraças do seu próprio símbolo, a função Ontick() no código do Expert Advisor foi comentada. Ao executar a EA no testador, descobri que o tempo de viagem difere dependendo do símbolo que está ligado à EA. Ver, por exemplo, o exemplo abaixo. Com os mesmos parâmetros de optimização, os tempos de execução são visivelmente diferentes.
O Expert Advisor não tem OnTick(), enquanto os eventos NewTick estão em fila de espera?
Para verificar a resposta a esta pergunta (o segundo método), modifiquei o código do Conselheiro Especialista da seguinte forma
ou seja, introduzi uma linha com fundo amarelo para detectar o facto de novas carraças serem recebidas pelo símbolo. Os resultados mostram que as carraças para o símbolo, ao qual o Conselheiro Especialista está ligado, são recebidas regularmente:Bem, uma vez que o manual diz que " oevento NewTick é gerado quando um novo tick é recebido por um símbolo, ao qual o Expert Advisor está anexado", o facto de serem recebidos novos carrapatos deve fazer com que o eventoNewTick seja gerado.
A julgar pela sua pergunta, pensa que nenhum evento NewTick é gerado quando o OnTick() é incapacitado? Mas não encontrei tal informação no manual.
Parece que trabalhou de domingo a sexta-feira sem descanso... :))
ou seja, inseri uma linha realçada em fundo amarelo para detectar o facto de novas carraças entrarem por símbolo. A partir dos resultados pode ver que as carraças por
ao símbolo ao qual o Conselheiro Especialista está anexado são recebidos regularmente:
já verificou que evento faz com que o OnChartEvent seja chamado antes de chamar o evento personalizado ?
-------------
se
se colocar uma simples EA e deixá-la correr no testador, ela não é activada.
tem outras funções que chamam OnChartEvent ?
tem outras funções que chamam OnChartEvent.
Sim, é claro. Uma vez que o Expert Advisor recolhe sinais indicadores de símbolos de terceiros usando a função EventChartCustom - OnChartEvent binding, cada um desses indicadores tem a sua própria instância da função EventChartCustom(). O primeiro parâmetro de cada instância da função EventChartCustom() contém um identificador gráfico, ao qual a nossa EA está ligada; o segundo parâmetro é zero.
Se inserido em qualquer Expert Advisor, não será activado.
Isto é apenas uma parte do código, - do Conselheiro Especialista que recolhe sinais indicadores de outros símbolos. Se não houver indicadores, esta parte do código (a função OnChartEvent) não processará os eventos personalizados, devido à sua ausência.
verificou que evento leva a chamar o OnChartEvent antes de chamar o evento personalizado?
Não, um pouco errado. Queria ver se as carraças são recebidas pelo símbolo, ao qual o Expert Advisor está anexado, quando a função OnChartEvent() processa os eventos personalizados provenientes dos indicadores de outros símbolos. Pode-se ver que são recebidos carrapatos EURGBP. Com base na referência, concluo que oevento NewTick é gerado quando novos carrapatos são recebidos pelo símbolo.
Não é possível descobrir quais das suas funções que utilizou levaram a resultados diferentes em termos de tempo. Sem código completo, é só adivinhar por borras de café.
NewTick não está directamente relacionado com a OnChartEvent de forma alguma. É por isso que o mecanismo de rastreio de filas que sugere é bastante artificial. Não tenho a certeza de que esteja correcto.
Neste caso, eu não afirmaria que é o NewTick que cria os atrasos do teste. E penso que são os mecanismos das suas ligações que são os culpados, não o evento em si.
Não é possível descobrir quais das suas funções que utilizou levaram a resultados diferentes em termos de tempo. Sem código completo, é só adivinhar por borras de café.
NewTick não está directamente relacionado com a OnChartEvent de forma alguma. É por isso que o mecanismo de rastreio de filas que sugere é bastante artificial. Não tenho a certeza de que esteja correcto.
Neste caso, eu não afirmaria que é o NewTick que cria os atrasos do teste. E penso que a culpa é dos seus mecanismos de amarração, não do evento em si.
O assunto não era o que eu queria dizer desde o início. Na minha primeira mensagem, disse que não tinha encontrado uma forma de desactivar os eventos para um símbolo com um Expert Advisor anexado ao seu gráfico. Reagiu a essa frase, mas não forneceu uma forma de desactivar o fluxo de carraças para o símbolo exigido, se necessário. Concluo que não só eu, mas também vós não conheceis tal caminho. Assim, a minha sugestão mantém-se: introduza uma função de alternância que lhe permita desactivar programticamente a geração de eventos NewTickpara o símbolo que tem um Expert Advisor anexado ao seu gráfico.
Quanto aos comentários sobre "adivinhar o gauntlet" e "artificialidade dos mecanismos de rastreio de filas", não me ofereci para analisar o código e responder à pergunta "porque é assim? Como podem ver pela minha sugestão, já encontrei a resposta por mim próprio. Mas consideremos o problema de um ponto de vista mais abstracto, sem centrarmos a nossa atenção no código de um Expert Advisor em particular.
NewTick não está de forma alguma ligado directamente à OnChartEvent.
Muito bem, vamos supor que sim. Portanto, NewTick estáindirectamente relacionado com OnChartEvent, mas está ligado. Já o disse na explicação, mas vou repeti-lo mais uma vez. Sabe melhor do que eu que existe uma "fila comum de eventos" onde todos os eventos que ocorrem são amontoados, tanto pré-definidos como definidos pelo utilizador. Estes eventos são tratados um a um, na ordem em que são recebidos. Uma vez que a fila tem um tamanho limitado, quando está cheia, os eventos antigos são removidos sem serem processados. Será isso correcto?
Assim, acontece que se o Consultor Especialista não providenciar o tratamento de eventos NewTick, mas estes eventos ainda são gerados, então a minha fila geral de eventos será simplesmente entupida com eventos NewTick desnecessários, e haverá o risco de não tratar eventos de utilizadores obsolescentes que devem ser tratados pelo Consultor Especialista. Foi por isso que fiz a sugestão acima.
Claro que não conheço todas as subtilezas de como funcionam a fila do evento e o evento NewTick. Por conseguinte, posso estar errado em algumas conclusões e considerarei com interesse quaisquer explicações.
Neste caso, eu não afirmaria que é o NewTick que cria atrasos nos testes. E penso que são os mecanismos das suas ligações que são os culpados, não o evento em si.
Para referência. O Expert Advisor articula as instâncias de um e o mesmo indicador com os mesmos parâmetros e com o mesmo "mecanismo de ligação" nos símbolos adjacentes, num único e mesmo intervalo de tempo. A encadernação é a mesma: EventChartCustom - OnChartEvent.
Compreendi correctamente que concorda com a afirmação de que "se não houver um OnTick() num Expert Advisor, os eventos NewTick não estão de todo enfileirados"?
Porquê adivinhar e inventar hipóteses?
o seu pedido para"introduzir uma função de comutação que lhe permita desactivar programticamente a geração de eventos NewTickpara o símbolo ao qual o Conselheiro Especialista está anexado ao gráfico. " é claro.
Escrever para Servicedesk.
tudo o resto está a combater moinhos de vento.
Porquê adivinhar e inventar hipóteses?
tudo o resto é uma luta contra moinhos de vento.
Não se diz :) Alguns estão habituados a trabalhar cegamente, enquanto outros procuram aprender mais sobre o fenómeno a ser combatido. As hipóteses surgem na ausência desta ou daquela informação. Obrigado por ter participado na discussão.
Escrevi para o SD. Não sabia que aí poderiam ser abordadas sugestões.