Concurso de Expert Advisors dentro de um Expert Advisor

Evgeniy Trofimov | 26 outubro, 2015

Introdução

Caros desenvolvedores e analistas de bolsas!

Muitos sistemas de negociação são estáveis por um período de tempo específico, mas adiante a curva do balanço começa a se mover para baixo. O trader fica desiludido e começa a inventar novos Santos Graal, otimizando os parâmetros, etc.

Eu chamo sua atenção a uma ferramenta de realização de negócios virtuais - VirtualTrend.mqh. Usando esta função, você pode abrir, fechar e trilhar negociações virtuais.

Tem as seguintes características úteis:

  1. A possibilidade de criar Expert Advisors adaptativos que podem ativar e desativar as negociações virtuais, de acordo com os resultados já estabelecidos no histórico pelos traders.
  2. A possiblidade de avaliar vários sistemas de negociação em termos percentuais dependendo da rentabilidade, neste artigo 5 sistemas de negociação são apresentados como exemplo. Os resultados da competição entre eles definirá qual será utilizado na decisão do sistema de negociação preferível para posterior aplicação no mercado real.
  3. Esta possibilidade de implementação de estratégias de negociação usando várias operações abertas por um instrumento é possível na plataforma MetaTrader 5, onde são utilizadas posições cumulativas (esse recurso não é descrito neste artigo, mas sugere-se como uma variante a usar).

Vamos dar uma olhada nas duas primeiras caracaterísticas.

O código Competition_v1.0.mq4 é um exemplo de Expert Advisor adaptativo; tem base competitiva determinada no sistema de negociação a ser usado. O Expert Advisor usa 5 (fica seu critério adicionar mais) sistemas de negociação que não são escolhidos aleatoriamente, mas baseados mais ou menos na estabilidade do trabalho do par EURUSD, dentro do timeframe diário

Importante! Deve-se usar apenas sistemas de negociação estáveis que são lucrativos ou perdedores permanentemente num certo período de tempo.

Por exemplo, um sistema de negociação, cuja sequência de vitórias é "PPPPPPPLLLLLLLLPPLPPPPPPPP", se encaixa nas condições a serem utilizadas neste Expert Advisor; mas se a sequência de vitórias é "LLPPLPLLPPPLLPLPPLPLPLLLPPLPL", ele não se encaixa ("L" - negociação perdedora, "P" - negociação lucrativa).

Um sistema de negociação onde as operações perdedoras são mais freqüentes, mas as negociações lucrativas cobrem as perdas não pode ser usado, pois o Expert Advisor simplesmente não conseguem se adaptar à rentabilidade.

A estabilidade de um sistema de negociação é determinada "pela vista" dos resultados dos testes realizados no período máximo (toda o histórico) no testador estratégia. O diagrama obtido das alterações do balanço permite determinar o número médio ponderado de operações responsáveis pelas mudanças da tendência. Por exemplo, um sistema de negociação que executa a seguinte seqüência de operações: PPPPPPPPLLLLLLPPPPPPPPPLPLLLLLLLLLLLPPPPPPPLLLLLLLLLLLLLPPPPPPLLLLLLLLLLPLPPPLLPPPPPP, a tendência do balanço altera depois de 6 a 8 operações. No cálculo classificatório recomenda-se definir o período da média do saldo igual a metade dessas negociações, ou seja, 3 ou 4.

Ativar e desativar o sistema de classificação, que ajuda o Expert Advisor a se adaptar às mudanças da dinâmica de rentabilidade, é gerenciado através do parâmetro RatingON. Com este parâmetro você pode facilmente encontrar um período médio do balanço e configurá-lo ao parâmetro Tх.PeriodRating.

Cada sistema de negociação pode ser ativado ou desativado a sua vontade usando o parâmetro Tх.Enabled, onde х é o número de sistemas de negociações.

Todos os testes de sistemas de negociação abaixo apresentados são conduzidos no EURUSD (timeframe D1) durante o período de 01.01.1999 a 01.06.2010.

Sistema de Negociação №1


Figura 1. O teste do sistema de negociação №1 sem adaptação (RatingON = false)

O resultado do teste permite concluir que após cada 18-20 operações, esta estratégia muda a sua dinâmica de rentabilidade.

É por isso que o parâmetro T1.PeriodRating será definido para 20.

O teste do sistema de negociação №1 com adaptação habilitada (RatingON = true)


Figura 2.O teste do sistema de negociação №1 com adaptação habilitada (RatingON = true)

Sistema de Negociação №2

Durante o teste, durante o mesmo período descobrimos que a estabilidade é igual a cerca de 10 operações.


Figura 3.O teste do sistema de negociação №2 sem adaptação


Figura 4. teste do sistema de negociação №2 com a adaptação habilitada

Sistema de Negociação №3

A lógica de entrada e saída é a mesma do Sistema №1, no entanto os períodos de cálculo das médias móveis são diferentes.

Uma pequena observação:você pode reescrever todo o Competition_v1.0.mq4 e combiná-lo com estratégias de médias móveis de diferentes períodos.

