Excellent EA en backtest ! - page 133

 

Je voulais poster mon backtest de 2005.

Les résultats sont... différents !

*EDIT

Pas mini, j'ai commencé avec 10k au lieu de 1k (je vais encore faire des tests en amont).

Je suis vraiment sceptique sur le backtesting, j'ai vu des résultats tellement énormes avec un tout petit changement.

C'est comme si vous pouviez concevoir le backtest pour une paire spécifique et une durée de temps, mais ajoutez un mois et c'est le contraire.

 

Très étrange, j'ai mis à jour les données via la fonction de téléchargement et généré un nouveau rapport.

*edit* , je voulais mentionner que c'était avec la version 200.

 

Bonjour à tous...

Voilà le rapport comparatif hebdomadaire (backtest vs compte DEMO) ;

 

Bonjour

Bonjour !

J'ai testé la version gratuite de CT trouvée dans MIG avec des résultats acceptables pour T15m, mais à 8.00, 13 et 20 GMT il y a des pertes répétées. J'ai essayé de coller la partie de la désactivation des heures de trading

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

extern int GMT=1 ; // Pour North Finance GMT = 3, Alpari GMT = 1, IBFX GMT = -1 etc.

extern int MagicNumber=123000 ; // Numéro magique -- change pour chaque paire échangée

// ----

int NoTradeHours1=25 ; // Heure de non-transaction

int NoTradeHours2=25 ; // Heure non négociable

int NoTradeHours3=25 ; // Temps non négocié

int NoTradeHours4=25 ; // Heure non négociable

int NoTradeHours5=25 ; // Temps non commercialisé

int NoTradeHours6=25 ; // Temps non négocié

J'ai également modifié la fin en ajoutant

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

//| expert start function |

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

int start()

{

GetMarketInfo() ;

CyberiaLots() ;

CalculateSpread() ;

FindSuitablePeriod() ;

CyberiaDecision() ;

VerbiageAndTimeCheck() ;

Trade() ;

SaveStat() ;

retour(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=StringConcatenate("Good Trading Hour : ", hadj, " GMT") ;

}

comment_line = comment_ver + sp + comment_time ;

si (IsTesting()==false)

Commentaire(commentaire_ligne) ;

}

Mais cela ne fonctionne pas

Quelqu'un sait comment résoudre ce problème ?

J'ai joint le CT que j'ai téléchargé, et essayé en avant au MIG avec de bons résultats sauf pour )8,13,20 GMT

Est-ce que qqn peut poster la dernière CT utilisée

Merci

Paco

Dossiers :
 

Ok, j'ai trouvé des paramètres idéaux avec CT. Il y a quelques variables dans le code de risque qui ne sont pas configurées correctement. L'idée a été inspirée des versions ultérieures en utilisant le tableau de risque exporté vers excel mais en fait, il n'est pas nécessaire de trouver des valeurs absolues, seulement des valeurs relatives ! Les valeurs absolues changeront en fonction des conditions du marché mais les valeurs relatives au risque d'ouverture ou de fermeture des transactions sont ce que nous voulons.

J'ai maintenant 3 variables externes simples qui peuvent être facilement modifiées sur la base de la très ancienne version 1.85f, à mon avis les versions ultérieures ont empiré les choses.

J'utilise NorthFinance pour les tests et les démos en raison de leurs spreads de 2 pip presque toujours fixes. (peut changer dans des conditions extrêmement rares) D'autres comme IB et FDD allant large peut littéralement perdre un massif 60% de vos gains annuels !!!

extern double closemultiplier = 1.5 ; Cette valeur modifie le profil de risque sur les ordres de fermeture. Le risque de fermeture doit toujours être inférieur à celui de l'ouverture. Cette valeur est inférieure à l'ouverture mais supérieure aux constructions par défaut. En d'autres termes, nous avons peur d'entrer sur le marché mais sommes pétrifiés à l'idée de perdre nos gains :) Parfois, cela semble un tel gaspillage lorsque le marché avance de 50 pips supplémentaires, mais mes études ont montré que vous devez être extrêmement prudent pour que cela fonctionne.

extern double openmultiplier = 1.7 ; Cette valeur change le profil de risque pour les trades d'ouverture. Elle est supérieure à celle de la fermeture, donc en d'autres termes, nous ne recherchons que des entrées "sûres". La valeur 1.0 représenterait toutes les autres constructions et j'ai augmenté la probabilité et réduit le risque. Le compromis est de réduire le nombre de transactions. Si la valeur est trop élevée, vous pouvez passer plusieurs jours sans transactions, mais le facteur de profit augmente considérablement.

