Especialistas: Assistente MQL5 - Sinais de Negociação Baseados no Cruzamento de Duas EMA com filtro de tempo intradiário
Autor: MetaQuotes Software Corp.
Bom artigo, mas preciso de algumas explicações:
**** para abrir posições somente de 0:00 até 5:59. Isso pode ser feito definindo o valor de BadHoursOfDay=16777152=11111111111111111111111111000000b. Todos os outros horários de negociação são "ruins", portanto, é melhor proibir a abertura de novas posições das 6:00 até o final do dia. ****
Alguns detalhes aqui são necessários:
- como calcular/definir esse valor de "16777152", como defini-lo para um outro horário de "abertura/fechamento" ou somente de "abertura"?
- como tomar decisões sobre várias ITFs, por exemplo: horários de abertura de TÓQUIO/LONDRES/NY?
Alguns detalhes são necessários:
- como calcular/definir esse valor de "16777152", como defini-lo para um outro horário de "abertura/fechamento" ou somente de "abertura"?
Neste exemplo, o filtro na abertura de novas posições está implementado. (Presume-se que elas serão fechadas pelo SL/TP).
A representação binária de 16777152 é:

No nosso caso, usamos o filtro por horas, as horas "ruins" foram marcadas com os bits correspondentes=1. O mesmo pode ser feito com BadMinutesOfHour.
Você pode usar o calc.exe para converter valores binários:

- Como tomar decisões sobre várias ITFs, por exemplo: Horário de funcionamento de TÓQUIO/LONDRES/NY?
Se quiser usar três filtros separados (TOKYO, LONDON, NY), você pode adicionar instâncias adicionais da classe CSignalITF (em nosso caso, há apenas um filtro m_time_filter) em sua classe de sinais.
Como você otimizaria o filtro de tempo no testador de estratégias?
O melhor filtro de horário pode ser encontrado usando a otimização do parâmetro de entrada BadHoursOfDay no Strategy Tester. Você pode especificar os valores inicial e final dos parâmetros e ele encontrará as melhores horas, pois o uso do algoritmo de otimização genética não requer muito tempo, como parece.
A segunda maneira é verificar manualmente o horário das transações com perdas e "marcá-las" em bits do parâmetro BadHoursOfDay.
De fato, isso permite ajustar sua estratégia e levar em conta algumas razões "lógicas" da ideia de negociação. Por exemplo, os osciladores funcionam melhor quando estão planos, o motivo do plano pode ser a ausência de notícias, as propriedades da sessão/par de moedas, etc.
Neste exemplo, é implementado o filtro na abertura de novas posições. (Presume-se que elas serão fechadas pelo SL/TP).
A representação binária de 16777152 é:
No nosso caso, usamos o filtro por horas, as horas "ruins" foram marcadas com os bits correspondentes=1. O mesmo pode ser feito com BadMinutesOfHour.
Você pode usar o calc.exe para converter valores binários:
Se quiser usar três filtros separados (TOKYO, LONDON, NY), você pode adicionar instâncias adicionais da classe CSignalITF (em nosso caso, há apenas um m_time_filter) em sua classe de sinais.
Obrigado por esse howto, mas que dor de cabeça :( Não podemos simplesmente usar algo mais fácil de usar, como StartHour/EndHour/StartMinute/EndMinute, como podemos fazer com o MT4? Por que usar esse modo binário tão complicado?
A representação binária dos parâmetros tem algumas vantagens significativas. Por exemplo, você pode explorar o espaço de parâmetros no Strategy Tester (iniciar de 0, terminar 16777215, etapa 1). Experimente.
Depois de encontrar as melhores horas, você pode explorar os dias. Observe, porém, que os filtros de horário são eficazes para períodos de tempo mais baixos (H1 e inferiores).
Se precisar de uma maneira mais "amigável", você pode escrever sua própria classe de sinais de negociação (consulte MQL5 Wizard: How to Create a Module of Trading Signals).
A representação binária dos parâmetros tem algumas vantagens significativas. Por exemplo, você pode explorar o espaço de parâmetros no Strategy Tester (comece em 0, termine em 16777215, etapa 1). Experimente.
Depois de encontrar as melhores horas, você pode explorar os dias. Observe, porém, que os filtros de horário são eficazes para períodos de tempo mais baixos (H1 e inferiores).
Se precisar de uma maneira mais "amigável", você pode escrever sua própria classe de sinais de negociação (consulte MQL5 Wizard: How to Create a Module of Trading Signals).
O melhor filtro de horário pode ser encontrado usando a otimização do parâmetro de entrada BadHoursOfDay no Strategy Tester. Você pode especificar os valores inicial e final dos parâmetros e ele encontrará os melhores horários, pois o uso do algoritmo de otimização genética não requer muito tempo, como parece.
A segunda maneira é verificar manualmente o horário das transações com perdas e "marcá-las" em bits do parâmetro BadHoursOfDay.
De fato, isso permite ajustar sua estratégia e levar em conta algumas razões "lógicas" da ideia de negociação. Por exemplo, os osciladores funcionam melhor quando estão planos, o motivo do plano pode ser a ausência de notícias, as propriedades da sessão/do par de moedas etc.
Por favor, corrija-me se estiver errado, mas supondo que eu queira filtrar os minutos ruins, isso significa que preciso examinar as opções do 1152921504606846975?
Olá.
é possível escolher entre as médias - MA, EMA, WMA. e também haveria um deslocamento da média. e, além disso, fechar o lucro em outro indicador?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Assistente MQL5 - Sinais de Negociação Baseados no Cruzamento de Duas EMA com filtro de tempo intradiário:
Sinais de Negociação Baseados no Cruzamento de preço de Duas exponentially smoothed moving averages com filtro de tempo intradiário (CSignal2EMA_ITFA a partir da Biblioteca Padrão MQL5) serão utilizados aqui. O código do Expert Advisor com base nesta estratégia pode ser gerado automaticamente usando o Assistente MQL5.
Autor: MetaQuotes Software Corp.