Eu ainda não fiz estes testes, mas quando eu fizer, vou publicar.


Figura 5.O teste do sistema de negociação №3 sem adaptação

Este sistema de negociação executa algumas operações durante um longo período (quase 11 anos). Eu não recomendo usar esta estratégia em negociação real, pois o número de negociações no testador de estratégia é muito pequeno.

Eu adicionei esta estratégia por dar mais evidência na amostragem do desenvolvimento da adaptação. O parâmetro T3.PeriodRating é definido como 2 para esta estratégia.


Figura 6.O teste do sistema de negociação №3 com a adaptação habilitada

Sistema de Negociação №4

Eu vi essa estratégia muitas vezes na literatura.

Parece atraente mesmo sem a adaptação, mas usá-la na negociação não exige uma operação automatizada, pois é a longo prazo.


Figura 7. O teste do sistema de negociação №4 sem adaptação

Esta estratégia de negociação tem uma estabilidade constante, de modo que o período de processamento dos dados para o cálculo da classificação não deve ser inferior a 20 operações. Eu defini T4.PeriodRating=20.


Figura 8.O teste do sistema de negociação №4 com a adaptação habilitada

Sistema de Negociação №5

Este sistema foi desenvolvido por mim e eu quero compartilhar com você de uma forma sofisticada.


Figura 9.O teste do sistema de negociação №5 sem adaptação

Esse gráfico pode ficar sem a adaptação, mas de qualquer maneira defina T5.PeriodRating=10.


Figura 10.O teste do sistema de negociação №5 com a adaptação habilitada

Sistema Múltiplo do Expert Advisor

O trabalho dos 5 Expert Advisors com e sem a adaptação é demonstrado acima.

Agora vamos considerar um exemplo de trabalho colaborativo dos Expert Advisors:

Símbolo

EURUSD (Euro vs US Dollar)

Período

Dia (D1) 24.05.1999 00:00 - 05.07.2010 00:00 (01.01.1999 - 05.07.2010)

Modelo

Os pontos de controle (um método muito bruto, os resultados não devem ser considerados)

Parâmetros

RatingON=false; FastTest=true; file="virtual.csv"; MinRating=50; _tmp1_="---- Trading system 1 ----"; T1.Enabled=1; T1.Magic=101; T1.lot=0.1; T1.Fast=10; T1.Slow=100; T1.TS=7000; T1.PeriodRating=20; _tmp2_="---- Trading system 2 ----"; T2.Enabled=1; T2.Magic=102; T2.lot=0.1; T2.PeriodCCI=30; T2.LevelCCI=200; T2.SL=500; T2.PeriodRating=10; _tmp3_="---- Trading system 3 ----"; T3.Enabled=1; T3.Magic=103; T3.lot=0.1; T3.Fast=30; T3.Slow=200; T3.TS=5000; T3.PeriodRating=2; _tmp4_="---- Trading system 4 ----"; T4.Enabled=1; T4.Magic=104; T4.lot=0.1; T4.SL=5000; T4.TS=5000; T4.LimitMACD=0.002; T4.PeriodRating=60; _tmp5_="---- Trading system 5 ----"; T5.Enabled=1; T5.Magic=105; T5.lot=0.1; T5.PeriodCCI=90; T5.LevelCCI=100; T5.TralingCCI=100; T5.SL=5000; T5.TS1=5000; T5.PeriodRating=10;






Barras testadas

2994

Ticks modelados

219840

Qualidade de modelamento

n/a

Depósito inicial

500000.00





Total de lucro líquido:

617173.70

Lucro bruto

1342671.82

Perda bruta

-725498.13

Fator de lucro

1.85

Retorno esperado

2373.74



Rebaixamento Absoluto

76798.13

Baixa máxima

172676.05 (28.98%)

Rebaixamento relativo

28.98% (172676.05)


Negociações totais

260

Posições vendidas (ganho em %)

126 (29.37%)

Posições compradas (ganho em %)

134 (33.58%)


Negociações negativas (% of total)

82 (31.54%)

Negociações perdidas (% of total)

178 (68.46%)

Maior

Negociações lucrativas

78151.67

Negociações com perda

-18831.39

Média

Negociações lucrativas

16374.05

Negociações com perda

-4075.83

Máximo

vitórias consecutivas (lucro em $)

6 (89681.19)

derrotas consecutivas (perda em $)

21 (-100325.23)

Máximo

lucros consecutivos (nº de vitórias)

95057.65 (3)

perdas consecutivas (nº de perdas)

-100325.23 (21)

Média

vitórias consecutivas

2

perdas consecutivas

4



Figura 11.O teste do sistema múltiplo do Expert Advisor sem adaptação

O resultado da combinação dos sistemas de negociação é o aumento do lucro, rebaixamento e número de operações.

Agora vamos olhar para o mesmo teste, mas com a Parâmetro RatingON habilitado.

Período

Dia (D1) 24.05.1999 00:00 - 05.07.2010 00:00 (01.01.1999 - 05.07.2010)

Modelo

Os pontos de controle (um método muito bruto, os resultados não devem ser considerados)

