Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

BestInterval - biblioteca para MetaTrader 5

Visualizações:
1941
Avaliação:
(45)
Publicado:
2019.01.16 08:53
\MQL5\Include\fxsaber\BestInterval\ \MQL5\Experts\fxsaber\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Os padrões de mercado dependem dos intervalos dentro de um dia ou uma semana. Por esta razão, é razoável limitar a negociação de TS por tempo.

Por exemplo, existem escalpeladores TS que são bons em negociar pares cruzados durante o pregão asiático-americano, ou você quer desabilitar seu TS regularmente durante uma alta volatilidade.


Isso significa que devemos definir como encontrar o melhor tempo de negociação TS. Como regra, esse intervalo é escolhido com base na intuição de um trader algorítmico ou pelo testador embutido. A intuição não tem nada a ver com a estratégia. Quanto ao uso do Testador integrado para resolver essa tarefa, isso implica automaticamente em um aumento no número de passes em ordens de magnitude, o que significa maior tempo e custos de otimização (Cloud). E ainda haverá algo que pode ser melhorado.


Às vezes, você tem um bom TS, mas suas qualidades positivas estão ocultas, pois não há filtro de tempo. Se você pode encontrar um intervalo de negociação adequado para este TS, ele pode ser usado como base para estudos futuros...


Implementação

Essa biblioteca multiplataforma permite que você encontre um intervalo ideal de operação do TS de maneira rápida e eficiente.

Exemplo de uso com comentários:

#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

#include <fxsaber\BestInterval\BestInterval.mqh> // Calcular o melhor intervalo de negociação

void OnDeinit( const int )
{
  BESTINTERVAL BestInterval; // Cria um objeto para calcular o melhor intervalo de negociação
  
  BestInterval.Set(); // Coloca o histórico de negociação
  
  const int AmountIntervals = 3; // Número de intervalos de negociação inadequados a serem descartados
  
  for (int i = 0; i < AmountIntervals; i++)
    if (BestInterval.DeleteWorseInterval()) // Se algo for descartado
      Print(BestInterval.ToString());       // Imprime os dados de negociação obtidos
    else
      break;                                // Caso contráio, encerra
}


Agora, vamos dar uma olhada na aplicação real da biblioteca dentro do EA scalper.


Scalper

Vamos lançar o scalper de 24 horas no Testador da MT5. Nós veremos o seguinte

Olhe para o log de passe único

Amount of Delete Intervals = 0
00:00:00 - 23:59:59 : Profit = 20121.00, Total = 1138, PF = 1.68, Mean = 17.68
SUMMARY: 00:00:00 - 23:59:59 : Profit = 20121.00, Total = 1138, PF = 1.68, Mean = 17.68

aqui estão os dados brutos do passe - nenhum intervalo é descartado.


Agora vamos fornecer as próximas saídas no diário sucessivamente. Eles gradualmente exibem o efeito de descartar intervalos fracos.


Um intervalo é descartado:

Amount of Delete Intervals = 1
00:00:00 - 10:08:04 : Profit = 6830.00, Total = 203, PF = 3.10, Mean = 33.65
11:05:24 - 23:59:59 : Profit = 17086.00, Total = 819, PF = 1.93, Mean = 20.86
SUMMARY: 00:00:00 - 23:59:59 : Profit = 23916.00, Total = 1022, PF = 2.10, Mean = 23.40

Strings destacadas são os intervalos de negociação. Nós podemos ver que não há negociação das 10-11 da manhã. Assim, o intervalo é descartado.


Dois intervalos são descartados:

Amount of Delete Intervals = 2
00:00:00 - 10:08:04 : Profit = 6830.00, Total = 203, PF = 3.10, Mean = 33.65
11:05:24 - 12:21:06 : Profit = 2767.00, Total = 112, PF = 2.46, Mean = 24.71
13:02:59 - 23:59:59 : Profit = 15915.00, Total = 664, PF = 2.17, Mean = 23.97
SUMMARY: 00:00:00 - 23:59:59 : Profit = 25512.00, Total = 979, PF = 2.36, Mean = 26.06


