Per la considerazione dei professionisti. - pagina 2

 
Integer:

Le linee rosse mostrano i drawdown, devi trovare il massimo.

Perché è necessario trovare il drawdown massimo? Cosa ti dice questo?
 
Andrei01:

Il tester misura correttamente il massimo prelievo di capitale ma non tiene conto dello stato dell'equilibrio in questo momento, il che non ha senso.

In altre parole, se l'ordine aperto è salito e poi è sceso di 100 pips, il tester mostrerà un drawdown di 100 pips di equity mentre il drawdown reale che logicamente determina il rischio della strategia è uguale a zero. E' chiaro che tali calcoli sono inutili per stimare i rischi della strategia.


Andrei01:
E perché cercare il massimo drawdown? Cosa ti dice questo?
Beh, se non ne hai bisogno o non capisci a cosa serve, perché unirti alla conversazione e imporre la tua opinione?
 
Andrei01:

Il tester misura correttamente il drawdown minimo e massimo, ma non tiene conto dello stato dell'equilibrio in quel momento, il che rende questa misurazione senza senso.

Cioè, se l'ordine aperto sale e poi scende di 100 pips, il tester mostrerà un drawdown di 100 pips di equity mentre il drawdown reale che determina logicamente il rischio della strategia è uguale a zero. È chiaro che tali calcoli sono inutili per la stima del rischio strategico.

Per favore, spiegate dove avete trovato un parametro come il drawdown minimo, in quale rapporto. Non l'ho incontrato. Non credo che il saldo sia inutile per me, non mi importa se è a terra, purché la mia equità sia buona). O sto fraintendendo qualcosa? Mi è sempre sembrato che solo gli ordini pendenti possano scendere e salire. Mi sono sbagliato? Se l'avessi saputo prima, avrei iniziato ad alzare o abbassare gli ordini Sell e Buy nella direzione che mi interessava). Penso che la caduta massima del capitale trovato durante il test possa ripetersi nel trading reale; quindi penso che sia corretto contarlo dal massimo.

 
Integer:

In generale, il massimo prelievo non è la differenza tra il capitale massimo e quello minimo. All'inizio, MaxEquity=Equity, MinEquity=Equity, Drawdown=0. Se Equity>MaxEquity, calcoliamo il drawdown come MaxEquity-MinEquity. Se il valore ottenuto è superiore al drawdown calcolato in precedenza, memorizziamo il valore più alto e azzeriamo il minimo - MinEquity=MaxEquity e memorizziamo il nuovo massimo MaxEquity=Equity.
Potresti per favore modificare il codice che ho postato? Grazie.
 

Ecco come ha funzionato per me:

double MaxEq;
double MaxDD;

void DD_Init(){ // Вызываем из init
   MaxEq=AccountEquity();
   MaxDD=0;
}

void DD_Start(){ // Вызываем из start


   if(!IsTesting()){
      return;
   }      
   if(AccountEquity()>MaxEq){
      MaxEq=AccountEquity();
   }
   else{
      MaxDD=MathMax(MaxEq,MaxEq-AccountEquity());
   }
}
void DD_Deinit(){ // Вызываем из deinit

      if(!IsTesting()){
         return;
   }      
   Print("Просадка: "+DoubleToStr(MaxDD,2));
}
 
khorosh:
Potresti modificare il codice che ho postato? Grazie.


Non ho approfondito molto, ma a prima vista sembra che vada bene, con un nuovo massimo il minimo viene resettato...
 
Andrei01:
Perché cercare il massimo drawdown? Cosa ti dice questo?


Indica se il deposito, nel caso della circostanza più sfortunata (l'EA parte nel momento indicato dalla linea verde), sarà sufficiente.

 
Integer:

Non mi sono addentrato troppo, ma a prima vista sembra a posto, con un nuovo massimo il minimo viene azzerato...
Beh, se non fosse OnGoing, non avrei dubbi, dato che il risultato calcolato dal mio codice corrispondeva al risultato nel tester.
 

foto qui https://www.mql5.com/ru/forum/136747/page696

Advisor apre solo 1 trade in un certo momento (e non lo chiude), controlla il drawdown massimo nel tester - test in modalità visiva:

1. non fino alla fine del 3 febbraio (premere stop prima)

2. entro la fine del 3 febbraio

 
serferrer:

foto qui https://www.mql5.com/ru/forum/136747/page698

Advisor apre solo 1 trade in un certo momento (e non lo chiude), controlla il drawdown massimo nel tester - test in modalità visiva:

1. non fino alla fine del 3 febbraio (premere stop prima)

2. entro la fine del 3 febbraio

Lo scopo del tuo post è mostrare come calcolare il drawdown correttamente o mostrare che il tester calcola il drawdown in modo errato? Per favore, date una risposta dettagliata, non siate così laconici, non tutti qui sono professionisti. Grazie per il suggerimento. Mi sembra solo che il tuo codice, se incluso nell'EA reale, determinerà il drawdown di uno o più trade aperti dal momento dell'apertura fino alla chiusura di questi trade, ma non cercherà il drawdown massimo di tutto il tempo di lavoro dell'EA. O ho sbagliato? Puoi criticare il mio codice? Esegue correttamente il suo compito di trovare il drawdown massimo?