Bibliotecas: Expert - página 9

 
vek_y4icb:
Biblioteca legal! Eu não teria pensado em implementar a abertura do Expert Advisor dessa forma. Você poderia me dizer como definir um gráfico ativo usando mql sem usar dll. Trabalhei um pouco com o winapi, mas acabou sendo muito complicado:

Talvez você saiba como implementar esse caso no mql ou, pelo menos, com a dll, mas de forma mais simples?

Se uma janela secundária no terminal estiver maximizada, ela é uma (as outras não são consideradas maximizadas). Devido a isso, você pode verificar ChartGetInteger(id, CHART_IS_MAXIMIZED, 0, value) no loop ChartFirst/ChartNext, e onde o valor será 1 - essa é a janela ativa.

 
Stanislav Korotky:

Se uma janela secundária no terminal estiver maximizada, ela é uma (as outras não são consideradas maximizadas). Por esse motivo, é possível verificar ChartGetInteger(id, CHART_IS_MAXIMIZED, 0, value) no loop ChartFirst/ChartNext e, se o valor for 1, essa é a janela ativa.

Isso é um pouco diferente do que eu preciso. Mas, de qualquer forma, obrigado!

 
fxsaber:

Uma pequena solução alternativa é executar EAs/scripts em objetos OBJ_CHART.

Dessa forma, os Expert Advisors lançados ficam parados - eles não são executados de forma alguma. Mas os scripts funcionam perfeitamente bem. Portanto, isso abre algumas possibilidades.

Por exemplo, você pode usar as funções de ordem dos indicadores nos gráficos em que já existe um Expert Advisor em execução. E não é necessário abrir novos gráficos auxiliares.


Compilação do script Scripts\OrderSend.mq5


E execute o indicador que "pode negociar"

Boa tarde. Deparei-me com o seguinte problema. Ao iniciar um Expert Advisor no OBJ_CHART, ele se recusa a trabalhar com o OnTick. Você sabe se existe uma solução para fazer o OnTick funcionar?

 
vek_y4icb:

Boa tarde. Encontrei o seguinte problema. Ao iniciar o Expert Advisor no OBJ_CHART, ele se recusa a trabalhar com o OnTick. Você sabe se existe alguma solução para fazer o OnTick funcionar?

Você mesmo citou a mensagem sobre Expert Advisors inoperantes no OBJ_CHART. Essa é uma limitação do MT5.

 
fxsaber:

Você mesmo citou a mensagem sobre EAs mortos no OBJ_CHART. Essa é uma limitação do MT5.

O OnTimer trabalha com eles.

 
vek_y4icb:

O OnTimer funciona com eles.

Seria mais rápido para você verificar, não me lembro.

 
fxsaber:

É mais rápido para você verificar, não me lembro.

Não, não foi uma pergunta) O OnTimer funciona com esses especialistas, esse é o ponto. Mas o OnTick se recusa terminantemente a fazer isso.

 
Em geral, pelo que entendi, é fundamentalmente impossível ativar o OnTick em um Expert Advisor desse tipo e não há soluções alternativas para isso?
 
vek_y4icb:
Em geral, pelo que entendi, é fundamentalmente impossível ativar o OnTick em um Expert Advisor desse tipo e não há soluções alternativas para isso?

Não há soluções alternativas para ativar as funções On. Você pode emular isso chamando OnTick em um OnTimer de alta frequência e obtendo (se necessário) os ticks ausentes por meio de CopyTicks.

 
fxsaber:

Não há soluções alternativas para incluir as funções On. Ela pode ser emulada chamando OnTick em um OnTimer de alta frequência e obtendo (se necessário) os ticks ausentes por meio de CopyTicks.

É assim que eu faço. Obrigado por responder!