Placer les 3 ordres (dont 2 en attentes) en même temps svp…
Forums › ProRealTime forum Français › Support ProOrder › Placer les 3 ordres (dont 2 en attentes) en même temps svp…
- This topic has 4 replies, 2 voices, and was last updated 7 years ago by Nicolas.
-
-
11/09/2017 at 8:47 AM #52036
Bonjour,
J’ai créé ce petit code UT=5min sur base des fractales de Bill Williams (indicateur trouvé dans la bibliothèque, merci).
Le code est très simple. On achète si on casse la fractale haute et on vend à découvert si on casse la fractale basse.
Pour la sortie, l’idée est de définir un STOP LOSS sur la fractale basse au moment de la prise de position (pour une position longue) et sur la fractale haute (pour une position short) ; et de placer un TARGET PROFIT = STOP LOSS.
Voici donc mon code, qui fonctionne très bien. Sauf que…
Les 2 ordres en attente (STOP et LIMITE) ne sont placés en même temps que l’ordre de position, mais 1 chandelier + tard (ici 5 minutes)… Donc je suis “sans filet” pendant 5 minutes. Est-ce possible d’anticiper et de placer les 3 ordres (dont 2 en attentes) en même temps svp ?
D’avance merci.
GBPUSD 5MIN 8/11/20171234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768DEFPARAM CumulateOrders = False/////////// FRACTALS BILL WILLIAMS//Variable:cp = 2 //(default)if high[cp] >= highest[2*cp+1](high) thenLH = 1elseLH=0endifif low[cp] <= lowest[2*cp+1](low) thenLL= -1elseLL=0endifif LH=1 thenhil = high[cp]endifif LL = -1 thenLOL=low[cp]endif//////////////////////////////////////////////indicator1 = LOLindicator2 = hilc1 = close>indicator2c2 = close<indicator1if c1 thenFilter=1elsif c2 thenFilter=-1elseFilter=0endif// Conditions pour ouvrir une position acheteuseIF time>080000 and time<180000 and NOT LongOnMarket AND Filter=1 THENBUY 1 CONTRACTS AT MARKETA=LOLENDIF// Conditions pour fermer une position acheteuseIf LongOnMarket THENSELL AT A STOPSELL AT positionprice+positionprice-A LIMITENDIF// Conditions pour ouvrir une position en vente à découvertIF time>080000 and time<180000 and NOT ShortOnMarket AND Filter=-1 THENSELLSHORT 1 CONTRACTS AT MARKETB=hilENDIF// Conditions pour fermer une position acheteuseIf ShortOnMarket THENEXITSHORT AT B STOPEXITSHORT AT positionprice-(B-positionprice) LIMITENDIF11/09/2017 at 2:02 PM #52132Dans ce cas il faudrait mieux placer un stoploss et un takeprofit dés la prise de position (et ce sera en plus compatible avec les comptes de trading à risques limités), pourquoi ne pas utiliser un SET TARGET PROFIT et un SET STOP LOSS après la ligne 48 et 60, ces distances en valeurs en points sont facilement calculables.
11/09/2017 at 4:17 PM #52150Merci de ta réponse Nicolas.
Ca me semblait plus simple à “ma” façon… 😉
Je vais essayer un “mystop=positionprice-LOL” puis “SET STOP LOSS = mystop ; SET TARGET PROFIT=mystop ; mais de mémoire çà n’a pas bien fonctionné qunand j’ai (déjà) essayé…
11/10/2017 at 6:28 PM #52311Arghh… J’ai fait le code ci-dessous, qui fonctionne parfaitement bien en BACKTEST, mais quand j’essaie de lancer la stratégie en démo dans ProOrder Auto Trading il me met le message d’erreur suivant :
“Ce système de trading a été arrêté car il a essayé de placer un Stop ou une Limite avec un prix négatif. Merci d’ajouter des protections à votre code pour éviter la placement d’ordres possédant un prix négatif.”
Puis-je contourner cela svp ?
GBPUSD 5 MIN1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162DEFPARAM CumulateOrders = False/////////// FRACTALS BILL WILLIAMS//Variable:cp = 2 //(default)if high[cp] >= highest[2*cp+1](high) thenLH = 1elseLH=0endifif low[cp] <= lowest[2*cp+1](low) thenLL= -1elseLL=0endifif LH=1 thenhil = high[cp]endifif LL = -1 thenLOL=low[cp]endif//////////////////////////////////////////////indicator1 = LOLindicator2 = hilc1 = close>indicator2c2 = close<indicator1if c1 thenFilter=1elsif c2 thenFilter=-1elseFilter=0endif//COMPTEUR=COMPTEUR+1// Conditions pour ouvrir une position acheteuseIF time>080000 and time<180000 and NOT LongOnMarket AND Filter=1 THENBUY 1 CONTRACTS AT MARKETCOMPTEUR=0ENDIFDISTANCE=positionprice-LOL[COMPTEUR]SET TARGET PROFIT DISTANCESET STOP LOSS DISTANCE// Conditions pour ouvrir une position en vente à découvert//IF time>080000 and time<180000 and NOT ShortOnMarket AND Filter=-1 THEN//SELLSHORT 1 CONTRACTS AT MARKET//ENDIF11/13/2017 at 10:49 AM #52518Tu dois inclure les instructions pour placer les stoploss et takeprofit directement après avoir passé ton order à la ligne 51, personnellement je le coderai de cette manière :
1234567// Conditions pour ouvrir une position acheteuseIF time>080000 and time<180000 and NOT LongOnMarket AND Filter=1 THENBUY 1 CONTRACTS AT MARKETset stop loss close-LOLset target profit close-LOLCOMPTEUR=0ENDIF -
AuthorPosts