Probleme de Nombre de lots sur ce code
Forums › ProRealTime forum Français › Support ProOrder › Probleme de Nombre de lots sur ce code
- This topic has 7 replies, 2 voices, and was last updated 7 years ago by Nicolas.
-
-
10/18/2017 at 5:53 PM #49861
Bonsoir,
Je suis en train de tester un code sur le Dax avec l’indicateur Supertrend.
J’aimerai que le systeme ajoute un lot en plus a chaque fois qu’un trade est perdant et des qu(un trade est gagnant on revient a 1 lot.
Cela ne marche pas tous le temps ! et je n’arrive pas a comprendre pourquoi ?!
Ci joint le code et un screen et des resultats backtest.
Par exemple, le 18/09 a 9h18 le systeme aurait du acheter 2 lots et non 4 ?!
Merci pour votre aide !
Dan
10/18/2017 at 6:44 PM #49870Merci d’ajouter le code directement dans le corps des messages, et d’uploader les images avec les posts, c’est beaucoup plus simple et rapide de vous répondre comme ça que d’ouvrir un ou plusieurs documents Word et de jongler avec des ALT+TAB .. 😐
10/18/2017 at 6:54 PM #4987410/18/2017 at 8:00 PM #49878J espere que c’est plus lisible pour vous (je n’ai pas su faire mieux !!)
Code :
Achat lot Dax Supertrend12345678910111213141516171819202122232425262728293031323334353637383940414243444546DEFPARAM CumulateOrders=trueREM AchatONCE TimeStart =090000ONCE TimeEnd =173000once OrderSize=1once ExitIndex=-2condition1 = (Time >= TimeStart)condition2 = (Time <=TimeEnd)indicator1 = closeindicator2 = SuperTrend[3,10]c1 = (indicator1 CROSSES OVER indicator2)IF CONDITION1 AND CONDITION2 THENIF c1 THENBUY OrderSize SHARES AT MARKETENDIFENDIFREM Venteindicator3 = closeindicator4 = SuperTrend[3,10]c2 = (indicator3 CROSSES UNDER indicator4)IF c2 THENSELL AT MARKETExitIndex=BarIndexENDIFIf BarIndex=ExitIndex+1 thenExitIndex=0If positionperf(1)<0 thenOrderSize=ordersize+1elseOrderSize=1EndIfendifSET TARGET pProfit 6// Stops et objectifs// Stops et objectifsREM SET STOP pLOSS B10/19/2017 at 8:23 AM #49898Merci pour le format du message, en 30 secondes j’ai pris connaissance du problème 🙂 (même si je préfère largement des images directes à des PDF … je suis exigeant !! 🙂 )
Bref, je pense que le problème vient du fait que le code de la martingale se situe en bas du code et puisque celui-ci est lu de haut en bas, une seule fois par chandelier, alors il se crée un décalage dans la taille des lots.
Donc les lignes 33 à 40 sont pour moi à placer au tout début du code (avant la prise de position en tout les cas, l’endroit où on utiliser la variable ‘OrderSize’ qui est calculé par ces lignes).
10/19/2017 at 6:51 PM #4998710/19/2017 at 7:15 PM #49988Bonsoir Nicolas,
J’ai testé en debut de code mais meme resultat.
Par contre en étudiant bien le graphique probacktest je me suis apercu que le compteur de lot s’incrementer a chaque Supertrend !
y compris hors des heures qui m’interesse a savoir 09h00-17h30. du coup si entre 17h30 et 09h le lendemain il y a eu 4 supertrend achat, le compteur redemare a 4 au lieu de 1 !!
du coup j’ai ‘englobé’ tout le code avec la condition de l’heure de trading. comme suit :
123456789101112131415161718192021222324252627282930313233343536373839404142434445DEFPARAM CumulateOrders=trueREM AchatONCE TimeStart =090000ONCE TimeEnd =173000once OrderSize=1once ExitIndex=-2condition1 = (Time >= TimeStart)condition2 = (Time <=TimeEnd)indicator1 = closeindicator2 = SuperTrend[3,10]c1 = (indicator1 CROSSES OVER indicator2)IF CONDITION1 AND CONDITION2 THENIF c1 THENBUY OrderSize SHARES AT MARKETENDIFrem return ordersizeREM Venteindicator3 = closeindicator4 = SuperTrend[3,10]c2 = (indicator3 CROSSES UNDER indicator4)IF c2 THENSELL AT MARKETExitIndex=BarIndexENDIFSET TARGET pProfit 6If BarIndex=ExitIndex+1 thenExitIndex=0If positionperf(1)<0 thenOrderSize=ordersize+1elseOrderSize=1EndIfendifendif// Stops et objectifs// Stops et objectifsREM SET STOP pLOSS BEt la ca fonctionne mieux !!
Par contre j’ai une question : si le supertrend se déclenche a 17h25 et qu’a 17h30 je suis encore ds le marché. que se passera t-il ?
merci
10/20/2017 at 7:42 AM #50019si le supertrend se déclenche a 17h25 et qu’a 17h30 je suis encore ds le marché. que se passera t-il ?
Tu autorises l’accumulation d’ordre dans ton code, donc si un nouveau signal se déclenche alors un nouvel ordre ira au marché.
En utilisant l’instruction Time tu compares l’heure du Close de la bougie, pour comparer l’heure de son ouverture il faut utiliser l’instruction OpenTime. -
AuthorPosts
Find exclusive trading pro-tools on