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 :
// 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 trade
IF NOT ONMARKET THEN
trade=0
ENDIF
// Gérer le déclenchement des positions seulement après un (1er ou nouveau) croisement
IF trade=0 AND c1 THEN
result=1
ENDIF
// Validation de l'écartement minimum requis pour prendre effectivement une position // Déclenchement effectif d'un trade
IF result=1 AND c2 THEN
BUY 1 contract at market
ENDIF
Pour 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 🙂