Bonjour,
J’expérimente depuis plusieurs jours un outils de scalp agressif basé sur Macd Zero.
Le code déclenche les positions sans soucis et lorsque les 5 premiers points ( stop mini IG) sont atteints le BE se met en place sans soucis, puis le robot est coupé par prt lorsqu’il lui est demandé alors que le prix est 10 points au dessus de remonter mon stop de 5 au dessus du BE. Je tourne le soucis en tous sens et ne comprend pas mon soucis.! voici le code:
DEFPARAM CumulateOrders = false // Cumul des positions désactivé
DEFPARAM FlatAfter = 215500
// DAX trading window
ONCE BuyTimeMorning = 080500
ONCE SellTimeMorning = 110000
ONCE BuyTimeAfternoon = 160000
ONCE SellTimeAfternoon = 171500
mylot=2+(((Strategyprofit+500)*0.0014)/21.67)
IF (Time >= BuyTimeMorning AND Time <= SellTimeMorning) OR (Time >= BuyTimeAfternoon AND Time <= SellTimeAfternoon) THEN
// Conditions pour ouvrir une position acheteuse
mymacd2min = CALL "macd 2min"
c4 = (mymacd2min = 1)
mymacd50prog = CALL "macd 50prog"
c5 = (mymacd50prog = 1)
IF c4 AND c5 THEN
BUY mylot SHARES AT MARKET
SET STOP PLOSS 20
ENDIF
// Conditions pour ouvrir une position en vente à découvert
mymacd2min = CALL "macd 2min"
c24 = (mymacd2min = -1)
mymacd50prog = CALL "macd 50prog"
c25 = (mymacd50prog = -1)
IF c24 AND c25 THEN
SELLSHORT mylot SHARES AT MARKET
SET STOP PLOSS 22
ENDIF
//************************************************************************
//trailing stop function
trailingstart = 5//trailing will start @trailinstart points profit
trailingstep = 5//trailing step to move the "stoploss"
//reset the stoploss value
IF NOT ONMARKET THEN
newSL=0
ENDIF
//manage long positions
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
newSL = tradeprice(1)+trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
newSL = newSL+trailingstep*pipsize
ENDIF
ENDIF
//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
newSL = tradeprice(1)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF
//stop order to exit the positions
IF newSL>0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF
//************************************************************************
endif
ProOrder stop la stratégie avec quel message d’erreur stp ?
voici le message sur la plateforme demo IG
le système de trading a été arrêté en raison d’un évènement externe, comme par exemple la modification d’un ordre ou d’une position ouverte par le système via une interface différente de ProOrder.
Veuillez vérifiez attentivement vos positions et vos ordres en attente.
Comme évoqué ma stratégie de scalping nécessite un BE ou Mini stop win de 0.5 a 1, si ouverture en extrême de la bougie suivante j’aimerai que le trailing parte du stop win ou BE et grappille par le pas mini soit 5pts
Te remerciant pour ton écoute favorable
Modifies-tu toi même les ordres en cour sur le graphique ou par le biais de l’interface IG ?
Bien vu nous sommes sur la meme piste !! J’ai un outil de scalping gerant mes BE qui etait connecté sur la demo via l’api IG…….je reviens vers toi sous peu
Bien apres une apres midi de test il y a une faute d’interpretation dans PRT. En effet j’ai implementé ton code sur 18 codes test, si un seul tourne l’instruction est prise, en revanche si plusieurs ordres se declenchent, plus de trace des BE…..
C’est à dire ? En ProOrder en mode démo ? sur le même instrument pour les 18 stratégies ? Merci de me donner un peu plus de détails 🙂
Absolument, différent codes mais en revanche la même partie stop loss….un çà va, plusieurs bonjour les dégâts…. je n’ose pas imaginer le drame en production….
Chaque stratégie est totalement indépendante, même si elles sont lancées sur le même instrument. Il doit forcément y avoir quelque-chose qui interagit encore sur tes ordres..
Bonjour Nicolas
Tout est rentré en ordre. Te dire pourquoi ?? j’avoue ne rien y comprendre…..mais tout marche à merveille 😉
Merci pour ton aide