Parâmetros

RatingON=true; FastTest=true; file="virtual.csv"; MinRating=1; _tmp1_="---- Trading system 1 ----"; T1.Enabled=1; T1.Magic=101; T1.lot=0.1; T1.Fast=10; T1.Slow=100; T1.TS=7000; T1.PeriodRating=20; _tmp2_="---- Trading system 2 ----"; T2.Enabled=1; T2.Magic=102; T2.lot=0.1; T2.PeriodCCI=30; T2.LevelCCI=200; T2.SL=500; T2.PeriodRating=10; _tmp3_="---- Trading system 3 ----"; T3.Enabled=1; T3.Magic=103; T3.lot=0.1; T3.Fast=30; T3.Slow=200; T3.TS=5000; T3.PeriodRating=2; _tmp4_="---- Trading system 4 ----"; T4.Enabled=1; T4.Magic=104; T4.lot=0.1; T4.SL=5000; T4.TS=5000; T4.LimitMACD=0.002; T4.PeriodRating=60; _tmp5_="---- Trading system 5 ----"; T5.Enabled=1; T5.Magic=105; T5.lot=0.1; T5.PeriodCCI=90; T5.LevelCCI=100; T5.TralingCCI=100; T5.SL=5000; T5.TS1=5000; T5.PeriodRating=10;






Barras testadas

2994

Ticks modelados

219840

Qualidade de modelamento

n/a

Depósito inicial

500000.00





Total de lucro líquido:

227123.75

Lucro bruto

388438.79

Perda bruta

-161315.05

Fator de lucro

2.41

Retorno esperado

2341.48



Rebaixamento Absoluto

10921.17

Baixa máxima

76482.03 (12.48%)

Rebaixamento relativo

12.48% (76482.03)


Negociações totais

97

Posições vendidas (ganho em %)

50 (40.00%)

Posições compradas (ganho em %)

47 (46.81%)


Negociações negativas (% of total)

42 (43.30%)

Negociações perdidas (% of total)

55 (56.70%)

Maior

Negociações lucrativas

71192.28

Negociações com perda

-12680.47

Média

Negociações lucrativas

9248.54

Negociações com perda

-2933.00

Máximo

vitórias consecutivas (lucro em $)

5 (80463.85)

derrotas consecutivas (perda em $)

13 (-50753.48)

Máximo

lucros consecutivos (nº de vitórias)

80463.85 (5)

perdas consecutivas (nº de perdas)

-50753.48 (13)

Média

vitórias consecutivas

2

perdas consecutivas

3


Fig. 12.O teste de sistema múltiplo do Expert Advisor com a adaptação habilitada

A linha de balanço achatada, os rebaixamentos dramáticos diminuiram, o lucro diminuiu 2.71 vezes, orebaixamento diminuiu 2.32 vezes, o número de operações diminuiu 2.68 vezes, o fator de lucro aumentou 1,3 vezes.

Na Fig. 12, ao contrário dos testes anteriores, o diagrama dos volumes já apareceu. Ocorreu como resultado de um sistema de classificação ativo.

Ele atua da seguinte maneira - em primeiro lugar, o lucro Tх.PeriodRating de todos as negociações virtuais fechadas são somadas e o valor obtido é dividido pelo número de dias dessas negociações realizadas. O valor obtido é adicionado pela lucro acumulativo de todas as posições abertas e dividido pelo número de dias que eles estiveram ativos.

Se o valor obtido for negativo, então é definido igual a zero. Esta operação é executada para cada sistema de negociação.

O sistema de classificação pesquisa um sistema de negociação a partir de outro, através dos números mágicos atribuídos as estratégias de negociação ativas nos parâmetros iniciais Tх.Magic. Ele pesquisa o sistema mais rentável ​​pelo valor máximo do lucro e define a classificação como 100% para este sistema.

Todos os outros sistemas de negociação tem uma classificação com atribuição relativa à classificação do sistema vencedor. Finalmente uma tabela com três colunas é criada.

Exemplo:

Mágico
Lucro
Classificação, %
1
9
40.9
2
0
0.0
3
3
13.6
4
10
45.5
5
0
0.0
6
17
77.3
7
0
0
8
12
54.5
9
0
0.0
10
22
100.0

Durante a negociação real, o valor da classificação obtida é multiplicado pelo valor de Tх.lot e dividido por 100. Neste caso, todos os sistemas de negociação com a classificação maior do que zero irão participar da negociação real.

Para fazer apenas o sistema vencedor participar na negociação real, defina o parâmetro MinRating igual a 100 no Exper Advisor Competition_v1.0.

Conclusão

A metodologia representada não dá uma garantia de 100% de lucro; no entanto, posso garantir a suavização da curva do balanço. Ou seja - a diminuição do lucro, do rebaixamento e número das operações realizadas são garantidas! Aumento do fator de lucro - provavelmente.

Cabe a você decidir se é bom ou não.

A descrição dos parâmetros do Expert Advisor: Competition_v1.0.mq4:

Links para temas semelhantes: http://forum.mql4.com/ru/23455