extern double StopBias =1.1 ; Cette valeur augmente le positionnement relatif pour le stop loss automatique. Comme le stop loss doit être fonction de la volatilité du marché, n'utilisez PAS de stop fixe. Un stop de 20 aurait pu convenir en août, mais certainement pas maintenant, alors que l'ATR dépasse largement les 100 sur l'euro. Par conséquent, dans la mesure du possible, les stops doivent être fonction des conditions actuelles du marché. Le stop loss automatique utilise les dernières barres et calcule l'ATR plus le spread. Cela signifie que les stops sont juste à l'extérieur de l'enveloppe de bruit, ce qui est exactement là où nous voulons qu'ils soient. L'optimiseur GA a constaté qu'une légère augmentation par rapport à la valeur par défaut de 1 empêche les arrêts de claquer et de prendre ces pertes vraiment ennuyeuses de seulement 2 ou 3 pips lorsque les limites de l'enveloppe de bruit sont testées.

Je n'utilise le CCI que comme un filtre, rien d'autre, plus vous en mettez, plus les choses se dégradent, parce que sans quelque chose de retardé, nous ne pouvons pas déterminer un historique sur lequel travailler. Oubliez l'utilisation de filtres horaires ou de filtres de temps de news et ou de trailing stops, la majeure partie du moteur de CT est déjà là, mais pas tout à fait au point. De nombreuses transactions rentables ont lieu pendant les nouvelles. Essayez d'utiliser des décisions relatives et des % de quelque chose plutôt que des valeurs absolues.

Mon risque sur les lots est de 0,4 et le nombre maximal de lots est passé à 99. Ne pas limiter à 10, quel est l'intérêt de limiter les gains lorsque la plupart des courtiers permettent 100 lots en automatique ?

Je vous laisse réfléchir à tout cela et voir ce que vous allez trouver :)

Du 1er janvier à aujourd'hui.

Barres en test 49504

Ticks modélisés 1246996

Qualité de la modélisation 90.00%.

Dépôt initial 10000.00

Bénéfice net total 97985.55

Bénéfice brut 224608.37

Perte brute -126622.82

Facteur de profit 1.77

Gain attendu 176.23

Pertes absolues 953.60

Pertes maximales 18422.75 (17.57%)

Drawdown relatif 32.86% (5034.65) respectable compte tenu des gains énormes.

Total des transactions 556

Positions courtes (% gagnées) 256 (89.45%)

Positions longues (% gagné) 300 (94.00%)

Transactions gagnantes (% du total) 511 (91.91%) très satisfaisant taux de réussite de plus de 90%.

Transactions perdantes (% du total) 45 (8.09%) Ne perd pas très souvent.

Le plus grand

transaction bénéficiaire 3894.00

transaction perdante -11830.00

Moyenne

transaction bénéficiaire 439.55

perte de transaction -2813.84

Maximum

gains consécutifs (profit en argent) 74 (19719.35)

pertes consécutives (perte en argent) 3 (-2841.40)

Maximal

gains consécutifs (nombre de gains) 33358.89 (33)

Perte consécutive (nombre de pertes) -11830.00 (1)

Moyenne

gains consécutifs 13

pertes consécutives 1

 

Je ferme mon compte avec IBFX aujourd'hui après les avoir vu fluctuer l'eurusd jusqu'à un spread de 6 pip. Je vais ouvrir un compte avec FXDD en suivant l'exemple de Davidsx. J'espère que cela deviendra un EA utile avec un courtier qui ne fait pas autant fluctuer les spreads.

 

Joyeux Noël à moi. Mon nouveau compte est ouvert et financé @ fxdd. J'ai lancé CT avec des lots max=0.01 et j'espère voir ce modèle de gain de 75% que davidsx obtient. Ce serait génial. Je suis également encouragé d'apprendre que fxdd n'a pas de limite de temps sur les positions. Certaines des stratégies que j'ai vues exploitent mieux les positions qui ne sont ouvertes qu'une minute ou moins.

 

Désolé les gars, j'ai croisé mes fils....

J'ai posté ma dernière mise à jour de CT ici...

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

 

FXDD dispose-t-il d'un micro compte sur la démo ? Je ne le savais pas.

 
Aaragorn:
Désolé les gars, je me suis emmêlé les pinceaux....

J'ai posté ma dernière mise à jour de CT ici...

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

C'est bon de savoir que nous avons une autre version...

Je vais la tester maintenant et comparer les résultats avec la v1.93b...

A propos, 1.93b sur le compte FXDD Demo a montré une performance très similaire aux Backtests... La différence réside dans un peu moins de trades, et un peu moins de profit, ce qui n'est pas du tout inquiétant, étant donné qu'il est NORMAL pour CT d'avoir une performance médiocre pendant les fins d'année (novembre et décembre) ;

Si la 1.95 ne donne pas de meilleurs résultats que la 1.93b, je commencerai sûrement avec cette dernière sur un compte FXDD Live d'ici 2007, étant donné que ses performances ont été suffisamment bonnes pour moi.

Joyeux Noël à tous !

et bonne année si je ne poste pas d'ici là !!