![Estratégia de negociação no indicador de reconhecimento apurado de velas Doji](https://c.mql5.com/2/53/doji_candlestick_pattern_600x314.jpg)
Estratégia de negociação no indicador de reconhecimento apurado de velas Doji
Introdução
No artigo "Melhorando o reconhecimento de padrões de velas por meio de velas Doji", descrevemos o conceito de metabarras. Resumidamente, uma metabarra é a junção condicional de várias barras consecutivas em uma barra grande. Ela é semelhante a uma barra de um período gráfico maior, mas não exatamente, já que o tamanho de uma metabarra não é fixo (pois "flutua" em um determinado intervalo) e não está vinculado a um determinado tempo de início e fim da barra. Logo, o uso de metabarras permite detectar diversos padrões da análise de castiçais com mais frequência.
Naquele artigo que mencionei no início, descrevemos a criação de um indicador de velas Doji que funcionava com metabarras e demonstramos como ele operava.
Agora, tentaremos criar uma estratégia de negociação com esse indicador. Em princípio, como as metabarras permitem detectar padrões de velas com mais frequência, a estratégia será capaz de gerar mais negócios do que seria possível com as barras clássicas. E essa é uma ótima oportunidade de aumentar a renda.
A estratégia de negociação: O uso de velas é suficiente?
Vamos usar o indicador Doji com metabarras retirado do artigo mencionado acima. Infelizmente, não é possível simplesmente abrir e fechar negócios com base nas leituras desse indicador. Mas, o problema não está no indicador e nem nas metabarras. O problema é que o padrão de velas Doji não foi concebido para ser usado como um sinal de negociação independente.
Afinal de contas, o padrão Doji é um sinal de uma possível reversão de tendência. Isso significa que, antes da vela Doji, deve haver uma tendência na direção correspondente. Por isso, se não houver tendência, não faz sentido negociar com a vela Doji.
Integração entre Tendências e Metabarras
Essa tarefa não é tão difícil quanto pode parecer à primeira vista. Na verdade, não é nada complicada. A vela Doji é uma metabarra, mas a tendência não precisa estar feita com base em metabarras, ela também pode ser construída com base em barras regulares. As proporções dos desvios máximo e mínimo do preço dentro da barra são importantes para as velas e (como verificamos no artigo anterior) dependem muito da largura da metabarra (ou seja, do número de barras regulares incluídas nela) e de seus deslocamentos no tempo. Mas a linha de tendência não mostra nenhuma proporção extrema, ela simplesmente, figurativamente falando, passa pelos valores médios de preço em um grupo de barras. E para calcular os valores médios, o tamanho da divisão desse grupo em partes não é muito importante.
De modo geral, construiremos a tendência a partir de barras comuns.
A única coisa que precisamos saber é o tempo do fim da tendência, ou seja, o número da barra a partir da qual começa a vela Doji detectada pelo indicador. Afinal de contas, a largura dessa vela pode variar em uma ampla faixa (definida nas configurações do indicador). É melhor que as barras que compõem a metabarra da vela não sejam consideradas parte de uma tendência. A vela Doji é seu ponto de reversão potencial, o que significa que não é nem uma tendência antiga, mas também não é uma tendência nova. Ela é parcialmente ambas - depende de como você a vê. Basicamente, pode ser considerada como uma lateralização (flat), porque seu preço de fechamento está próximo do preço de abertura.
Em geral, para não inserir erros nas características estatísticas da tendência, não incluiremos a metabarra com a vela Doji no grupo de barras a partir do qual a tendência é construída.
A maneira mais fácil de determinar quando a vela Doji começa é calcular a tendência no mesmo indicador que constrói essa vela. Portanto, apuraremos o indicador do último artigo para incluir um filtro que mostre apenas as velas Doji que têm uma tendência antes delas. O indicador com essa configuração também se tornará diretamente adequado para negociação, pois será possível executar negócios com base em seus sinais sem nenhuma análise adicional.
Agora o indicador tem parâmetros de entrada, cujos nomes começam com o prefixo "Candle_". O que significa que são diferentes parâmetros de vela. Agora, precisamos adicionar vários parâmetros de entrada da tendência ao código do indicador. No mínimo, esses devem ser os dois parâmetros a seguir.
- Largura mínima da tendência (medida em número de barras):
input int Trend_WidthMin = 10;
- Largura máxima da tendência (medida em número de barras):
input int Trend_WidthMax = 50;
Quando o indicador detectar uma vela Doji, ele analisará o grupo de barras situadas antes dela conforme o valor do intervalo definido por esses dois parâmetros. E estimará se há uma tendência adequada nessas barras.
Mais adiante, no decorrer do artigo, veremos quais são os outros parâmetros de entrada de tendência que precisamos definir. Por enquanto, chamarei sua atenção para uma nuance pequena, mas tecnicamente importante.
Como agora o indicador precisa analisar um número maior de barras anteriores para plotar qualquer sinal no gráfico (porque a largura da tendência foi adicionada à largura da metabarra, na qual é construída a vela), precisamos fazer uma pequena correção no código do indicador. Havia uma linha na função OnInit que calculava quantas barras no início do histórico de preços deveriam ser ignoradas, porque o indicador não pode ser calculado e desenhado com base nessas barras (devido à insuficiência de dados históricos):
SkipBars = Candle_WidthMax;Agora, essa linha deve ficar assim:
SkipBars = Candle_WidthMax + Trend_WidthMax;
Calculando a tendência com o método adequado
Podemos implementar diferentes algoritmos para determinar a presença de uma tendência. Alguns deles são mais simples, outros são mais complicados. Bem, para usar um deles com as velas Doji, acho que é importante conhecer não apenas a existência de uma tendência, mas também algumas de suas características. Vou mostrar isso visualmente mais facilmente:
Exemplos de tendências que antecedem a vela Doji.
A figura anterior mostra dois exemplos de tendências. No exemplo da esquerda, vemos uma vela Doji, que tem uma altura semelhante e até um pouco maior do que qualquer movimento de preço dentro da tendência anterior. Podemos supor que dentro dessa vela Doji houve realmente algum evento significativo, uma colisão de forças opostas sérias. Uma dessas forças empurrou o preço para cima com uma força sem precedentes (durante todo o período de desenvolvimento da tendência), mas a outra não permitiu que o preço se mantivesse em alta e o fez retornar ao nível inicial de abertura da vela. Isso significa que vemos nesta vela o momento exato em que uma força capaz de resistir ao crescimento da tendência entrou em ação. A partir disso, podemos supor que a tendência acabou e está pronta para se reverter.
Mas na mesma figura, no exemplo à direita, vemos que a altura da vela Doji não é nada especial em comparação com os movimentos que ocorreram dentro da tendência. Isso significa que a força que reverteu o preço dentro dessa vela dificilmente pode ser suficiente para reverter toda a tendência. Portanto, abrir um negócio em uma vela Doji como essa pode ser um risco irracional. E é uma boa ideia dar à nossa estratégia de negociação a capacidade de distinguir de alguma forma entre essas duas situações descritas na figura.
Isso pode ser feito se usarmos o método de regressão linear para determinar a tendência. Assim, obteremos não apenas um sinal da tendência, mas também a fórmula da linha que passa pelo meio do canal de tendência:
y = A + B * x
Onde:
x — coordenadas dos pontos do gráfico no eixo horizontal, ou seja, no nosso caso, são os números das barras.
y — coordenadas no eixo vertical, ou seja, no eixo de preços. Elas são calculadas por essa fórmula de regressão linear para construir um ponto no gráfico de preços para cada barra e desenhar uma linha reta através desses pontos. Essa linha é a linha de tendência.
B — coeficiente que caracteriza a inclinação da linha de tendência. Quanto maior o coeficiente, mais inclinada e mais forte é a tendência. Quando o coeficiente tem um valor positivo, a linha aumenta da esquerda para a direita, o que corresponde a uma tendência de alta. Quando o coeficiente tem valor negativo, a tendência é de queda.
A — coeficiente auxiliar para posicionar a linha de tendência na altura desejada do gráfico. Ele não tem nenhuma carga significativa em termos de negociação.
O algoritmo para calcular a regressão linear é amplamente conhecido, faz parte dos fundamentos da estatística matemática e é aplicado em várias áreas além do trading. Como resultado do algoritmo, são calculados os coeficientes A e B mencionados anteriormente.
No código do indicador, isso parece algo assim (o código completo do indicador está no anexo). Dentro do laço para todas as barras que compõem a tendência medida, são acumuladas várias somas intermediárias:
double BarPrice = (open[CurBar] + close[CurBar] + high[CurBar] + low[CurBar])/4; X = TrendBarNum; Y = BarPrice; N = TrendBarNum; S1 += X; S2 += Y; S3 += X * Y; S4 += X * X;
Quando todas as somas das barras de tendência são coletadas, são calculados os coeficientes da fórmula de regressão:
B = (N * S3 - S1 * S2) / (N * S4 - S1 * S1); A = (S2 - B * S1) / N;
Depois de calcular a fórmula da regressão linear, ao analisar o coeficiente B, podemos saber se há uma tendência nesse grupo de barras e se ela é consistente com a direção da vela:
if ((CandleDir < 0)&&(B < 0)) continue; if ((CandleDir > 0)&&(B > 0)) continue;
Também seria útil avaliar se a tendência é forte o suficiente, ou seja, quão acentuada é a sua inclinação. Uma inclinação de tendência muito pequena pode ser apenas ruído, erro de lateralização. Além disso, pequenos movimentos de preços podem trazer muito pouco lucro para cobrir as comissões de negociação. Por isso, vamos adicionar ao código do indicador um parâmetro que define a inclinação mínima permitida da tendência. Ele é medido em número de pontos por minuto:
input double Trend_PowerMin = 0.01;
No código, esse parâmetro é convertido na mesma unidade de medida que o coeficiente B da fórmula de regressão, e eles são comparados:
if (MathAbs(B) < (Trend_PowerMin*_Point*PeriodSeconds()/60)) continue;
Agora, o mais importante, o porquê usamos especificamente a regressão linear e não identificamos a presença de uma tendência de outra maneira.
Como a linha de regressão passa pelo centro do canal de tendência, agora podemos calcular a largura desse canal. A largura do canal de tendência é a maior variação dos preços das barras em relação à linha de regressão. Mais precisamente, é a soma do maior desvio para cima e do maior desvio para baixo:
Para calcular a largura do canal, precisamos passar por todas as barras de tendência, calcular o valor da regressão para cada barra (o "y" da fórmula de regressão linear obtida anteriormente), calcular a diferença entre esse valor e os preços das barras e acumular os maiores valores dessas diferenças:
for (X=1; X<=TrendBarNum; X++) { int TmpCurBar=CandleStartBar+X; Y = A + B*X; DH=high[TmpCurBar]-Y; DL=low [TmpCurBar]-Y; if ((DH > maxDH)||(X==1)) maxDH=DH; if ((DL < minDL)||(X==1)) minDL=DL; }
Essa mesma largura do canal pode ser comparada com a altura da vela Doji - para concluir se os movimentos nessa vela são fortes o suficiente para reverter a tendência. Para isso, adicionaremos mais um parâmetro de entrada de tendência ao indicador, que define a proporção máxima permitida entre a largura do canal e a altura da vela Doji encontrada:
input double Trend_ChanelPowerMax = 1;
Ele é levado em consideração no código do indicador da seguinte forma:
if ((maxDH-minDL) > Trend_ChanelPowerMax*CandleHeight) break;
O código completo do indicador está no apêndice do artigo.
Algoritmo final do indicador para a estratégia
Agora que temos o código que determina a presença de uma tendência, vamos usá-lo como um filtro. Assim, no gráfico do indicador, só poderão ser exibidas as velas Doji que são antecedidas por uma tendência que atende a todos os parâmetros: direção, comprimento e largura.
Todo o código relacionado ao cálculo e à avaliação da aceitabilidade das características da tendência será incorporado em uma função separada no código do nosso indicador:
bool DetectTrend( int CandleStartBar, int CandleDir, double CandleHeight, const double& open[], const double& high[], const double& low[], const double& close[] )
Essa função retorna um valor lógico de se há uma tendência adequada ou não. Vamos chamar essa função sempre que encontrarmos uma vela Doji:
if (DojiExists) { if (DetectTrend(CurBar, CandleDir, CandleHeight, open, high, low, close)) break; // свеча и тренд есть, дальше не нужно расширять метабар else DojiExists=false; }
O código completo do indicador está no anexo ao artigo. Vamos verificar o seu funcionamento um pouco mais tarde, juntamente com o EA.
Algoritmo do Expert Advisor
Então, temos um indicador modificado que procura velas Doji com base em metabarras, e este mesmo indicador determina a presença de uma tendência antes da vela. Agora, o indicador só desenha uma linha no gráfico quando há simultaneamente uma vela Doji e uma tendência, apontando na mesma direção que a ponta da vela. Em outros casos, o indicador não plota nada.
Desse modo, a leitura deste indicador já é um sinal pronto para o Expert Advisor. Se uma linha aparecer no indicador, abrimos um negócio. Resta decidir quando fechar o negócio.
Como o sinal do indicador, em nosso caso, é uma previsão de uma possível reversão da tendência, o negócio existente deve ser fechado quando o indicador mostrar um sinal oposto àquele em que o negócio foi aberto. Esse é o melhor sinal para fechar um negócio, pois, no caso ideal, seu aparecimento significa que, tendo entrado no mercado no início da tendência (de acordo com o sinal anterior), o EA sairá no final da tendência, ou seja, extrairá o máximo de lucro possível dessa situação de mercado.
A propósito, um sinal desse tipo não apenas causa o fechamento de um negócio, mas também leva à abertura de um novo, desta vez na direção oposta à anterior, uma vez que os sinais do indicador são usados para a entrada no mercado.
No entanto, o preço no mercado nem sempre se move em trajetórias ideais para o trader. O início e o fim das tendências nem sempre são claramente definidos. Também pode demorar muito tempo entre o fim de uma tendência e o início da próxima. Esse seria um período de movimentos de preços quer seja horizontais ou curtos para cima e para baixo. Nosso indicador não reagirá de forma alguma a essas situações. Em outras palavras, nesse caso, não receberemos um sinal para fechar o negócio durante muito tempo. Embora a tendência inicial já tenha acabado, não faz sentido permanecer no mercado para a estratégia.
A maneira mais simples de adicionar condições de fechamento adicionais a qualquer estratégia de negociação é definir níveis de take profit e stop loss para todos os negócios abertos. Seu valor pode ser definido nas configurações do EA.
Também será necessário adicionar todos os parâmetros do indicador às configurações do EA: dimensões da vela Doji,dimensões da tendência, etc. O EA iniciará o indicador (invisível), passando as configurações para ele.
O código completo do Expert Advisor está no anexo ao artigo. Não faz sentido analisar o código no artigo, pois o EA neste caso é o mais simples, padrão - como na negociação com muitos outros indicadores. Todo o mercado é analisado pelo indicador, e o EA apenas abre e fecha negociações com base em sinais prontos.
Testando o Expert Advisor resultante
Antes de realizar testes em larga escala com base no histórico, verificaremos se tudo funciona bem em princípio. Executaremos o Expert Advisor no testador de estratégia do MetaTrader 5 sobre um pequeno segmento do histórico e consideraremos os negócios exibidos no gráfico.
Podemos ver que o comportamento do EA corresponde ao algoritmo pretendido. Aqui está um caso em que um negócio foi aberto por um sinal correto do indicador:
O indicador sinaliza uma vela Doji ascendente na metabarra a partir de duas barras anteriores,
e uma tendência de alta antes da vela. O Expert Advisor abriu um negócio.
Mais tarde, esse negócio foi fechado mediante o sinal oposto, com a abertura de um novo negócio na outra direção:
O indicador detectou uma vela Doji apontando para baixo na metabarra feita com as três barras anteriores,
e uma tendência de baixa antes da vela. O Expert Advisor fechou o negócio e abriu outro oposto.
Caso em que o indicador não mostrou nenhum sinal oposto por um longo período e o negócio foi fechado com lucro:
O indicador não apresenta sinais. O negócio aberto pelo Expert Advisor foi fechado quando o nível de lucro foi atingido.
Preparação antes de testar a estratégia de negociação com base no histórico
O Expert Advisor resultante tem configurações muito flexíveis. É possível configurá-lo para negociar usando quer seja velas de Doji (metabarras) ou barras clássicas (simples). Os parâmetros da tendência antes da vela também podem ser configurados com valores zero (o que significaria que não seria levada em conta a presença de uma tendência). Tudo isso afeta drasticamente o comportamento do Expert Advisor. Dessa forma, podemos até considerar condicionalmente essas variantes de configuração como estratégias de negociação diferentes. A otimização mostrará quais dessas alternativas são as mais eficazes.
Em várias literaturas sobre negociação, recomenda-se o uso de padrões Doji em períodos de tempo não inferiores a uma hora, caso contrário, o ruído do preço produzirá muitos sinais falsos.
Vamos escolher o período de tempo H4 e o símbolo EURUSD para o teste. Para obter boas estatísticas, com influência mínima da aleatoriedade e do efeito de ajuste, usaremos um período mais longo de histórico - 10 anos. O testador de estratégia no MetaTrader 5 permite dividir o período selecionado em duas metades: a primeira metade será usada para treinar o Expert Advisor e a segunda metade será usada para testes automáticos após o treinamento (teste avançado).
Realizaremos duas sessões de teste (e treinamento) para descobrir qual é mais eficaz: metabarras ou velas clássicas. Vamos compará-las pelo fator de recuperação, ou seja, a relação entre o lucro obtido e o rebaixamento. Quanto mais alto for esse parâmetro, mais lucrativa será a estratégia.
O Expert Advisor tem muitos parâmetros a serem otimizados, portanto, para acelerar a otimização, nós a realizaremos por meio de um algoritmo genético em vez de uma busca completa.
Configurações para velas Doji de uma barra (clássicas)
Período gráfico H4. A largura da vela é estritamente de 1 barra. Outras configurações têm um amplo intervalo de otimização:
Parâmetro do EA | Início | Etapa | Stop |
---|---|---|---|
Candle_WidthMin | 1 | ||
Candle_WidthMax | 1 | ||
Candle_HeightPowerMin | 0.2 | 0.2 | 2 |
Candle_BodyPowerMax | 0.1 | 0.1 | 0.4 |
Candle_ShadowPowerMax | 0.1 | 0.1 | 0.4 |
Trend_WidthMin | 1 | 3 | 10 |
Trend_WidthMax | 1 | 4 | 40 |
Trend_PowerMin | 0 | 0.2 | 2 |
Trend_ChanelPowerMax | 0.5 | 0.2 | 2 |
Lots | 0.1 | ||
TakeProfit | 300 | 300 | 3000 |
StopLoss | 300 | 300 | 3000 |
São obtidas mais de 63 milhões de combinações de parâmetros. Mas a otimização genética reduz o excesso em milhares de vezes e pode ser feita em poucos minutos.
Configurações para velas Doji de metabarras
As metabarras podem ter larguras variáveis em um intervalo ilimitado, o que significa que um EA poderia negociar usando inúmeras velas de larguras diferentes ao mesmo tempo. Mas, para manter o experimento puro, não definiremos o intervalo muito maior do que no teste de velas de barra única. Os períodos de tempo padrão disponíveis mais próximos de H4 são H3 e H6. Capturaremos apenas o intervalo entre esses valores com metabarras. O período gráfico menor mais próximo que nos permite fazer isso é o M30. Ao executar o EA nele, poderemos negociar com todas as metabarras que tenham uma largura equivalente a qualquer uma das seguintes: H3.5, H4, H4.5, H5, H5.5. Somente um desses períodos de tempo (H4) está disponível para negociação com as clássicas velas Doji. Nos outros, em princípio, não poderíamos negociar, se não fosse pelas metabarras. As velas sobre metabarras são como um coelho que um mágico tira de uma cartola vazia. Só que, no caso do coelho, trata-se de um truque inteligente para esconder um objeto pré-existente, mas as metabarras captam movimentos de preços adicionais reais (ficamos convencidos disso no artigo anterior). E estamos prestes a descobrir se esses movimentos podem ser transformados em renda adicional real.
Todas as outras configurações do Expert Advisor são exatamente as mesmas do teste da variante de uma barra. Só precisamos dimensioná-las: como o período gráfico M30 é 8 vezes menor que o H4, todos os parâmetros de entrada do Expert Advisor medidos em barras devem ser multiplicados por 8.
Os parâmetros que diferem do teste de uma barra estão marcados em negrito.
Período gráfico M30 (mas, devido às metabarras, é simulado como se fosse H4 e seus arredores).
Parâmetro do EA | Início | Etapa | Stop |
---|---|---|---|
Candle_WidthMin | 7 | ||
Candle_WidthMax | 11 | ||
Candle_HeightPowerMin | 0.2 | 0.2 | 2 |
Candle_BodyPowerMax | 0.1 | 0.1 | 0.4 |
Candle_ShadowPowerMax | 0.1 | 0.1 | 0.4 |
Trend_WidthMin | 8 | 24 | 80 |
Trend_WidthMax | 8 | 32 | 320 |
Trend_PowerMin | 0 | 0.2 | 2 |
Trend_ChanelPowerMax | 0.5 | 0.2 | 2 |
Lots | 0.1 | ||
TakeProfit | 300 | 300 | 3000 |
StopLoss | 300 | 300 | 3000 |
Resultados do teste da estratégia de negociação no histórico
No processo de otimização do Expert Advisor com base em 5 anos de histórico, o testador de estratégias analisou cerca de 5 mil variantes de configurações e construiu um gráfico mostrando o resultado obtido pelo Expert Advisor em cada uma das variantes. Podemos colocar esses gráficos do EA de barra única e do EA de metabarra lado a lado, alinhando-os pela escala vertical (fator de recuperação):
Todos os resultados da otimização dos Expert Advisors de barra única (esquerda) e metabarra (direita)
Esses gráficos mostram que o EA obteve melhores resultados gerais com a metabarra.
Mas essa é apenas uma conclusão preliminar e muito rudimentar. Vamos exportar os resultados da otimização para um programa externo (por exemplo, Excel) para uma análise mais detalhada. Se calcularmos quantos negócios o Expert Advisor realizou com diferentes variantes de configurações, encontraremos essa dispersão:
Tipo de vela | Nº de negócios (corrida única do EA pelo histórico de treinamento) | ||
---|---|---|---|
Mínimo | Média | Máximo | |
Barra única | 0 | 54 | 1472 |
Metabarras | 0 | 82 | 3796 |
Com base nessa amostra, só podemos julgar de forma confiável que as metabarras realmente permitem que você faça mais negócios.
Além disso, é muito cedo para julgar a rentabilidade. Afinal de contas, a amostra contém um grande número de variantes de configurações, nas quais o Expert Advisor fez pouquíssimos negócios - apenas alguns ou até mesmo um.... Por isso, por mais eficiente que seja o Expert Advisor, não podemos confiar nesse resultado, pois pode ser apenas um acaso.
Para tirar conclusões estatisticamente confiáveis, devemos deixar na amostra apenas as variantes de configurações em que o Expert Advisor fez muitos negócios. Vamos aplicar o seguinte filtro mínimo razoável à amostra:
- número de negócios >= 120 (por 5 anos, são 2 negócios por mês)
Depois disso, das cerca de 5.000 variantes de configurações, há apenas cerca de 600 para o EA de barra única e cerca de 900 para o EA de metabarra (pois ele faz mais negócios em média). Vamos usá-las para construir um único gráfico para comparar as etapas de treinamento de um EA de barra única e um EA de metabarra:
Resultados de otimização minimamente confiáveis
O gráfico mostra que, durante todo o período de treinamento, o Expert Advisor de uma barra teve um resultado ligeiramente melhor em média (como pode ser visto nas linhas de regressão). No entanto, o Expert Advisor de metabarra apresentou uma maior variedade de resultados, tanto na direção de maiores perdas quanto de maiores retornos. Isso pode ser explicado pelo fato de que foram realizados mais negócios em metabarras, e isso funcionou como uma espécie de amplificador: os Expert Advisors não lucrativos multiplicaram a perda (porque fizeram mais negócios não lucrativos), enquanto os lucrativos multiplicaram o lucro.
Dessa forma, foi o Expert Advisor de metabarra que conseguiu obter os resultados mais lucrativos. O gráfico mostra que somente ele conseguiu atingir um fator de recuperação acima de 6, e não apenas uma vez.
Agora vamos ver como os Expert Advisors com as melhores configurações se comportam nos próximos 5 anos de histórico no teste avançado (forward). No último gráfico, pudemos ver que, em média (linha de regressão), os resultados de aprendizado atingiram um valor igual a 2. Aqui, consideramos qualquer coisa acima dessa média como bons valores. Aplicaremos um filtro adicional à amostra exibida no gráfico acima:
- fator de recuperação >= 2 (em um histórico de 5 anos com um rebaixamento de 50%, isso corresponderia a um retorno anualizado de 20%).
O tamanho da amostra agora foi reduzido para cerca de 200 valores para os Expert Advisors de uma barra e de metabarra. Para todas as configurações dessa amostra, encontraremos os resultados obtidos no teste avançado e os plotaremos em um gráfico:
Teste avançado das melhores configurações obtidas durante a otimização
O gráfico do teste avançado mostra que o Expert Advisor de metabarra conseguiu manter sua liderança: ele domina entre os melhores resultados. Além disso, agora seu resultado médio é ligeiramente melhor do que o do Expert Advisor de uma barra.
E quantos negócios foram feitos por todos os Expert Advisors desse gráfico? Vamos fazer as contas:
Tipo de vela | Nº de negócios (corrida única do EA pelo histórico forward) | ||
---|---|---|---|
Mínimo | Média | Máximo | |
Barra única | 121 | 231 | 543 |
Metabarras | 122 | 352 | 1173 |
Podemos ver que os Expert Advisors foram tão ativos no teste avançado quanto no estágio de treinamento - o número mínimo de negócios coincidiu aproximadamente com o valor do filtro que aplicamos anteriormente. Os Expert Advisors da metabarra fizeram a maioria dos negócios.
Lembro que esse era o objetivo do estudo deste artigo - determinar se as metabarras permitem que você faça mais negócios (não apenas encontre mais velas) e se isso aumenta sua renda. É possível responder afirmativamente a ambas as perguntas.
Como um estudo paralelo, pode-se avaliar a eficácia da estratégia de negociação de velas Doji como um todo. Bem, o gráfico de teste avançado já respondeu a isso - os resultados de todas as estratégias são muito piores do que na etapa de aprendizado. Portanto, uma negociação realmente eficaz exigirá a criação de um sistema de negociação mais desenvolvido e/ou uma seleção mais cuidadosa das configurações ideais, períodos de tempo, pares de moedas e intervalos de histórico. Como bônus, publicarei algumas das variantes mais exclusivas das configurações do Expert Advisor que apresentaram bons resultados no gráfico de teste avançado acima:
Período gráfico | H4 | M30 | ||
Parâmetros de entrada | ||||
---|---|---|---|---|
Candle_WidthMin | 1 | 7 | ||
Candle_WidthMax | 1 | 11 | ||
Candle_HeightPowerMin | 0.4 | 2 | 1.8 | 1.6 |
Candle_BodyPowerMax | 0.2 | 0.1 | 0.2 | 0.2 |
Candle_ShadowPowerMax | 0.1 | 0.4 | 0.4 | 0.3 |
Trend_WidthMin | 1 | 80 | 80 | 80 |
Trend_WidthMax | 13 | 296 | 296 | 168 |
Trend_PowerMin | 1.6 | 0 | 0 | 0 |
Trend_ChanelPowerMax | 1.5 | 1.9 | 1.7 | 1.9 |
Lots | 0.1 | |||
TakeProfit | 900 | 300 | 300 | 300 |
StopLoss | 300 | 3000 | 1200 | 3000 |
Considerações finais
Conseguimos provar experimentalmente que o uso de velas de metabarras em vez das velas clássicas (de barra única) permite que uma estratégia de negociação faça significativamente mais negócios.
As metabarras devem ser usadas com cautela: uma estratégia perdedora se tornará ainda mais prejudicial com a realização de mais negócios. Mas uma estratégia lucrativa pode se tornar mais lucrativa.
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/12355
![Desenvolvendo um sistema de Replay - Simulação de mercado ( Parte 21): FOREX (II)](https://c.mql5.com/2/57/replay_p21-avatar.png)
![Redes neurais de maneira fácil (Parte 37): atenção esparsa](https://c.mql5.com/2/53/Avatar_NN_part_37_Sparse_Attention.png)
![Um exemplo de como montar modelos ONNX em MQL5](https://c.mql5.com/2/53/Avatar_Example_of_ONNX-models_ensemble_in_MQL5.png)
![Implementando o fator Janus em MQL5](https://c.mql5.com/2/53/Avatar_Implementing_the_Janus_factor_in_MQL5__1.png)
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso