Discussão do artigo "Arranquemos o lucro até o último pip" - página 14

 

Perguntaram-me (não estou expressando a pergunta). Resposta.


A tradução foi feita por iniciativa da MetaQuotes em um tempo muito curto. Presumo que tenha sido devido ao monitoramento.

No final do texto há uma conclusão não menos importante, portanto, você pode lê-la. Não há sacralidade ali, tudo é apenas negócio.


Não há sentido em recontar o artigo. Resumidamente.

  • Antes de qualquer pesquisa, é necessário adotar uma abordagem fundamentada para a escolha da fonte de dados históricos. O critério de avaliação é fornecido, incluindo o código-fonte.
  • Trabalhar com dados de ticks. Como há muitos deles, é possível aplicar a filtragem. Uma opção é sugerida com o código-fonte.
  • Explorar não apenas um símbolo, mas todos eles. Ou seja, crie embaralhamentos para otimização. Uma ferramenta pronta para essa finalidade para o MT5 está novamente disponível com o código-fonte.
  • São mostradas as armadilhas que o testador pode conter. Etapas sugeridas para configurar o testador para reduzir a probabilidade de autoengano.
  • Sugere-se escrever o TS para várias plataformas. O MT4 é tomado como referência de conveniência da API de negociação. Oferecemos um wrapper (código-fonte) dessa API para o MT5. Por analogia, é possível criar um wrapper semelhante para qualquer plataforma.
  • Discutimos a importância da expectativa da esteira e as formas de lutar por seu aumento.
  • Reflexões sobre por que a otimização futura não é desejável.
  • É enfatizada a importância da hora do dia para os padrões de mercado. É proposto um método simples para encontrar o intervalo diário ideal instantaneamente, trabalhando a partir do código-fonte. Isso acelera a otimização em ordens de magnitude.
  • Discute-se a importância da qualidade da execução por parte do corretor.
  • É oferecido um método com código-fonte para resolver o complexo problema das discrepâncias de resultados entre o real (redirecionamentos, preenchimentos parciais, falhas de conexão etc.) e o testador.
  • É explicado o motivo da dificuldade de copiar com lucro os sinais de negociação do TS com baixa matriz de expectativa.
  • Confirma-se brevemente que os MM (martins, grids etc.) não aumentam a lucratividade.
  • Sugere-se a criação de um portfólio a partir do mesmo TS. Isso é mostrado no monitoramento.
  • No exemplo de negociação real, é demonstrada a influência de derrapagens positivas de ordens limitadas no resultado geral.
  • Está provado que condições de negociação medíocres muitas vezes forçam os autores de TSs potencialmente lucrativas a jogá-las no lixo.
  • O artigo é uma apresentação clara de um caso real de descoberta de uma das TS lucrativas (até o momento) com a ajuda do kit de ferramentas de código aberto publicado anteriormente. Após esse caso, surgiu a ideia de escrever um artigo de receita com monitoramento no início. A MetaQuotes apoiou totalmente a ideia e revisou o artigo o mais rápido possível. O texto e as telas ficaram prontos em alguns dias a partir do momento em que o TS foi detectado (ele foi encontrado quase imediatamente com a ajuda do MultiTester).

Quanto maior a qualificação em escrever TCs automáticos, mais interessante é o artigo.


A resposta à pergunta "por que o autor precisa disso?"

Não tenho força de vontade para criar ferramentas de negociação apenas para mim. Quando as compartilho, obrigo-me a formular claramente meus resultados e colocá-los em um estado conveniente. Isso me ajuda.

Também recebo feedback na forma de relatórios de erros, novas ideias e sugestões. As partes interessadas entram em contato comigo e, às vezes, me dão informações úteis.

 

Setembro de 2019: +51%.


 

Um cisne negro voou para um dos oito TCs. Abaixo está o resultado em pips e parece um pouco.


Mas, às custas do MM em dinheiro, parece um pôquer normal.


Aconteceu uma situação clássica de mercado. Ele não alcançou o take profit dois pontos e recuou sem nenhuma reversão na figura.

Nas distribuições de duração, esse cisne se destaca(você pode vê-lo melhoraqui ) da seguinte forma.

Por que poderia ocorrer uma catástrofe? Porque esse é um dos conjuntos mais lucrativos no testador (e o melhor no real o tempo todo). E se apenas esse conjunto tivesse sido colocado de forma clássica, a conta teria sofrido uma redução recorde, embora o lucro pudesse ter sido muito maior.

É por causa dessas situações azaradas, quando um ou dois pontos não chegam ao fechamento, que é razoável executar um portfólio a partir do mesmo TS.

 

Real VS Tester.

Vermelho - sem deslizamento. Azul - com deslizamento.


Como nada mudou desde o lançamento, podemos comparar a diferença entre os resultados no Tester e no Real para cada TS.

A linha vermelha mostra o resultado sem deslizamentos. A coincidência para cada TS é bastante alta.

A linha azul mostra a derrapagem. Isso é um pouco incomum aqui, porque você pode ver deslizamento no testador e deslizamento no real. As linhas estão novamente muito próximas.


Deve-se levar em conta que houve redirecionamentos e interrupções de conexão (50 vezes por dia por 10 a 20 segundos cada).


Os gráficos são plotados usando Graphics.mqh por meio de Report.mqh.

 

Há duas abordagens ao configurar o TS

  1. Negociação com um lote constante.
  2. MM, como parte dos fundos livres (ou saldo).

O primeiro caso é bom porque você pode ver o valor da matriz de expectativa do padrão usado. Parece que quanto mais alta ela for, melhor. Mas quando se trata de reinvestir um TS robusto, pode acontecer de um número maior de operações pequenas ser mais favorável do que um número menor de operações maiores.

Por exemplo, em pips, o resultado pode ser o mesmo para duas passagens. Mas a passagem com um número maior de negócios pode se tornar mais favorável para o reinvestimento.


Portanto, é bom ter um critério de otimização para o reinvestimento.

Tomei como base o seguinte: qual lucratividade relativa é obtida em um drawdown relativo máximo rigidamente especificado.

Você pode ver o algoritmo de cálculo dessa rentabilidade aqui.

sinput double inMaxDD = 0.3; // Para qual drawdown máximo devo calcular o risco?

double OnTester()
{
  double SumGain, MaxDD, RF;
 
  // https://www.mql5.com/ru/forum/170953/page21#comment_13448682   
  return(GetSumGain(GetRisk(inMaxDD, 0.01, _Symbol), SumGain, MaxDD, RF, _Symbol) ? SumGain : 0);
}

Com esse cálculo, você não pode pensar em MM de forma alguma em seu TS para um testador. Tudo funcionará como se houvesse MM.


Obviamente, uma condição adicional é adicionada ao OnTester para a presença de negociações negativas e seu grande número.