Bonjour je suis très nouveau sur prorealtime et j’ai besoin d’aide pour finir et continuer à améliorer mon système.
(simple croisement sur un TF.20 secondes)
mon objectif est de viser petit mais profitable j’ai encore assez de bons résultats mais ma condition de sortie me fait perdre énormément
C’est pour quoi je me tourne vers vous car je suis à la recherche d’un stop à multiples palier
(si 5$ de profit déplacement du stop à 1$) si 15=5 / 25=15 / 40=30 etc…
Ou ci vous avez une autre idée comme conditions de sortie je suis au preneur
Je vous partage mon code si cela peut aider
merci énormément pour avoir pris le temps de lire ce poste et merci à celui qui pourra m’aider
ps. excusez-moi si je ne suis pas dans le bon groupe
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
noEntryBeforeTime = 060000
timeEnterBefore = time >= noEntryBeforeTime
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 223000
timeEnterAfter = time < noEntryAfterTime
// simple croisement
// Conditions pour ouvrir une position en vente à découvert
indicator1 = HullAverage[800](close)
indicator2 = Average[600](close)
c1 = (indicator1 CROSSES UNDER indicator2)
IF c1 AND timeEnterBefore AND timeEnterAfter THEN
SELLSHORT 0.5 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
indicator3 = HullAverage[800](close)
c2 = (close CROSSES OVER indicator3)
IF c2 THEN
EXITSHORT AT MARKET
ENDIF
// Stops et objectifs
SET STOP pLOSS 20
//-------------------------------------------------------- DAX TF.20 secondes MAA le 25.06.22
// ---------------Simple stratégie de croisement
//
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille
// d’une position avant l'heure spécifiée ==> timeEnterBefore ==> 06h00
//
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille
// d’une position après l'heure spécifiée ==> timeEnterAfter ==> 22h30
//
//
// Indicateur N°1 ==> Moyenne Mobile HULL ==> 800 Périodes
// Indicateur N°2 ==> Moyenne Mobile Simple ==> 600 Périodes
//
//
//--------------- Conditions pour ouvrir une position en vente taille 0.5
//
// Moyenne Mobile HULL ==> 800 Périodes
// Croise à la hausse
// Moyenne Mobile Simple ==> 600 Périodes
//
//
//--------------- Conditions pour fermer une position en vente
// Quant le prix Croise à la hausse L'indicateur N°3 ==> Moyenne Mobile HULL ==> 800 Périodes
//
//Stop Loss 10$
Je tiens à préciser que le graf est en heikin-ashi
Je n’ai pas bien compris les paliers pour modifier le stoploss, mais voici un exemple pour modifier celui-ci en fonction du gain de ton ordre (+5 points, passer l’ordre à breakeven).
if traceprice-close >= 5*pointsize then
set stop breakeven
endif
Merci énormément pour m’avoir répondu mais voilà mon objectif serai une évolution du stop façon stop suiveur mais avec IG ce n’est pas possible alors au lieu de suivre à la traîne le prix mon objectif serai que a différents niveaux de profit je puisse déplacer mon stop alors oui une mise à BE et si une évolution serait favorable redéplacer le stop à plus 15$ de profit si le gain est a 25 et continuer le déplacement à 35$ si le gain est a 50 etc.
Ou si vous avez un bout de code que je puisse le copier et modifier suivent les différents objectifs je suis preneur
Merci énormément de prendre le temps de me répondre Salutations à vous et à la communauté
(si 5$ de profit déplacement du stop à 1$) si 15=5 / 25=15 / 40=30 etc…
Ok essayons avec ce type de code:
defparam cumulateorders=false
floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
if not onmarket then
newsl = 0
endif
if rsi[14] crosses over 50 then
buy 1.5 contract at market
set stop ploss 50
endif
if longonmarket then
ivalue = (abs(countofposition)*pointvalue)*pointsize
if floatingprofit>=15 then
newsl = max(newsl,tradeprice+ivalue*5)
endif
if floatingprofit>=25 then
newsl = max(newsl,tradeprice+ivalue*15)
endif
if floatingprofit>=40 then
newsl = max(newsl,tradeprice+ivalue*30)
endif
endif
if longonmarket and newsl>0 then
set stop price newsl
endif
graphonprice newsl
Bonjour excusez-moi de ne pas vous avoir répondu plutôt mais hélas ça ne fonctionne pas je reste avec des pertes au stop loss même si le prix est dépassé les paliers
ça fonctionne pour moi, il faut pour cela que la condition soit testée bien entendu, vu que le code est lu une seule fois par bougie, il est possible que le stoploss soit tapé car inscrit dans le carnet d’ordres avant que le code ai pu tester les différents niveaux de profit.
Sur quelle unité de temps as-tu testé ?
Dans cette version, j’ai ajouté la variable “step” qui est graphé, on voit bien que les différents niveaux qui s’enclenche: 1 puis 2 puis 3, selon l’évolution du gain, bien sûr ça peut être très rapide.
defparam cumulateorders=false
floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
if not onmarket then
newsl = 0
step=0
endif
if rsi[14] crosses over 50 then
buy 1.5 contract at market
set stop ploss 50
endif
if longonmarket then
ivalue = (abs(countofposition)*pointvalue)*pointsize
if floatingprofit>=15 then
newsl = max(newsl,tradeprice+ivalue*5)
step=1
endif
if floatingprofit>=25 then
newsl = max(newsl,tradeprice+ivalue*15)
step=2
endif
if floatingprofit>=40 then
newsl = max(newsl,tradeprice+ivalue*30)
step=3
endif
endif
if longonmarket and newsl>0 then
set stop price newsl
endif
graphonprice newsl
graph step
Bonjour / bonsoir elas je ne comprends pas pourquoi je reste avec des positions perdantes alors que de base elle était en gain ( je test le stop à multiples palier avec une simple stratégie de croisement des moyennes possibilité de le faire avec tout les TF) ceci a pour but d’avoir ce bout de code qu il me manque pour mes différentes stratégies
Quel instrument, timeframe et période afin de répliquer le problème stp?
Ton image n’a pas été uploadé, la taille était trop importante.
je test sur un graf
DAX
TF.5min
150’000 unités
le trade part sur un gain et fini par une perte
Je vois, j’ai modifié le code pour utiliser la nouvelle instruction SET STOP $PROFIT pour placer un stop profit en monnaie:
defparam cumulateorders=false
floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
if not onmarket then
newsl = 0
step=0
endif
if rsi[14] crosses over 50 then
buy 1.5 contract at market
set stop ploss 50
endif
if longonmarket then
if floatingprofit>=15 then
newsl = 5
step=1
endif
if floatingprofit>=25 then
newsl = 15
step=2
endif
if floatingprofit>=40 then
newsl = 30
step=3
endif
endif
if longonmarket and newsl>0 then
set stop $profit newsl
endif