Stop suiveur non pris en compte
Forums › ProRealTime forum Français › Support ProOrder › Stop suiveur non pris en compte
- This topic has 14 replies, 3 voices, and was last updated 5 years ago by eiffel.
-
-
01/16/2019 at 11:45 AM #88769
Bonjour à tous,
Je suis nouveau ici et je me suis inscrit car après avoir acquis des codes sur Internet, j’ai eu quelques difficultés dans mon trading automatique avec IG/PRT (je suis client d’IG) et j’ai globalement décidé d’essayer de régler moi-même les problèmes liés aux codes acquis, les réponses du vendeur à mes questions n’étant pas assez “carrées” à mon goût.
Voici mon problème. Comme indiqué en objet j’ai dans certaines de mes stratégies des stops suiveurs codés de la manière suivante :
123456789101112131415161718192021222324252627282930313233// PARAMETRES STOP SUIVEURSSdebut = 63* pipsize // début du stop suiveurSSpas = 30 * pipsize // pas du stop suiveurIF NOT ONMARKET THENnewSL=0ENDIF// STOP SUIVEUR - LONGSIF LONGONMARKET THEN// passage au breakevenIF newSL=0 AND close-tradeprice(1)>=SSdebut THENnewSL = tradeprice(1)+SSpasENDIF// ajustement du stop suiveurIF newSL>0 AND close-newSL>=SSpas THENnewSL = newSL+SSpasENDIFENDIF// STOP SUIVEUR - SHORTSIF SHORTONMARKET THEN// passage au breakevenIF newSL=0 AND tradeprice(1)-close>=SSdebut THENnewSL = tradeprice(1)-SSpasENDIF// ajustement du stop suiveurIF newSL>0 AND newSL-close>=SSpas THENnewSL = newSL-SSpasENDIFENDIF// SORTIE SUR STOP SUIVEURIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPEndifProblème, alors que cette partie du code fonctionne très bien en backtest (changer les variables impacte la performance), en réel aucun stop suiveur n’apparaît sur l’écran et de même que chez IG, nul stop n’est enregistré sur la plateforme. Je précise ici que je n’ai pas un compte à risque limité chez IG, mais un compte standard car le compte à risque limité était trop contraignant pour mes stratégies. Lorsque j’ai sollicité IG concernant cette absence de stop suiveur, j’ai été renvoyé vers la documentation Trading Systems de PRT et il m’a été indiqué qu’il manque dans mon code l’instruction SET STOP TRAILING. Ma question est la suivante : dois-je comprendre que la partie de mon code concernant le stop suiveur est obsolète et que je dois recoder entièrement cette partie à l’aide d’une des 3 instructions SET STOP TRAILING de la documentation?
Merci d’avance de tout aide sur le sujet.
01/16/2019 at 11:55 AM #88774Bonjour, les sujets concernant le trading automatique sont à poster dans le forum “ProOrder”. Merci d’utiliser le bouton “insert PRT code” pour insérer du code dans un message, pour une meilleure lecture et compréhension à l’avenir.
J’analyse la question et revient vers vous.
01/16/2019 at 12:01 PM #88775IG vous a mal renseigné. L’instruction SET STOP TRAILING n’est pas obligatoire pour poser un stop suiveur, c’est bien ce que devrait faire ce code (qui par ailleurs provient de ce site).
Quelle est le timeframe employé par la stratégie ? Quel instrument ? Important, y-a t’il des ordres rejetés dans la liste des ordres dans la plateforme ou dans l’interface IG ?
01/16/2019 at 12:28 PM #88777Bonjour Nicolas,
Merci de vos réponses, je veillerai à l’avenir à poster au bon endroit.
Je note que le code est correct et vous remercie de cette information.
Mes réponses :
Le timeframe : D1
Instruments : actions du CAC40Je n’observe pas d’ordres rejetés dans la liste des ordres, cependant dans l’onglet “ordres liés”, j’observe (voir exemple attaché sur SAN) que seul le TP est renseigné. Nulle trace d’un stop suiveur, de même que sur le graphique.
01/16/2019 at 1:07 PM #88780Pour les ordres rejetés il faut vérifier dans l’onglet “Annulés / Rejetés”.
Le code n’est lu qu’une seule fois par chandelier, au Close, par conséquent le stop suiveur ne sera déplacé qu’une seule fois par période.
Concernant IG et le SET STOP TRAILING, ils avaient raison sur le fait que celui-ci est contenu par leur serveur et qu’il fonctionne en autonomie et donc intra-bar. Cependant celui-ci n’est pas autorisé sur des comptes à risques limités, d’ou la version codée que vous employez.
01/16/2019 at 1:44 PM #88794Oui, j’ai bien regardé tous les onglets et notamment l’onglet “annulés-rejetés” et dans cet onglet, je n’ai aucun ordre rejeté ou annulé lié aux ordres sur cette stratégie. Les seuls ordres que j’ai de rejetés sont des tentatives de mes algos d’ouvrir des positions à l’ouverture qui se voit rejeter avec mention “ce marché est maintenant fermé”. C’est comme cela notamment qu’IG m’a dernièrement exécuté un ordre à 9h et 31 secondes au lieu de 9h. Mais s’agissant de la stratégie utilisant le stop suiveur mentionné, aucun ordre annulé ou rejeté.
Je comprends en effet que s’agissant du stop suiveur celui-ci serait déplacé en clôture une fois par jour puisque la stratégie est en D1. Mais mon sur mon graphe nada, dans les ordres en attente nada, sur la plateforme IG nada, aucun stop nulle part depuis l’entrée en position du 17 décembre. Et ce n’est pas la seule position ainsi. Je reprécise si c’est utile que mon compte est standard et non un compte à risque limité.
Je note par ailleurs dans les options de Trading, un message qui suscite mon interrogation (voir deuxième pièce attaché). Ce message pourrait-il être la source du problème? Je précise que je bénéficie bien chez IG des cours en temps réel de niveau 1 sur les actions Euronext.
Merci Nicolas de votre aide.
01/16/2019 at 2:20 PM #88808Cette option n’a rien à voir, elle n’est utile que pour les ordres manuels.
Hormis en ayant plus de visibilité sur la stratégie elle même, je ne vois pas pour le moment. En backtest sur SANOFI, c’est fonctionnel et en live la distance au stop minimum pour cet instrument chez IG est de 23 points (voir image). Cela pourrait toutefois poser problème pour les stops suiveurs mais pas pour le premier déplacement (mis à pseudo breakeven du stop, puisque 63-30 = 33 et donc éloigné de plus de 23 points), donc même si le premier déplacement n’a pas été réalisé, il y a un problème inconnu pour moi.
01/16/2019 at 2:38 PM #88811Si vous estimez avoir besoin du code entier Nicolas, je peux le mettre. Je ne l’ai pas fait jusqu’à présent par respect pour le vendeur et puis aussi parce que le reste du code n’a rien à voir avec le stop suiveur. Mais bon allons-y :
Swing SAN D112345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667Defparam cumulateorders = false// TAILLE DES POSITIONSREINV = 0LEVIER = 1CAPITALinit = 10000IF REINV = 0 THENn = (CAPITALinit / close) * levierELSIF REINV = 1 THENcapital = (CAPITALinit + strategyprofit)n = (capital/close) * levierENDIFn = round(n)// LONGCa1 = close CROSSES UNDER Average[12](close)Ca2 = Average[80](close) > Average[80](close[15])IF Ca1 and Ca2 THENBUY n SHARES AT MARKETSet target %profit 2.13ENDIF// COURTCv1 = close CROSSES OVER Average[22](close)Cv2 = Average[33](close) < Average[33](close[6])IF Cv1 and Cv2 THENSELLSHORT n SHARES AT MARKETSet target %profit 2.82ENDIF//SORTIE COURT SUR RETOURNEMENT DE TENDANCEIF SHORTONMARKET and close crosses over BollingerUp[7] THENEXITSHORT AT MARKETENDIF//SORTIE LONG SUR RETOURNEMENT DE TENDANCEIF LONGONMARKET and close crosses under BollingerUp[10] THENSELL AT MARKETENDIF// PARAMETRES STOP SUIVEURSSdebut = 63 * pipsize // début du stop suiveurSSpas = 30 * pipsize // pas du stop suiveurIF NOT ONMARKET THENnewSL=0ENDIF// STOP SUIVEUR - LONGSIF LONGONMARKET THEN// passage au breakevenIF newSL=0 AND close-tradeprice(1)>=SSdebut THENnewSL = tradeprice(1)+SSpasENDIF// ajustement du stop suiveurIF newSL>0 AND close-newSL>=SSpas THENnewSL = newSL+SSpasENDIFENDIF// STOP SUIVEUR - SHORTSIF SHORTONMARKET THEN// passage au breakevenIF newSL=0 AND tradeprice(1)-close>=SSdebut THENnewSL = tradeprice(1)-SSpasENDIF// ajustement du stop suiveurIF newSL>0 AND newSL-close>=SSpas THENnewSL = newSL-SSpasENDIFENDIF// SORTIE SUR STOP SUIVEURIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIFJe confirme que pour moi aussi, cela fonctionne très bien en backtest. Et je peux vous confirmer Nicolas que je respecte toujours les distances minimales communiquées par IG, donc le problème ne vient pas de là. Je vous laisse m’indiquer si à la visibilité du code vous pouvez identifier la source du problème. A défaut je reviendrai vers IG, le problème étant qu’IG m’indique ne pas pouvoir m’aider sur mon code hormis m’indiquer que je dois mettre SET STOP TRAILING, mais globalement je sens bien que mes interlocuteurs ne maîtrisent pas et je n’ai pas accès directement à PRT ni aux personnes de chez IG qui maîtrisent ces sujets. Mais bon, si vous me confirmez à la vue du compte que pour vous tout est bon, je vais aller passer une soufflante à IG qui m’envoie des emails pour savoir si je suis satisfait…
01/16/2019 at 3:59 PM #88821C’est ce qui s’appelle de la SUR-SUR-SUR optimisation 🙂 Bref.
J’ai ajouté des protections dans les calculs des niveaux de stops suiveurs pour être certain que le courtier ne les rejette pas, à tester en live donc.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273Defparam cumulateorders = false// TAILLE DES POSITIONSREINV = 0LEVIER = 1CAPITALinit = 10000IF REINV = 0 THENn = (CAPITALinit / close) * levierELSIF REINV = 1 THENcapital = (CAPITALinit + strategyprofit)n = (capital/close) * levierENDIFn = round(n)// LONGCa1 = close CROSSES UNDER Average[12](close)Ca2 = Average[80](close) > Average[80](close[15])IF Ca1 and Ca2 THENBUY n SHARES AT MARKETSet target %profit 2.13ENDIF// COURTCv1 = close CROSSES OVER Average[22](close)Cv2 = Average[33](close) < Average[33](close[6])IF Cv1 and Cv2 THENSELLSHORT n SHARES AT MARKETSet target %profit 2.82ENDIF//SORTIE COURT SUR RETOURNEMENT DE TENDANCEIF SHORTONMARKET and close crosses over BollingerUp[7] THENEXITSHORT AT MARKETENDIF//SORTIE LONG SUR RETOURNEMENT DE TENDANCEIF LONGONMARKET and close crosses under BollingerUp[10] THENSELL AT MARKETENDIF// PARAMETRES STOP SUIVEURSSdebut = 63 // début du stop suiveurSSpas = 30 // pas du stop suiveurminDistance = 23ssdebut = ssdebut*pipsizesspas = sspas*pipsizemindistance = mindistance*pipsizeIF NOT ONMARKET THENnewSL=0ENDIF// STOP SUIVEUR - LONGSIF LONGONMARKET THEN// passage au breakevenIF newSL=0 AND close-tradeprice(1)>=SSdebut and close-(tradeprice(1)+sspas)>mindistance THENnewSL = tradeprice(1)+SSpasENDIF// ajustement du stop suiveurIF newSL>0 AND close-newSL>SSpas and close-newsl>mindistance THENnewSL = newSL+SSpasENDIFENDIF// STOP SUIVEUR - SHORTSIF SHORTONMARKET THEN// passage au breakevenIF newSL=0 AND tradeprice(1)-close>=SSdebut and (tradeprice(1)-sspas)-close>mindistance THENnewSL = tradeprice(1)-SSpasENDIF// ajustement du stop suiveurIF newSL>0 AND newSL-close>SSpas and newsl-close>mindistance THENnewSL = newSL-SSpasENDIFENDIF// SORTIE SUR STOP SUIVEURIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF1 user thanked author for this post.
01/16/2019 at 4:37 PM #88834Merci Nicolas, je reviendrai sans faute pour dire ce qu’il en est dès que je pourrai l’utiliser (je dois attendre de sortir de la position en cours) que cela fonctionne ou pas. Bien vu le rajout de la condition de la distance minimum. Nous verrons si ces changements sont de nature à régler le problème. Si oui, je réutiliserai cette approche de stop suiveur sur d’autres stratégies utilisant également cette approche, si non, il me faudra comme je l’évoquais trouver un interlocuteur efficace côté IG.
Bref, merci encore Nicolas et je reviens dès le prochain ordre exécuté.
01/16/2019 at 5:51 PM #8884001/16/2019 at 9:02 PM #88853Ok, c’est noté. Bonne soirée.
08/07/2019 at 10:24 AM #104340Bonjour,
avez-vous trouvé une explication ? un contournement ? une résolution de la part d’IG ?
J’ai déjà contacté IG pour plusieurs bugs différents sur les backtests, mais ils n’y a pas de suivi (les tickets restent ouverts et même après 6 mois ils ne recontactent pas, des bugs restent…)
J’aimerai bien croiser nos expériences en messages privés, mais je ne sais pas si cette plateforme le permet.
Bonne continuation !
08/07/2019 at 12:19 PM #104347Bonjour Nicolas,
Pouvez-vous s’il vous plaît retirer toutes les parties de code que j’ai partagées dans ce post à la recherche d’une solution? Merci d’avance. Pour compléter, parce que j’avais indiqué que je ferai un retour, j’ai abandonné ponctuellement cette stratégie pour me concentrer sur des stratégies appliquées au Dax. Du coup, je ne sais même pas si l’approche proposée fonctionne, mais il faut aussi la supprimer car le code est copyrighté. Merci beaucoup Nicolas.
Bonjour Eiffel,
Le site ne semble pas permettre de se contacter directement, mais je vais tenter de répondre à vos questions. Donc, pas de recherche de contournement pour l’instant, car je suis parti sur des stratégies concentrées sur le Dax avec des stops en dur, préférant abandonner dans l’immédiat le trading algorithmique sur CFD actions car déçu de l’exécution par la plateforme IG. Pour autant, je reviendrai bien un jour vers cette problématique de stop suiveur, c’est certain. A votre message je comprends que vous êtes client IG, le mieux pour les problématiques de code étant d’être client PRT/CFD car clairement IG fait au mieux passe plat quand il s’agit du code d’un algorithme PRT. Je peux en parler d’autant plus que j’ai personnellement deux comptes, l’un en direct chez IG, l’autre chez PRT. S’agissant d’IG, il ne faut pas hésiter à les relancer par téléphone. De même pour PRT d’ailleurs. Je pense que c’est essentiel pour repasser sur le dessus de la pile… Bref, du courage et des contacts par téléphone après avoir exposé le problème par email, voilà comment j’avance avec ces deux acteurs. Si vous souhaitez des réponses spécifiques, n’hésitez pas à indiquer quels sont les problèmes spécifiques que vous rencontrez.
08/07/2019 at 9:58 PM #104374Bonjour TradingFred,
je suis effectivement client IG. J’ai identifié bien trop de bugs sur PRT, principalement dans l’exécution du code de backtest.
Pour la plus part j’ai fait un retour à IG. Pour certains j’ai relancé plusieurs fois, surtout pour un problème avec proOrder qui s’est bloqué pendant des mois. En fait, cela n’aboutit pas… En ce qui concerne le problème avec proOrder, j’ai eu assez rapidement un message me disant qu’ils arrivaient à le reproduire. Par contre, je n’ai jamais eu de déblocage de ma situation ni dédommagement des pertes liées à la non exécution des ordres.
Pour certains bugs j’ai un contournement en modifiant le code par un code équivalant (mais que le système arrive à exécuter normalement). Pour d’autres bugs je n’ai pas de solution… Du coup j’ai un peu abandonné la programmation avec PRT vu tous les problèmes et l’absence de corrections.
J’ai aussi des idées d’améliorations qui sont toutes simples à réaliser mais très utiles pour l’utilisateur, mais de dépit je n’en ai même pas fait part à IG 🙁
Probablement que si je veux tenter à nouveau des choses, je passerai en direct par PRT.
-
AuthorPosts
Find exclusive trading pro-tools on