Discussão do artigo "Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 2): Sinais do indicador - Parabolic SAR multiframe"

 

Novo artigo Criando um Expert Advisor simples multimoeda usando MQL5 (Parte 2): Sinais do indicador - Parabolic SAR multiframe foi publicado:

Neste artigo, por EA multimoeda, entendemos um robô investidor ou um robô de negociação que pode negociar (abrir/fechar ordens, gerenciar ordens como trailing-stop-loss e trailing profit) mais de um par de moedas em um gráfico. Desta vez, usaremos apenas um indicador, o Parabolic SAR ou iSAR, em vários timeframes, começando com PERIOD_M15 e terminando com PERIOD_D1.

O EA multimoeda usará 1 sinal de indicador em 5 timeframes, começando com PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, e PERIOD_D1.

Este EA não utiliza um timeframe fixo para o cálculo dos sinais dos indicadores, portanto, não é necessário definir o timeframe de cálculo do sinal.

Isso significa que o EA FXSAR_MTF_MCEA pode ser usado em qualquer timeframe de PERIOD_M1 a PERIOD_MN1, e o FXSAR_MTF_MCEA ainda calculará os sinais com base no iSAR PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, e PERIOD_D1.

Estes cinco timeframes do Parabolic SAR definirão o sinal para abrir ordens.

Entretanto, para fechar ordens quando o sinal enfraquecer, usamos o indicador iSAR PERIOD_M15, desde que a ordem esteja em estado de lucro.

Para usar o trailing-stop e o trailing profit, utilizamos o iSAR PERIOD_H1.


A fórmula da estratégia de estado dos sinais iSAR:

UP (para cima) = (PRICE_LOW[0] maior que a linha iSAR) ou PRICE_LOW[0] > iSAR[0]

DOWN (para baixo) = (PRICE_HIGH[0] menor que a linha iSAR) ou PRICE_HIGH[0] < iSAR[0]

Onde obter o sinal de COMPRA ou VENDA:

Os cinco timeframes do indicador iSAR devem somar 5 x UP para COMPRA e 5 x DOWN para VENDA.

Na figura 1, mostra-se o indicador iSAR.

iSAR_Signal_Buy e Sell

Autor: Roberto Jacobs

 

Chefe, aprendi algumas ideias sobre variedades múltiplas e ciclos múltiplos, bem como alguns métodos de desenho de gráficos. Muito prático.

Obrigado por seu compartilhamento

 
cloudchina #:

Chefe, aprendi algumas ideias sobre variedades múltiplas e ciclos múltiplos, bem como alguns métodos de desenho de gráficos. Muito prático.

Obrigado por seu compartilhamento

Não tem de quê.

 
Você poderia explicar os resultados da otimização nos diferentes pares... ela retornará os melhores resultados para cada par? ou os melhores resultados entre todos os pares?
 
Camilo Mora #:
Você poderia explicar os resultados da otimização nos diferentes pares... ela retornará os melhores resultados para cada par ou os melhores resultados entre todos os pares?

Esse Expert Advisor não negocia apenas pares únicos, mas várias moedas ou vários pares. Portanto, o resultado do teste é para todos os pares (30 pares fornecidos).

 
Você já comparou o tempo necessário para executar, digamos, um loop de todo o EA com 30 pares? A velocidade de backtesting desse EA me pareceu lenta, considerando a rapidez com que outros EAs são executados.
 

É claro que ele é lento! Ele está fazendo 30 vezes mais cálculos do que os "EAs rápidos". Tente executar 30 EAs rápidos simultaneamente e veja o que acontece. Aposto que esse EA é muito mais rápido. Se as porcentagens de vitórias no teste de mais de 75% se mantiverem, quem se importa com a velocidade quando se está ganhando 3 de cada 4 negociações? basta comprar máquinas mais rápidas.

Observe os loops para mover atribuições estáticas, use variáveis locais em loops e funções para reduzir o cálculo, certifique-se de que não haja várias chamadas da mesma função, faça o máximo de trabalho possível na função OnInit movendo chamadas únicas e cálculos estáticos para variáveis globais etc. etc. etc.

Para contornar o problema do sufixo do prefixo do símbolo, considere o uso de 2 variáveis para cada símbolo, um par para o nome de 6 caracteres e uma citação para o nome completo com prefixo e/ou sufixo. Examine o nome com uma função de cadeia de caracteres para definir as duas variáveis.

Talvez você queira criar um Parabolic Stop Loss adaptável que acompanhe as barras mais de perto. Acho que há vários indicadores PSAR adaptáveis para usar como guia.

O trabalho que Roberto dedicou a esse EA não deve ser subestimado, pois é muito significativo.

 
CapeCoddah Parabolic Stop Loss adaptável que acompanhe as barras mais de perto. Acho que há vários indicadores PSAR adaptáveis para usar como guia.