Finalmente, três intervalos são descartados:

Amount of Delete Intervals = 3
00:00:00 - 10:08:04 : Profit = 6830.00, Total = 203, PF = 3.10, Mean = 33.65
11:05:24 - 12:21:06 : Profit = 2767.00, Total = 112, PF = 2.46, Mean = 24.71
13:02:59 - 17:26:06 : Profit = 7476.00, Total = 348, PF = 1.98, Mean = 21.48
17:47:36 - 23:59:59 : Profit = 9640.00, Total = 288, PF = 3.31, Mean = 33.47
SUMMARY: 00:00:00 - 23:59:59 : Profit = 26713.00, Total = 951, PF = 2.57, Mean = 28.09


Observe como os parâmetros do TS melhoram com cada intervalo descartado.


Vamos aplicar o filtro calculado ao TS

Nós podemos comparar visualmente dois gráficos ANTES e DEPOIS. Talvez alguém faça a animação GIF apropriada para maior clareza...

Como resultado, os parâmetros do TS melhoraram significativamente quase de graça: nós gastamos o mínimo de esforço e tempo possível.


OnTester

O exemplo anterior foi baseado na adição de apenas duas linhas no EA inicial

#define BESTINTERVAL_ONTESTER // Critério de otimização - o melhor intervalo de lucro.
#include <fxsaber\BestInterval\BestInterval.mqh> // Calcula o melhor intervalo de negociação


A linha destacada permite que você não escreva nada no EA. Ao mesmo tempo, o critério de otimização personalizada também é especificado, permitindo que o otimizador não procure bons intervalos da maneira antiga. O critério retorna imediatamente o resultado do TS de um bom intervalo calculado e mostra o potencial do TS muito mais do que ao usar a Otimização padrão.


Para aplicar o intervalo detectado após o seu cálculo, defina BestInteval Action = true nas entradas.



Resumo

Todos os TS devem ser amplamente verificados, incluindo o melhor cálculo do intervalo de negociação. Portanto, essa ferramenta é obrigatória.

Seria razoável tomar todas os TS atuais, passados e futuros e conectar a busca pelo tempo de negociação ideal (duas sequências acima) delas. Isso simplifica consideravelmente o desenvolvimento de um TS rentável ou melhora a robustez de um já desenvolvido


Características

  • Recomenda-se ativar/desativar a negociação em intervalos detectados usando o ambiente de negociação virtual.
  • O algoritmo da biblioteca é muito rápido. Ele pode ser facilmente implementado em analisadores de terceiros para o mesmo propósito.
  • Esta é uma ideia personalizada. Talvez haja análogos.
  • Eu não tive tempo suficiente para implementar os intervalos intra-semanais. Eu posso adicioná-los no futuro...
  • A biblioteca é multiplataforma. É relevante para MT4 e MT5.
  • O cálculo do melhor intervalo e sua aplicação no Testador são realizados sem alterar o código-fonte original do EA.


PS

Por favor, compartilhe sua experiência ao aplicar a biblioteca ANTES e DEPOIS (conforme descrito acima) na forma de capturas de tela e segmentos de log de passe único apropriados ao MT4/5.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/22710

Price_Momentum_Oscillator Price_Momentum_Oscillator

Oscilador Price Momentum

Extreme EA Extreme EA

O EA usa os indicadores iCCI (Commodity Channel Index, CCI) e duas iMA (Moving Average, MA).

HLCrossSigForWPR_HTF HLCrossSigForWPR_HTF

Indicador HLCrossSigForWPR com a opção de seleção do tempo gráfico disponível nos parâmetros de entrada

RJTX_Matches_Smoothed_Alert RJTX_Matches_Smoothed_Alert

O indicador RJTX_Matches_Smoothed apresenta alertas, e-mails e notificações push