Per la considerazione dei professionisti. - pagina 3

 
khorosh:
Lo scopo del tuo post è mostrare come contare correttamente il drawdown? Grazie per l'EA. Mi sembra solo che il tuo codice, se incluso in un EA reale, determinerà il drawdown per 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 mi sono sbagliato? Puoi criticare il mio codice? Esegue correttamente il suo compito di trovare il drawdown massimo?


Questo (mio) codice salva esattamente il drawdown massimo per tutto il tempo di lavoro dell'Expert Advisor, cioè non azzera le variabili max e min alla chiusura di uno o più trade, quando il capitale è uguale al saldo e non c'è un min per tutto il tempo.

L'ho scritto puramente come esempio e per mantenerlo semplice - come confronto con un tester.

Riguardo al tuo codice non è chiaro perché usarlo qui:

  if(AccountEquity()>MaxEquity) 
    {MaxEquity=AccountEquity();MinEquity=AccountEquity();}

MinEquity viene resettato.

MinEquity=AccountEquity();

Se in una situazione in cui AccountEquity() > MaxEquity non c'è la possibilità di chiudere o aprire un ordine (o più ordini) per vari motivi, tanto meno di resettare MinEquity=AccountEquity();

In generale, la stessa cosa può essere programmata in modi diversi in modi diversi, la cosa principale è il giusto algoritmo.

Se volete inserire la variabile in un vero EA, è meglio scrivere le variabili in file (con controllo).

Secondo me, il drawdown massimo e il drawdown relativo non sono presi in considerazione nel tester; ho dato un link di esempio prima.

 
serferrer:


Questo (mio) codice salva esattamente il drawdown massimo per tutta la durata dell'EA, cioè non resetta le variabili max e min alla chiusura di uno o più trade, quando l'equity è uguale al saldo e non c'è un min per tutto il tempo.

L'ho scritto puramente come esempio e per mantenerlo semplice - come confronto con un tester.

Riguardo al tuo codice non è chiaro perché usarlo qui:

MinEquity viene resettato.

Se in una situazione in cui AccountEquity() > MaxEquity non c'è la possibilità di chiudere o aprire un ordine (o più ordini) per vari motivi, tanto meno di resettare MinEquity=AccountEquity();

In generale, la stessa cosa può essere programmata in modi diversi in modi diversi, la cosa principale è il giusto algoritmo.

Se volete inserire la variabile in un vero EA, è meglio scrivere le variabili in file (con controllo).

Secondo me, il tester prende erroneamente in considerazione il drawdown massimo e il drawdown relativo, il link all'esempio che ho dato prima.

MinEquity viene resettato nel momento in cui viene aggiornato un nuovo massimo, il che significa che il minimo precedente viene superato e dopo la formazione del nuovo massimo è necessario trovare un nuovo minimo che possa dare un drawdown superiore a quello trovato in precedenza relativamente al nuovo massimo. Si noti che dobbiamo calcolare il drawdown relativo all'ultimo massimo per il minimo formato dopo questo massimo e selezionare il massimo tra questi. Vedi la conferma nei post di Integer, che anche lui pensa che questo sia corretto. Penso che questa sia la ragione per cui hai una discrepanza con il tester.

 
Serferrer, la tua variante mostrerà il drawdown sbagliato, in caso di una successione di ordini perdenti. Puoi avere 10 ordini perdenti di fila con una perdita di 100 ciascuno, e poi perderai 1000 e il drawdown massimo sarà solo 100, il che è sbagliato.
 
Integer:
Serferrer, la tua variante mostrerà un drawdown errato in caso di una serie di ordini perdenti. Puoi avere 10 ordini perdenti di fila con 100 perdite ciascuno e drenare 1000, mentre il max drawdown sarà solo 100, il che è sbagliato.


Ripeto - l'ho scritto puramente come esempio e più semplice (per chiarezza) - come confronto con il tester.

E non è in alcun modo definitivo.

Se si fa il codice finale, è necessario aggiungere molte altre caratteristiche ad esso.

 
serferrer:


Ripeto - l'ho scritto puramente come esempio e per semplicità - come confronto con il tester.

E non è in alcun modo definitivo.

Se si fa il codice finale, è necessario aggiungere molte altre caratteristiche ad esso.


