Embora o MT5 permita a criação de critérios de otimização customizados (Custom Max), os Expert Advisors da Rico não têm essa opção disponibilizada. Mesmo os critérios multiobjetivo nativos disponíveis no MT5, não tem a opção de considerar o número de trades como participante da função objetivo, talvez porque o Forex (ambiente para o qual foi projetado) não contemple custos de corretagem. Mas, como cada trade possui esses custos na BMF, considerá-los na otimização passa a ser uma necessidade real.
Otimizar as variáveis de decisão computando apenas uma função objetivo baseada no Balance Max, pode levar a varredura do espaço de soluções em que os gastos com corretagem inviabilizem soluções encontradas, como por exemplo, um Profit de 1.000 com 600 trades, que levaria a instância do problema para perdas em situação real.
Para resolver esse problema, basta criar um função OnTester() com os parâmetros multiobjetivo desejado e inserir no corpo do EA. Um exemplo de função multiobjetivo poderia ser o Lucro Final (Profit), menos a quantidade de trades vezes 2 (para trazer a corretagem para o problema), multiplicado pelo complemento de 100 do Máximo Drawdown.
FO = (Profit - (2*qtd_trades)) * (100-MaxDrawdown)/100
A Função OnTester() poderia ser desta forma:
//+------------------------------------------------------------------+//| Funcao Multiobjetivo de Otimização |//+------------------------------------------------------------------+double OnTester(){ double profit = TesterStatistics(STAT_PROFIT); double max_dd = TesterStatistics(STAT_BALANCE_DDREL_PERCENT); double qtd_trades = TesterStatistics(STAT_TRADES); double funcao_objetivo = 0.0;
if (profit > 0) funcao_objetivo = (profit - (qtd_trades*2)) * (100 - max_dd) / 100; else funcao_objetivo = profit - (qtd_trades*2);
return(funcao_objetivo);}
A adoção desses critérios para a otimização é simples, bastando adicionar o código no corpo do Expert Advisor.
Fica a sugestão!
postado em MetaTrader 5
N
Melhores posts de NeuroInvest
-
Otimização Multiobjetivo
Última postagem realizada por NeuroInvest
-
CardumesVejo muitas pessoas procurando parâmetros para várias estratégias otimizando individualmente suas variáveis. Talvez criar um objetivo comum interessante para um "grupo de investidores" com robôs de investimentos seja o de eleger uma única estratégia com parâmetros partilhados para o grupo. Quando vários pequenos investidores atuam em conjunto, podem produzir os mesmos efeitos de um grande investidor, que, com atuações maciças de compra e venda, podem guiar o mercado para uma direção, notadamente no curtíssimo prazo. Essas atuações no nível de scalper podem trazer pequenos retornos com grande frequência. E tenham certeza, já há sintomas dessa atuação no mercado!postado em MetaTrader 5
-
Colaboração On-Line em Larga EscalaHoje completo uma semana de participação neste Forum e gostaria de fazer algumas observações para a reflexão dos membros participantes. Durante esse período, a única movimentação bem sucedida que vi em torno de um projeto foi a criação de um grupo no WhatsApp, com 43 postagens. Apesar do mérito da mobilização, há uma grande possibilidade do evento se transformar no que estamos acostumados a ver: envio de fotos, vídeos, memes, emoticons, e mensagens do tipo "E aí galera, a bolsa hoje sobe ou cai?", contribuindo para o aumento exponencial do lixo eletrônico! É uma pena, porque há aqui um enorme potencial intelectual e computacional amplamente desperdiçado, com tanta demanda de pesquisa por aí. E essa perda de foco pode ser observada também nas Instituições envolvidas, como a Corretora Rico, que disponibiliza 40 robôs para utilização. Quem já testou pelo menos metade deles? Participantes individuais também o fazem, como o Henrique Vilela, que realiza um trabalho voluntário notável, publicando um novo robô a cada dia em seu Facebook. Mas com tanta diversificação, ainda há quem proponha novas funcionalidades, como parada dos robôs no horário de almoço! Eu sugiro que sejam eleitos, para o Grupo, dois EAs, um "Seguidor de Tendências Roberto Pontes rpon...@yahoo.com.brpostado em MetaTrader 5
-
Frustrações nos BacktestsVejo muita gente relatando suas frustrações com os resultados dos backtests realizados com vários EA, principalmente nas operações de Day Trade. Talvez o que muitos não estejam compreendendo é que a operação de Day Trade é extremamente injusta para o trader. Suponha por exemplo, o melhor dos casos para o investidor: operar no Mini-Índice, que cobra R$ 1,00 de corretagem e que tem um gap mínimo de 5 pontos entre o Bid e o Ask. Na melhor das hipóteses, comprando e vendendo no spread mínimo, o investidor senta na mesa de jogo pagando R$ 4,00 à banca, de ágio (duas corretagens e dois spreads mínimos). A partir daí um jogo de probabilidade 50% (se reconhecermos que o mercado é absolutamente aleatório) onde você tem que se sair bem com um relógio registrando a contagem regressiva para as 17:30 hs... A casa, banca, corretora, mercado, como preferirem, tem uma única vantagem sobre você que é o edge a seu favor (vantagem na partida do jogo 50-50, recebendo corretagem e spread antecipadamente). Por outro lado, você possui duas outras grandes vantagens que é poder escolher quanto jogar e quando parar... Quando uma dessas vantagens lhe é tirada (tempo marcado para encerramento), o jogo se torna muito desfavorável, principalmente se o seu capital para novos e rápidos aportes for um recurso escasso. Estou certo de que a busca de um sistema vencedor no Day-Trade é realmente um tarefa extremamente difícil, para não dizer impossível!postado em MetaTrader 5
-
RE: Vamos compartilhar nossos resultados no HILO!!!Janio, Para o HiLo operando com realizações parciais, acredito que o backtest deva usar a opção "Cada Tick" , porque a estratégia visa a obter vantagem das movimentações dos preços, na área de lucro (entre o valor de operação e o TP). Usando somente os preços de abertura, esses benefícios desaparecem... Demora uma eternidade a execução, mas é realmente necessário!postado em MetaTrader 5
-
RE: Colaboração On-Line em Larga EscalaHenrique, Acho muito boa a complementação da ideia. O HiLo e a BB são boas opções de indicadores. Na verdade, para realizar uma tarefa dessas, não se pode ser muito democrático, infelizmente. Muitas solicitações surgirão, e há que se ter muito cuidado para não se construir um "canivete suíço", senão fica difícil uma parametrização coletiva! Att,postado em MetaTrader 5
-
RE: Robos baseados em inteligência artificialWarlley, O mais importante na criação de uma RNA é o tratamento dos dados antes de enviar as instâncias de treinamento. Tenho visto muita gente enviando valores absolutos para a rede (preço de fechamento, valor do IFR, etc.). A RNA faz a interpretação dos dados em uma única dimensão, ou seja, linha a linha de treinamento. Para ela, o valor de fechamento, por exemplo, não tem nenhum significado isoladamente. Ou seja, enviar uma linha com os valores de fechamento e volume " 35.43; 1650" para a rede não trará nenhum efeito! O que é valioso, para a rede, é a semântica do dado. Por exemplo, enviar valores: Preço de Fechamento Valor 1) Se o preço de fechamento está acima da média e subindo Valor 2) Se o preço de fechamento está acima da média e caindo Valor 3) Se o preço de fechamento está abaixo da média e subindo Valor 4) Se o preço de fechamento está abaixo da média e caindo Volume de negócios Valor 1) Se o volume está acima da média e subindo Valor 2) Se o volume está acima da média e caindo Valor 3) Se o volume está abaixo da média e subindo Valor 4) Se o volume está abaixo da média e caindo Resultado (Previsão da Rede) Valor 1) Se o ativo subiu acima de 5% nos próximos três dias Valor 2) Se o ativo caiu abaixo de 5% nos próximos três dias Valor 3) Se o ativo se manteve estável ente +5% e -5% nos próximos três dias Agora sim, enviar uma linha de treinamento " 2, 2, 1 " fornece à rede uma semântica importante. Essa linha irá treinar a rede com a informação de que em uma ocasião onde os preços vinham de cima da média para baixo com o volume caindo, houve uma valorização futura do ativo! Roberto.postado em MetaTrader 5
-
Otimização MultiobjetivoEmbora o MT5 permita a criação de critérios de otimização customizados (Custom Max), os Expert Advisors da Rico não têm essa opção disponibilizada. Mesmo os critérios multiobjetivo nativos disponíveis no MT5, não tem a opção de considerar o número de trades como participante da função objetivo, talvez porque o Forex (ambiente para o qual foi projetado) não contemple custos de corretagem. Mas, como cada trade possui esses custos na BMF, considerá-los na otimização passa a ser uma necessidade real. Otimizar as variáveis de decisão computando apenas uma função objetivo baseada no Balance Max, pode levar a varredura do espaço de soluções em que os gastos com corretagem inviabilizem soluções encontradas, como por exemplo, um Profit de 1.000 com 600 trades, que levaria a instância do problema para perdas em situação real. Para resolver esse problema, basta criar um função OnTester() com os parâmetros multiobjetivo desejado e inserir no corpo do EA. Um exemplo de função multiobjetivo poderia ser o Lucro Final (Profit), menos a quantidade de trades vezes 2 (para trazer a corretagem para o problema), multiplicado pelo complemento de 100 do Máximo Drawdown. FO = (Profit - (2*qtd_trades)) * (100-MaxDrawdown)/100 A Função OnTester() poderia ser desta forma: //+------------------------------------------------------------------+//| Funcao Multiobjetivo de Otimização |//+------------------------------------------------------------------+double OnTester(){ double profit = TesterStatistics(STAT_PROFIT); double max_dd = TesterStatistics(STAT_BALANCE_DDREL_PERCENT); double qtd_trades = TesterStatistics(STAT_TRADES); double funcao_objetivo = 0.0; if (profit > 0) funcao_objetivo = (profit - (qtd_trades*2)) * (100 - max_dd) / 100; else funcao_objetivo = profit - (qtd_trades*2); return(funcao_objetivo);} A adoção desses critérios para a otimização é simples, bastando adicionar o código no corpo do Expert Advisor. Fica a sugestão!postado em MetaTrader 5
-
RE: Re: [mt5-portaldotrader] Robô Hilo 5 encontra-se disponível para Download - Conta Real!!!!Muito bom o EA_HiLo_PDT disponibilizado! Senti falta apenas da opção de não permitir o fechamento da posição aberta pela mudança do indicador, presente em quase todos os demais. Não fosse isso, daria Grau de Investimento ao EA :) Att, Roberto Pontes rpon...@yahoo.com.brpostado em MetaTrader 5
-
RE: Vamos compartilhar nossos resultados no HILO!!!Rodrigo, Vejo muitas pessoas procurando parâmetros para várias estratégias otimizando individualmente suas variáveis. Talvez criar um objetivo comum interessante para um "grupo de investidores" com robôs de investimentos seja o de eleger uma única estratégia com parâmetros partilhados para o grupo. Quando vários pequenos investidores atuam em conjunto, podem produzir os mesmos efeitos de um grande investidor, que, com atuações maciças de compra e venda, podem guiar o mercado para uma direção, notadamente no curtíssimo prazo. Essas atuações no nível de scalper podem trazer pequenos retornos com grande frequência. E tenha certeza, já há sintomas dessa atuação no mercado!postado em MetaTrader 5