Para a consideração dos profissionais.

 

Fala-se em drawdown máximo. Foi sugerido por alguém que o testador não estava medindo corretamente. Decidi verificá-lo. Escrevi um código e adicionei-o ao meu consultor especializado e o executei no modo de teste. Os resultados coincidiram com o testador. O código é fornecido abaixo.

Por favor, reavalie a exatidão do algoritmo e gostaria de saber se o máximo de drawdown pode ser calculado sem calcular os máximos e mínimos.

double MaxDrawDown;
int deinit() {
 Print("MaxDrawDown=",MaxDrawDown);
   return (0);
} 

start(){ 
  static double MaxEquity;
  static double MinEquity;
         double DrawDown;
  static bool flag;
 
  if(!flag)
    {
     MaxEquity=AccountEquity();
     MinEquity=AccountEquity();
     flag = true;
    } 
  if(AccountEquity()>MaxEquity) 
    {MaxEquity=AccountEquity();MinEquity=AccountEquity();}
  
  if(AccountEquity()<MinEquity) 
    {MinEquity=AccountEquity();}
  
  DrawDown=MaxEquity-MinEquity;
  
  if(DrawDown>MaxDrawDown ) 
    {MaxDrawDown=DrawDown;}
// ............остальной код советника
 

O que você quer dizer com não calcular? Durante a corrida você tinha máximo e mínimo...

O problema é que você não saberá o sorteio desta forma on-line - você terá que calculá-lo.

 
FAQ:

O que você quer dizer com não calcular? Durante a corrida você tinha máximo e mínimo...

O problema é que você não saberá o sorteio desta forma on-line - você terá que calculá-lo.

A pergunta sobre altos e baixos surgiu em conexão com o posto OnGoing, que se perguntava para que serviam os altos e baixos. Então eu pensei que talvez haja alguma outra maneira de calcular o máximo de drawdown, sem os altos e baixos? O cálculo é, em princípio, correto? E que problemas surgirão on-line? Você pode explicar por que este método não funcionará? Talvez você queira dizer que haverá problemas se houver mais de um Expert Advisor e nós não podemos especificar este código para cada um deles. Se é isso que você quer dizer, eu entendo o que você quer dizer. Ou algo mais?

 
Porque a partir do histórico (ordens) você só pode reconstruir a curva do saldo, mas a curva do patrimônio líquido você terá que sintetizar com base no número de ordens abertas em cada momento, a margem em cada ordem (moeda) e os altos / baixos do preço.
 
FAQ:
Porque você só poderá reconstruir a curva de saldo por histórico (ordens), mas terá que sintetizar a curva do patrimônio com base no número de ordens abertas em cada momento, o valor do depósito para cada ordem (moeda) e as altas ∙ baixas do preço.

Se acabamos de lançar o Expert Advisor e não há histórico, não podemos calcular o máximo e mínimo de patrimônio líquido armazenando-o em variáveis globais e calcular o atual e máximo drawdown no momento? Ou eu entendi mal alguma coisa? Ou talvez você esteja considerando uma situação em que já existe alguma história. E você quer calcular o drawdown máximo levando em conta o histórico do pedido, executando o roteiro? Então é claro. Mas se acabamos de começar a trabalhar e não há história ou há, mas queremos calcular o sorteio a partir do momento de lançar o Expert Advisor com este código, não há nada que possa nos impedir de fazer isso?

 
khorosh:

Se acabamos de lançar o Expert Advisor e não há histórico, não podemos calcular o máximo e mínimo de patrimônio líquido armazenando-o em variáveis globais e calcular o atual e máximo drawdown no momento? Ou eu entendi mal alguma coisa? Ou talvez você esteja considerando uma situação em que já existe alguma história. E você quer calcular o drawdown máximo levando em conta o histórico do pedido, executando o roteiro? Então é claro. Mas se acabamos de começar a trabalhar e não há história ou há, mas queremos calcular o saque a partir do momento em que lançamos o Expert Advisor com este código, não há nada que possa nos impedir de fazer isso?


Seria mais fácil ler as leituras do Indicador de Equidade do Cirurgião, em vez de armazenar algo em algumas variáveis.
 
Reshetov:
É mais fácil ler o Indicador de Equidade do Cirurgião do que armazenar algo em algumas variáveis.
Concordo, o código era para correr no testador, eu só me perguntava se estava contando corretamente em princípio, porque OnGoing me deu dúvidas.
 
Integer:

Não se preocupe, ele tem feito muita zombaria fora de tópico aqui, e nem mesmo dentro de tópico, mas completamente fora de tópico.
Obrigado pelo incentivo, porque eu estava começando a ter dúvidas que eu tinha entendido mal.
 
khorosh:

Fala-se em drawdown máximo. Foi sugerido por alguém que o testador não está medindo corretamente.

O testador mede corretamente o máximo de extração de capital próprio, mas não leva em conta o estado de equilíbrio neste momento, o que torna esta medida um disparate.

Em outras palavras, se a ordem aberta subir e depois cair em 100 pips, o testador mostrará um drawdown de 100 pips de equidade enquanto o drawdown real que logicamente determina o risco da estratégia é igual a zero. É evidente que tais cálculos são inúteis para avaliar os riscos estratégicos.

 
khorosh:
Obrigado pelo incentivo, porque eu estava começando a ter dúvidas que eu tinha entendido mal.


Em geral, o drawdown máximo não é a diferença entre o patrimônio líquido máximo e o patrimônio líquido mínimo. No início, Equidade máxima= Equidade, Equidade mínima= Equidade, Drawdown=0. Se Equidade>MáxEquidade, então consideramos o drawdown como MaxEquidade-MinEquidade, se o valor obtido for maior que o drawdown calculado anteriormente, memorizamos o valor maior e reiniciamos o mínimo de uma vez - MinEquidade=MáxEquidade e memorizamos o novo máximo MaxEquidade=Equidade.
 

As linhas vermelhas mostram os drawdowns, você precisa encontrar o máximo.