Per un esempio di cosa e un confronto con cosa nel tester? Il tuo codice non calcola il drawdown del conto e non può essere usato come esempio per il calcolo del drawdown del conto e quindi non può essere usato per confrontare i calcoli del drawdown del conto nel tester.
 
khorosh:

MinEquity viene resettato nel momento in cui un nuovo massimo viene rinfrescato, il che significa che il minimo precedente viene superato e dopo la formazione del nuovo massimo è necessario trovare un nuovo minimo che possa dare un drawdown superiore al drawdown trovato in precedenza relativamente al nuovo massimo . Si noti che dobbiamo calcolare il drawdown relativo all'ultimo massimo per il minimo formato dopo questo massimo e selezionare il massimo tra questi. Vedi la conferma nei post di Integer, che anche lui pensa che questo sia corretto. Penso che questa sia la ragione per cui hai una discrepanza con il tester.


Questa è la tua opinione, la capisco e io stesso penso che non sia corretta e che il drawdown dovrebbe essere calcolato in base al prezzo dell'ordine aperto piuttosto che al massimo del capitale, ripeto:

Se per esempio in una situazione in cui AccountEquity()>MaxEquity non c'è la possibilità di chiudere o aprire un ordine(i), per varie ragioni.

 
Integer:

Per un esempio di cosa e un confronto con cosa nel tester? Il tuo codice non calcola il drawdown del conto, e quindi non può essere usato come esempio per il calcolo del drawdown del conto e quindi non può essere usato per confrontare i calcoli del drawdown del conto nel tester.


Per un confronto e un esempio chiaro, per far capire anche ai non programmatori che il tester non calcola correttamente il drawdown.

Absolute Drawdown - drawdown del saldo iniziale che mostra quanto il saldo è diminuito rispetto al valore iniziale;
Maximal Drawdown - il drawdown che mostra il massimo drawdown fissato in termini monetari (la differenza tra l'ultimo massimo e il minimo attuale); può superare l'Absolute Drawdown, mostrando l'ammontare della possibile perdita anche se il trade è positivo;
Relative Drawdown - drawdown relativo, mostra la percentuale massima di drawdown rispetto al deposito iniziale;

http://www.onix-trade.net/forum/index.php?showtopic=82146&st=0&p=342915&#entry342915

Intero:

Siete d'accordo che nel mio esempio - Drawdown massimo 1013.00 (50.85%) Drawdown relativo 50.85% (1013.00) e questo è corretto?

 
serferrer:


Per confronto ed esempio illustrativo, anche i non programmatori capiscono che il tester non calcola correttamente.

Absolute Drawdown - drawdown del saldo iniziale, che mostra quanto il saldo è diminuito rispetto al valore iniziale;
Maximal Drawdown - il drawdown che mostra il massimo drawdown fissato in termini monetari (la differenza tra l'ultimo massimo e il minimo attuale); può superare l'Absolute Drawdown, mostrando l'ammontare della possibile perdita anche se il trade è positivo;
Relative Drawdown - drawdown relativo, mostra la percentuale massima di drawdown rispetto al deposito iniziale;

http://www.onix-trade.net/forum/index.php?showtopic=82146&st=0&p=342915&#entry342915

Intero:

Siete d'accordo che nel mio esempio - Drawdown massimo 1013.00 (50.85%) Drawdown relativo 50.85% (1013.00) e questo è corretto?


No, non sono d'accordo con te in tutto e per tutto.
 
khorosh:

Spiegate dove avete trovato un parametro come il drawdown minimo, in quale rapporto. Credo che il massimo calo di equity trovato durante il test possa essere ripetuto nel trading reale, quindi penso che sia corretto contarlo dal massimo.

Mi dispiace per il drawdown minimo - errore mio. Corretto il post. Perché non ha senso calcolare il massimo prelievo di capitale su un ordine aperto in volo libero?
 
Reshetov:

Beh, se non ne hai bisogno o non capisci a cosa serve, perché unirti alla conversazione e imporre la tua opinione?
Leggere attentamente. Ho chiesto perché gli altri ne hanno bisogno, non io. Non sto imponendo la mia opinione, ho solo spiegato la logica.
Motivazione: