Trader depuis maintenant un peu plus d’un an, je me penche de plus en plus vers le trading automatique. Je suis client IG et j’utilise la plateforme PRT.
Je me suis fait un petit programme sur le Dow Jones 30 qui doit encore être amélioré mais je me dis que je tiens peut être quelque chose.
Le passage d’ordre se fait en fonction de la moyenne mobile de hull 30 sur l’unité de temps 1h.
Pour le moment, en ne faisant pas de stop suiveur et de breakeven, le backtest me donne positif depuis 2015 (cf première figure). En y regardant de plus près, je me rend compte qu’un nombre non négligeable de mes trades perdant, ont été gagnant à un moment donné (cf deuxième figure), se retrouver à -200€ alors qu’on pouvait avoir 152€ de gains est des plus rageant…
Je sais qu’avec IG on ne peut pas avoir le stop suiveur “officiel” comme le stop est garanti, mais je me demande s’il est possible de coder la chose suivante :
Je prends position à l’achat au niveau N pts
Le cours monte pour passer à N+2 pts, alors on créé un stop à ce niveau là pour avoir au pire un petit quelque chose
Et ensuite déplacer ce stop par tranche de tous les 25/50/… pts
Première question : j’ai cru comprendre que le code n’est lu qu’un fois à la fin de l’UT considéré, donc il me faudrait ce stop suiveur dans une UT inférieur pour que cela marche?
Deuxième point que j’aimerais aborder ; lorsqu’on regarde le détails des ordres passés, je vois que certaines fois où le code devrait me faire prendre position, rien ne se passe. ( J’ai comme condition de prendre position si la valeur de la moyenne est supérieur à la clôture de la valeur précédente, du lundi au vendredi entre minuit et 22h45). On voit bien à la troisième figure qu’un stop a été touché le mercredi 17 juillet à 23h (flèche noir), et que les conditions sont réunies le jeudi 18 juillet à midi (flèche rouge). La valeur de la moyenne de hull est très légèrement supérieure à la clôture de la bougie de 11h (ligne verte) par rapport à la bougie de 10h (ligne rouge). D’ailleurs le dernier ordre date de la fermeture de ma position du 17 juillet à 23h, On voit aussi (quatrième et dernière figure) que le 19 juillet à 1h du matin, le code aurait du me faire acheter une position puisque les conditions sont réunies aussi, alors que mon ordre n’est finalement passé qu’à 3h du matin. De quoi cela peut venir?
D’avance merci pour votre aide.
Voici mon code des plus basique :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Définition des paramètres du code
DEFPARAMCumulateOrders=False// Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
DEFPARAMFLATBEFORE=000000
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAMFLATAFTER=224500
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
Par contre, comment fait-on pour débugger mes conditions? Je copie/colle juste le bout de code dans mon programme?
Pour les horaires personnalisé et l’affichage des données du weekend, je n’ai rien touché à cela. Je viens de regarder dans PRT, je suis sur “Commodities – CBOT” et l’affichage des données du weekend est coché.
Merci pour le trailling stop, je vais aller voir ça.
To help us continually offer you the best experience on ProRealCode, we use cookies. By clicking on "Continue" you are agreeing to our use of them. You can also check our "privacy policy" page for more information.Continue