O trabalho que Roberto dedicou a esse EA não deve ser subestimado, pois é muito significativo.

Obrigado por seu apoio. Criarei um artigo para adicionar a detecção automática e o tratamento de corretoras com nomes de símbolos especiais, prefixos e/ou sufixos.

 

Roberto,

Más notícias, executei seu EA no EURUSD H4 de 1/1/2023 a 11/1/2023 com saldo inicial de US$ 1.000. O EA levou a conta à falência em menos de 3 meses. Com US$ 10.000, ele funcionou completamente, mas perdeu US$ 8.250. O gráfico mostra perdas consistentes do início ao fim, sem picos ou vales acentuados.

Primeiro: não se desespere! A negociação de câmbio é difícil e é ainda mais difícil projetar um EA de várias moedas. Eu sei, estou transformando um do MQ4 para o MQ5.

Talvez seja o momento de implementar um recurso de par variável para permitir a especificação de pares e possibilitar o teste em apenas um par. A maneira mais fácil é fazer com que a cadeia de pares seja um item de entrada e usar STRSPLIT para separar cada par na cadeia e possibilitar o carregamento dos pares. Uma abordagem melhor é usar a exibição de 30 pares para permitir que o usuário selecione os pares para a execução, clicando neles e mudando a cor. Há dois artigos recentes sobre GUI, GUI: Tips and Tricks...... Eu uso o último, mas acho que o Dicas e Truques pode ser melhor e mais completo. Você também deve usar as GUIs para exibir seus dados, o que considero excelente, em vez de usar a função Comentário.

Acredito firmemente na Lei de Pareto: 80% de uma característica provêm de 20% dos elementos, o que significa que 80% dos lucros gerais provêm de 6 pares e, de forma correspondente, 6 pares contribuem para 80% das perdas.

As estatísticas aprimoradas do Strategy Tester para pares individuais em um teste de várias moedas são obrigatórias para permitir a identificação de áreas problemáticas e a Lei de Pareto. Os elementos da guia BackTest são necessários em um nível de par, ou seja, lucro líquido, lucro bruto, perda bruta etc. etc. etc.

Se você observar o gráfico de compra e venda no texto acima, uma função adaptativa que aumente a velocidade de aceleração do SAR com base no aumento do tamanho da barra flexibilizaria o SAR para que você obtivesse lucros maiores nas primeiras 4 ilustrações de compra e venda do gráfico. Essa flexão adaptativa proporcionaria dois benefícios:

Proporcionaria um aumento nos lucros de talvez US$ 5 a US$ 10 ao fechar a negociação mais cedo. Mais importante ainda, permitiria que a próxima negociação fosse aberta US$ 5 a US$ 10 mais cedo. Assim, o impacto da flexão poderia ser de US$ 10 a US$ 20 no total para cada negociação. No entanto, ela também pode fazer com que muitas negociações perdedoras adicionais sejam colocadas com uma diminuição correspondente nos lucros totais.

Concentre-se nessas metas e nos prazos ideais e sua lucratividade aumentará substancialmente. Admito que ainda não descobri um processo de avaliação dinâmica.

 
CapeCoddah #:
Acredito firmemente na Lei de Pareto: 80% de uma característica provêm de 20% dos elementos. Isso significa que 80% dos lucros gerais provêm de 6 pares e, correspondentemente, 6 pares contribuem para 80% das perdas.

Obrigado por sua contribuição.

Como eu disse nas conclusões 4 e 5:

Esse Expert Advisor FXSAR_MTF_MCEA Multi-Currency é apenas um exemplo para aprender e desenvolver ideias.

Os resultados do teste no Strategy Tester ainda não são bons. Portanto, se uma estratégia melhor, com cálculos de sinal mais precisos, for implementada e acrescentar alguns períodos de tempo melhores, acredito que os resultados serão melhores do que os da estratégia atual.

Portanto, cabe a você fazer o upgrade usando o que você diz ser uma função adaptativa para obter melhores resultados.

 

Olá, Roberto,

muito interessante, gosto de sistemas com vários períodos de tempo.

Desculpe, mas não entendi como posso mudar os timeframes do SAR único e se o SAR tem um cálculo de valor fixo.
Existe uma maneira de comprar e vender cada timeframe (em vez de esperar que todos estejam em um lado)?

Nesse caso, eu poderia ter uma venda em 1 minuto e uma compra em 5 minutos, etc., supondo que, com 0,1 cada, eu teria uma quantidade variável de compra e venda.

Tentei fazer o teste no GOLD desde a versão 1.1.24, mas nada acontece, nenhuma negociação.

Alguma sugestão? Você pode me escrever em particular também.


Muito obrigado.

Marco