Ottimo EA in backtest! - pagina 133

 

Volevo postare il mio backtest del 2005

I risultati sono... diversi!

*EDIT*

Non mini, ho iniziato con 10k invece di 1k (ancora in fase di forward test)

Sono davvero scettico sul backtesting, ho visto risultati così grandi con un cambiamento molto piccolo.

È come se si potesse progettare il backtest per una coppia e una durata specifica, ma se si aggiunge un mese è il contrario.

 

Molto strano, aggiornato i dati tramite la funzione di download e generato un nuovo rapporto.

*edit* , volevo dire che questo era con la build 200

 

Ehi, gente...

Ecco il rapporto comparativo settimanale (backtest vs. conto DEMO);

 

Ciao

Ciao!

Ho provato la versione gratuita di CT trovata in MIG con risultati accettabili per T15m, ma alle 8.00, 13 e 20 GMT ci sono perdite ripetute. Ho provato a incollare la parte di disabilitazione delle ore di trading

extern string TimeTradeHoursDisabled="08,13,20"; // Esempio "00,01,02,03,04,05" GMT

extern int GMT=1; // Per North Finance GMT = 3, Alpari GMT = 1, IBFX GMT = -1 ecc.

extern int MagicNumber=123000; // Magic Number -- cambia per ogni coppia scambiata

// ----

int NoTradeHours1=25; // Tempo di non negoziazione

int NoTradeHours2=25; // Tempo non scambiato

int NoTradeHours3=25; // Tempo non scambiato

int NoTradeHours4=25; // Tempo non scambiato

int NoTradeHours5=25; // Tempo non scambiato

int NoTradeHours6=25; // Tempo non scambiato

Ho anche modificato la fine aggiungendo

//+------------------------------------------------------------------+

//| funzione di inizio esperto |

//+------------------------------------------------------------------+

int start()

{

GetMarketInfo();

CyberiaLots();

CalcolaSpread();

FindSuitablePeriod();

CyberiaDecisione();

VerbiageAndTimeCheck();

Commercio();

SalvaStat();

return(0);

}

int VerbiageAndTimeCheck() {

string comment_line="", comment_time="", comment_ver="";

string sp = "------------------------------\n";

comment_ver=StringConcatenate(SystemName," v. ",version,"\n");

if (StringLen(TimeTradeHoursDisabled) > 1) {

NoTradeHours1 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,0,2));

}

if (StringLen(TimeTradeHoursDisabled) > 4) {

NoTradeHours2 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,3,2));

}

if (StringLen(TimeTradeHoursDisabled) > 7) {

NoTradeHours3 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,6,2));

}

if (StringLen(TimeTradeHoursDisabled) > 10) {

NoTradeHours4 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,9,2));

}

if (StringLen(TimeTradeHoursDisabled) > 13) {

NoTradeHours5 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,12,2));

}

if (StringLen(TimeTradeHoursDisabled) > 16) {

NoTradeHours6 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,15,2));

}

int h=TimeHour(CurTime());

int hadj=TimeHour(CurTime())-GMT;

if (((hadj) == NoTradeHours1) || ((hadj) == NoTradeHours2) || ((hadj) == NoTradeHours3) || ((hadj) == NoTradeHours4) ||

((hadj) == NoTradeHours5) || ((hadj) == NoTradeHours6)) {

BlockSell = true;

BlockBuy = true;

comment_time=StringConcatenate("Bad Trading Hour: ", hadj, " GMT");

} else {

BlockSell = false;

BlockBuy = false;

comment_time=StringaConcatenata("Buona ora di trading: ", hadj, " GMT");

}

comment_line = comment_ver + sp + comment_time;

se (IsTesting()==falso)

Comment(comment_line);

}

Ma non funziona

Qualcuno sa come risolvere questo problema?

Ho allegato il CT che ho scaricato, e provato in avanti a MIG con buoni risultati tranne che per )8,13,20 GMT

Qualcuno può postare l'ultimo CT utilizzato

Grazie

Paco

File:
 

Ok ho trovato alcune impostazioni ideali con CT. Ci sono alcuni varaibili nel codice del rischio che non sono impostati correttamente. L'idea è stata ispirata dalle versioni successive utilizzando la tabella del rischio esportata in excel ma in realtà non è necessario trovare valori assoluti ma solo relativi! I valori assoluti cambieranno in base alle condizioni di mercato ma i valori relativi al rischio di aprire o chiudere trade è quello che vogliamo.

Ora ho 3 semplici extern vars che possono essere facilmente modificati basati sulla vecchissima versione 1.85f, secondo me le versioni successive hanno peggiorato le cose.

Uso NorthFinance per i test e le demo a causa dei loro spreads quasi sempre fissi a 2 pip. (può cambiare in condizioni estreme e rare) Altri come IB e FDD se si allargano possono letteralmente perdere un massiccio 60% dei tuoi guadagni annuali!

extern double closemultiplier = 1.5; Questo valore cambia il profilo di rischio sugli ordini di chiusura, il rischio di chiusura dovrebbe essere sempre inferiore all'apertura. Questo valore è inferiore a quello di apertura ma superiore a quello di default. In altre parole abbiamo paura di entrare nel mercato ma siamo pietrificati di perdere i nostri guadagni:) A volte questo sembra uno spreco quando il mercato si muove di altri 50 pips ma i miei studi hanno dimostrato che bisogna essere estremamente prudenti perché questo funzioni.

