Backtesting avec données en ticks - page 3

 

BTW - le script dans votre fichier .rar joint. Est-ce exactement le même script que celui que vous avez posté (copier-coller) sur le forum plus tôt ?

 
mikey:

BTW - le script dans votre fichier .rar joint. Est-ce exactement le même script que celui que vous avez posté (copier-coller) sur le forum précédemment ?

Oui. Le message est un copier-coller du fichier...


À ce sujet :

Une chose tho - pas un drame majeur - mais la dernière ligne du fichier de sortie est ainsi :

2004.02.23,08:34,,,,,1

Le script suppose qu'à la fin de la dernière ligne, le fichier se termine. Dans votre cas, le fichier avait probablement un caractère de nouvelle ligne à la fin de la dernière ligne, donc la boucle n'a pas détecté une 'fin de fichier' et a continué à traiter la dernière ligne qui était en fait vide... Il existe de nombreuses façons de résoudre ce problème. Par exemple, vous pouvez ajouter une condition pour que la variable 'sclose' ne soit pas vide avant l'écriture :

if (sclose != "")     // make sure close price exists in last line processed
   FileWrite(trg_handle,output);
 

Merci, mon ami. Une petite question sur le coût du swap dans le testeur de stratégie. Est-il ajouté à la fin ou au fur et à mesure ? Je pense qu'il peut être ajouté au fur et à mesure : J'ai remarqué que pour certaines transactions : par exemple si le take profit (TP) est à 100 quand il se ferme avec un TP alors un profit de +100 n'est pas retourné mais plutôt un TP d'un montant inférieur ex. +80. Cela pourrait-il être dû à des frais de swap ajoutés à cette transaction (pour tenir compte des jours où elle a été conservée pendant la nuit - et bien sûr, avec cette méthode, nous avons plus de "nuits" que nous devrions avoir). (Les frais de swap ne seront pas trop élevés pour ma transaction de nuit car je négocie avec des lots de 0,1, mais en raison du facteur de nombreuses nuits, cela s'ajoute).

Il fonctionne toujours. Une chose que je dirais est que les résultats sont très différents de ceux obtenus avec M1. Donc, si c'est effectivement valable - cela valait certainement la peine de le faire. Cela me donne une idée beaucoup plus précise.

 
mikey:

Merci mon ami. Une petite question sur le coût du swap dans le testeur de stratégie. Est-ce qu'il est ajouté à la fin ou au fur et à mesure ? [...]

Il est ajouté exactement comme il l'est dans un compte Live/Demo. Extrait de "Testing Features and Limits in MetaTrader 4":

Tous les swaps, les exigences de marge, les expirations, les ordres GTC sont modélisés.

Notez que la valeur du swap est prise à partir du compte auquel vous êtes actuellement connecté au moment où vous appuyez sur 'Start' dans le Tester.

 

Un nouvel obstacle. Lorsque je charge dans le centre d'historique les données de 3 mois de tick (traitées comme nous l'avons fait dans ce fil de discussion - pour que chaque tick ait sa propre barre M1) - apparemment tout est ok MAIS je viens de voir ceci dans le journal :

Historybase : pas assez de mémoire '#CLX01' [8412861 barres].
Gestionnaire de mémoire : ne peut allouer 370166236 octets de mémoire.

Alors, est-ce que cela veut dire qu'il n'a pas chargé toutes les données ?

 
mikey:

Un nouvel obstacle. Lorsque je charge 3 mois de données tick dans le centre historique (traitées comme nous l'avons fait dans ce fil de discussion - pour que chaque tick ait sa propre barre M1) - apparemment tout va bien MAIS je viens de voir ceci dans le journal :

Historybase : not enough memory '#CLX01' [8412861 bars]
Gestionnaire de mémoire : ne peut allouer 370166236 bytes de mémoire.

Cela signifie-t-il que toutes les données n'ont pas été chargées ?

C'est peut-être parce que vous avez atteint la limite de 2 Go. Après avoir appuyé sur 'Start', le testeur crée un fichier FXT qui contient les ticks pour le test (dans votre cas, c'est 1 tick par barre). Ce fichier est créé dans le dossier "\MetaTrader 4\tester\history". Ouvrez ce dossier et vérifiez si le dernier fichier créé a une taille d'environ 2 Go. Si c'est le cas, vous avez atteint la limite du testeur. Il n'y a pas de solution pour cela, à part tester sur des périodes plus courtes...


Je ne suis pas sûr que ce soit la raison, cela pourrait être autre chose...

 

Le testeur fonctionne toujours quand j'ai vérifié la taille. Donc, elle peut augmenter ?

Mais quoi qu'il en soit, la taille actuelle n'est que de 412 Mo. Ce qui, je suppose, est bien en dessous de 2 GB ?

 

BTW - le journal dans lequel se trouve ce message d'erreur n'est PAS dans le testeur de stratégie, mais dans l'autre (celui du compte).

 

Je suis un peu frustré. C'est normal - je travaille sur quelque chose de nouveau et il y a forcément des problèmes.

Mais sans rapport avec ce fil de discussion, je viens de remarquer que sur une stratégie metatrader standard de base exécutée avec des données M1 correctes (donc sans rapport avec ce dont nous parlons dans ce fil de discussion) pendant 3 mois, j'ai obtenu des données pétrolières. et j'ai remarqué que le testeur de stratégie a simplement cessé d'ouvrir des transactions après environ 2 semaines. dans le code - chaque fois qu'il n'y a pas de transaction ouverte, une nouvelle transaction doit être ouverte (je n'ai jamais eu de problèmes avec cela dans le test avant). Mais le testeur de stratégie est ok pendant 2 semaines, ouvrant des trades et ensuite n'a pas de trades ouverts pendant environ 2,5 mois (malgré un profit de 5000 dollars) ! De plus, le type de résultats fournis est tellement éloigné de mes tests avancés jusqu'à présent. Des doutes commencent à s'insinuer dans mon esprit sur le moteur du testeur de stratégie metatrader, sa validité et son utilisation.

(les données ont toutes été chargées dans le testeur sans problème car la plage de dates sur le rapport est correcte).

mon rêve/objectif : Ce que j'espérais, c'est que si vous donnez au testeur de stratégie de bonnes données historiques (surtout si vous pouvez obtenir des données en tic-tac), vous obtiendrez un bon aperçu de la façon dont votre stratégie aurait réellement négocié au cours de cette histoire (slippage, variance du spread, etc. accepté). Mais maintenant, je me demande si cela est réalisable, si le moteur de stratégie peut vraiment le faire. CET OBJECTIF EST-IL RÉALISABLE AVEC METATRADER ? Quelqu'un peut me donner un peu d'espoir !

 
mikey:

BTW - le journal dans lequel se trouve ce message d'erreur n'est PAS dans le testeur de stratégie, mais dans l'autre (celui du compte).

Dans ce cas, cela n'a probablement rien à voir avec le testeur (vous pouvez voir ses journaux dans le dossier 'MetaTrader 4\tester\logs'), mais je ne peux pas en être sûr.