1 seule position par conditions réunies
Forums › ProRealTime forum Français › Support ProOrder › 1 seule position par conditions réunies
- This topic has 4 replies, 2 voices, and was last updated 5 years ago by Taylor.
-
-
11/07/2019 at 11:16 AM #112304
Bonjour à tous,
Toujours en développement de mon système, je stagne sur un point : ne permettre qu’une seule prise de position quand les conditions sont réunies (ce qui peut prendre plusieurs bougies de décalage). Ces conditions sont le croisement d’un indicateur dans le sens d’une tendance prédéfinie par des moyennes mobiles (ou l’inverse, l’indicateur en tendance et les MM qui se croisent dans ce même sens haussier ou baissier).
——————————————-
Pour n’avoir qu’une prise de position, jusqu’alors j’ai paramétré le système pour qu’il ne se déclenche que lorsque toutes ces conditions sont réunies LORS DUDIT CROISEMENT (possible sur une seule bougie évidemment).
Mais comme je veux rajouter maintenant une condition d’écartement minimal des MM ou du signal de l’indicateur afin d’améliorer le système et de le rapprocher de ce que je fais en manuel, il se peut que lors du croisement, l’écartement renseigné ne soit pas encore atteint. Cela peut-être le cas seulement 2 ou 3 bougies plus tard par exemple.
>> Dans ce cas, mon premier paramétrage ne fonctionne plus puisqu’il était basé sur des conditions réunies sur une seule et même bougie dans le timeframe défini.
——————————————
Du coup, comme je n’arrivais pas à trouver un code pour limiter le nombre de position pouvant être prise par setup (je n’en ai trouvé que pour 1 position par jour…), j’ai eu l’idée suivante :
1234567891011121314151617181920// indicateur1 =// c1 =// c2 =// etc...(liste des mes conditions et indicateurs)// sachant que, pour l'exemple, c1 = croisement des MM dans la tendance de l'indicateur // c2 = valeur d'écartement requis des MM et de l'indicateur pour passer un trade// Réinitialiser la situation après chaque tradeIF NOT ONMARKET THENtrade=0ENDIF// Gérer le déclenchement des positions seulement après un (1er ou nouveau) croisementIF trade=0 AND c1 THENresult=1ENDIF// Validation de l'écartement minimum requis pour prendre effectivement une position // Déclenchement effectif d'un tradeIF result=1 AND c2 THENBUY 1 contract at marketENDIFPour moi ce code permettait, après chaque trade, de revenir à la condition initiale d’une première étape de croisement puis d’une condition d’écartement (cette dernière étant possiblement plus éloignée dans le temps/bougies de l’étape du croisement).
Mais le système continue de prendre X positions tant que les MM et l’indicateur sont en tendance après un croisement, au lieu d’1 seule et d’attendre ensuite un nouveau croisement.
Quelqu’un aurait une suggestion pour que ce code fonctionne (ou pourquoi il ne fonctionne pas, ce serait déjà un début !) ?
Merci d’avance pour votre aide 🙂
11/07/2019 at 12:40 PM #112314Lorsque ta condition d’écartement est respectée (soit X bougies après un croisement), tu peux tester dans l’intervalle X (à déterminer en quantité de périodes donc) si un croisement a eu lieu, soit:
12345678910X = 3bullcross = average[7] crosses over average[20]if ecartementOK thentest = summation[X](bullcross)>0 //test dans l'intervalle X si un croisement haussier a eu lieuendifif test thenbuy at marketendif11/08/2019 at 11:52 AM #112405Bonjour Nicolas et merci de votre réponse.
Je viens de tester le code, j’ai quelques problèmes car ayant plusieurs conditions (2 d’écartements et 3 cas possibles de croisements) il ne m’en exécute qu’une et partiellement. Au pire, ce serait juste un problème d’écriture, mais le problème que je vois surtout à cela, c’est que de toute façon le système prendra toujours plusieurs trades avec :
En UT5, je prévois de comptabiliser au moins 5 à 10 bougies de marge pour permettre de réunir toutes mes conditions. Or, si j’ai bien un croisement disons à la bougie 3, avec le bon écartement, le système va prendre le trade mais reprend également un trade si ces mêmes conditions sont toujours réunies en bougie 4.. et ce jusqu’à la bougie 10 (ou max que j’aurais paramétré).
Pour mon taux de réussite il est impératif que je n’ai qu’un trade par croisement, et que ce trade intervienne seulement quand l’écartement de mes MM et de mon indicateur deviennent suffisants.
D’où l’idée de “réinitialiser” un compteur de trade après chaque prise de position.11/08/2019 at 1:46 PM #112414A ce moment là, il faut “tagger” le moment ou tu as ton croisement de moyennes mobiles, puisque c’est lui le point de départ. A chaque nouvelle position vérifie que ce numéro de barre n’est pas le même que celui que tu as utilisé lors de ton dernier passage d’ordre, soit:
123456789101112131415X = 3bullcross = average[7] crosses over average[20]if bullcross thenbullbar=barindexendifif ecartementOK thentest = summation[X](bullcross)>0 //test dans l'intervalle X si un croisement haussier a eu lieuendifif test and bullbar>buybar thenbuy at marketbuybar=bullbarendif11/08/2019 at 4:41 PM #112428Merci Nicolas, ça semble fonctionner !
Je vais tester ce week-end avec mon système entier car là je n’ai que le temps de faire un essai sommaire, mais le déclenchement a l’air bon a priori. Très bonne nouvelle pour finir la semaine si ça résout mon problème. Je partagerai avec la communauté si j’arrive à quelque chose de concluant 🙂 -
AuthorPosts
Find exclusive trading pro-tools on