extern double openmultiplier = 1.7; Questo valore cambia il profilo di rischio per i trade di apertura. E' maggiore di quello di chiusura, quindi in altre parole cerchiamo solo entrate "sicure". Il valore 1.0 rappresenta tutte le altre costruzioni e ho aumentato la probabilità e ridotto il rischio. Il trade off è meno scambi. Troppo alto e si possono passare diversi giorni senza operazioni, ma il fattore di profitto aumenta drasticamente.

extern double StopBias =1.1; Questo valore aumenta il posizionamento relativo dello stop loss automatico. Poiché lo stop loss dovrebbe essere una funzione della volatilità del mercato, allora NON usate stop fissi. Uno stop a 20 può essere andato bene in agosto, ma certamente non ora che l'ATR è ben oltre 100 sull'euro. Quindi, laddove possibile, gli stop dovrebbero essere una funzione delle attuali condizioni di mercato. L'auto stop loss usa le ultime barre e calcola l'ATR più lo spread. Questo significa che gli stop sono appena fuori dall'involucro del rumore, che è esattamente dove vogliamo che siano. L'ottimizzatore GA ha scoperto che un leggero aumento qui rispetto al valore predefinito di 1 impedisce lo stop banging e l'assunzione di quelle perdite davvero fastidiose di soli 2 o 3 pip quando i bordi dell'involucro del rumore vengono testati.

Io uso il CCI solo come filtro, nient'altro, più ce ne metti e peggio è, perché senza qualcosa in ritardo non possiamo determinare una traccia storica su cui lavorare. Dimenticatevi di usare filtri orari o di notizie e trailing stop, il grosso del motore del CT è già lì, solo che non è ancora a punto. Molti trade redditizi avvengono durante le notizie. Cerca di usare decisioni relative e % di qualcosa piuttosto che valori assoluti.

Il mio rischio sui lotti è 0,4 e i lotti massimi sono cambiati a 99. Non limitare a 10, che senso ha limitare i guadagni quando la maggior parte dei broker permette 100 lotti in automatico?

Lascio voi ragazzi intelligenti a pensare a questo e vedere cosa ne viene fuori:)

1 gennaio ad oggi.

Barre in test 49504

Ticks modellati 1246996

Qualità di modellazione 90.00%

Deposito iniziale 10000.00

Profitto netto totale 97985.55

Profitto lordo 224608.37

Perdita lorda -126622.82

Fattore di profitto 1,77

Rendimento previsto 176.23

Drawdown assoluto 953.60

Dispersione massima 18422.75 (17.57%)

Drawdown relativo 32.86% (5034.65) rispettabile considerando gli enormi guadagni.

Totale operazioni 556

Posizioni corte (% won) 256 (89,45%)

Posizioni lunghe (% vinti) 300 (94,00%)

Operazioni in profitto (% del totale) 511 (91,91%) molto piacevole con un tasso di successo superiore al 90%.

Operazioni in perdita (% del totale) 45 (8,09%) Non perde molto spesso.

Il più grande

profitto 3894.00

perdita -11830.00

Media

di profitto 439.55

perdita -2813.84

Massimo

vittorie consecutive (profitto in denaro) 74 (19719.35)

perdite consecutive (perdita in denaro) 3 (-2841.40)

Massimo

profitto consecutivo (numero di vittorie) 33358.89 (33)

perdita consecutiva (conteggio delle perdite) -11830.00 (1)

Media

vittorie consecutive 13

perdite consecutive 1

 

Oggi chiudo il mio conto con IBFX dopo averli visti far fluttuare l'eurusd fino a uno spread di 6 pip. Aprirò un conto con FXDD seguendo l'esempio di Davidsx. Spero che questo possa ancora diventare un EA utile con un broker che non faccia oscillare gli spreads così tanto.

 

Buon Natale a me. Il mio nuovo conto è aperto e finanziato @ fxdd. Ho CT in corso ora con lotti massimi=0.01 e spero di vedere quel modello di vincita del 75% che davidsx sta ottenendo. sarebbe fantastico. Sono anche incoraggiato nell'apprendere che fxdd non ha alcun limite di tempo sulle posizioni. Alcune delle strategie che ho visto sfruttano meglio le posizioni che sono aperte solo un minuto o meno.

 

Scusate gente, ho i fili incrociati....

Ho postato il mio ultimo aggiornamento a CT qui...

https://www.mql5.com/en/forum/trading_systems

 

FXDD ha un micro conto in demo? Non lo sapevo

 
Aaragorn:
Scusate gente, ho incrociato i fili....

Ho postato qui il mio ultimo aggiornamento a CT...

https://www.mql5.com/en/forum/trading_systems

È bello sapere che abbiamo un'altra versione...

Ora la testerò e confronterò i risultati con la v1.93b...

A proposito, la 1.93b sul conto demo FXDD ha mostrato una performance molto simile ai backtest... La differenza risiedeva in qualche trade in meno, e un po' meno profitto, il che non è affatto preoccupante, dato che è NORMALE per CT avere una performance mediocre durante la fine dell'anno (novembre e dicembre);

Se la 1.95 non mostra risultati migliori della 1.93b, inizierò sicuramente con quest'ultima su un conto FXDD Live entro il 2007, dato che si è comportata abbastanza bene per me.

Buon Natale a tutti!

e buon anno nuovo se non scrivo per allora!