Navegação

    Portal do Trader
    • Cadastrar
    • Login
    • Pesquisar
    • Categorias
    • Recente
    • Tags
    • Popular
    • Usuários
    1. Home
    2. NeuroInvest
    3. Melhor
    N
    • Perfil
    • Seguindo 0
    • Seguidores 0
    • Tópicos 4
    • Posts 10
    • Melhor 1
    • Grupos 0

    Melhores posts de NeuroInvest

    • Otimização Multiobjetivo
      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
      NeuroInvest