Non-Execution ordres sur CFD Actions IG
Forums › ProRealTime forum Français › Support ProOrder › Non-Execution ordres sur CFD Actions IG
- This topic has 18 replies, 2 voices, and was last updated 4 years ago by MarcCh.
-
-
01/05/2021 at 9:45 PM #156526
Bonjour,
Mon système de trading automatique n’ouvre pas de positions sur des CFD Actions (courtier IG) via ProOrder, alors qu’il fonctionne très bien avec les paires Forex et les Indices… !
Pas de problème en revanche en backtest.
C’est à n’y rien comprendre. Auriez-vous une explication svp ?
Merci !
01/06/2021 at 9:44 AM #156556Taille de position ? Marge requise éventuellement ? Y-a t’il des ordres rejetés dans la liste idoine ?
Au lancement d’une stratégie, il est demandé la taille de position maximale allouée à la stratégie, est-elle supérieure ou égale à celle qui est présente dans le code ?
01/06/2021 at 3:38 PM #156611Merci Nicolas pour tes pistes. Il n’y a aucune notification ou rejet d’ordre car les positions ne sont mêmes pas ouvertes. J’ai également pris soin d’indiquer une taille de position max largement supérieure aux besoins du système.
Quelque part sur Internet, j’ai lu que pour trader les CFD actions (par exemple sur Euronext) il y aurait une option (payante) “accès temps réel” à activer chez IG. Je me demande si ça ne serait pas lié à mon problème…
Cela te dit-il quelque chose ?01/07/2021 at 2:33 PM #15675601/07/2021 at 3:25 PM #156772Merci, j’ai activé l’option (Euronext) mais le système n’ouvre toujours pas de position…
Pour info, je suis en train de tester sur mon compte démo, avant de passer sur mon compte réel.
Je vois pourtant bien les chandeliers bouger (en timeframe 1 minute)
01/07/2021 at 3:54 PM #15678001/07/2021 at 5:03 PM #15678801/11/2021 at 2:44 PM #157350123456789101112131415161718192021222324252627282930313233343536373839404142434445464748//DEFPARAM Preloadbars = 300DEFPARAM CumulateOrders = falseCapital = 8000RisqueMax = 2 // Risque max par trade en % du capitalDistStopMin = 0.1//Timeframe(Default)// -------------------------------------------------------------------------------- //// Déclenchement et Positionnement des niveaux// -------------------------------------------------------------------------------- //DateOpening = 20210111 // AAAAMMJJ Ouverture différée (backtest uniquement)TimeOpening = 141700 // HHMMSSImmediateOpening = 1 // Type d'ouverture (0:différée, 1:Immediate)Once StartTime = CurrentTimeStopLoss = 20.150 // Niveau initial de StopIF NOT ONMARKET AND ((ImmediateOpening AND CurrentTime >= StartTime) OR (NOT ImmediateOpening AND Date >= DateOpening AND Time >= TimeOpening)) THEN// ----------------------------------------------------------------------------- //// Calcul du Stop initial// ----------------------------------------------------------------------------- //StopValue = StopLossDistanceStopL = abs(Close - StopValue)/PointSize // en pointsIF DistanceStopL < DistStopMin THENStopValue = Close - DistStopMin*PointSizeDistanceStopL = DistStopMinENDIF// ----------------------------------------------------------------------------- //// Calcul de la taille de position// ----------------------------------------------------------------------------- //PerteMax = Round((Capital+StrategyProfit)*RisqueMax/100)PositionSize = Round(PerteMax / (DistanceStopL*PipValue))IF PositionSize < 1 THENPositionSize = 1ENDIF//GraphOnPrice StopValue Coloured (255,0,0) AS "Stop Long"BUY PositionSize SHARES AT MARKETSET STOP LOSS (Close - StopValue)ENDIFVoici le code tout simple que j’utilise pour ouvrir une position immédiate (au lancement de la stratégie avec le niveau de Stop défini dans le code) en timeframe M1 sur mon compte Démo.
Aucune position n’est ouverte avec les CFD Actions. Cela fonctionne pourtant bien en manuel et en automatique avec le Forex et les Indices !
Je ne comprends vraiment pas ce qui ne va pas ??01/14/2021 at 10:24 AM #15776401/14/2021 at 11:13 AM #157784Merci Nicolas pour ta réponse. La taille de position est OK.
En revanche, j’ai fait plein de tests en simplifiant au maximum le code pour cerner le problème et il semble que le système ne fonctionne pas lorsque j’utilise l’instruction “Once” pour initialiser la variable qui sert au démarrage. Cela a l’air de fonctionner lorsque je n’utilise pas Once.Je vais faire d’autres essais aujourd’hui, avec plusieurs actions, pour confirmer et clore le sujet si possible 😉
01/14/2021 at 1:00 PM #157811En utilisant ONCE tu n’affectes qu’une seule fois une valeur à la variable, donc en effet si au lancement le CurrentTime n’est pas supérieur à StartTime (selon ton code ligne 20), alors il n’y aura pas de prise de position du tout.
01/14/2021 at 3:36 PM #157832Oui, c’est effectivement ce que je voulais faire : StartTime est l’heure de démarrage du système. Lorsque la ligne 20 est interprétée le nouveau CurrentTime devrait être nécessairement >= au StartTime. Une position devrait donc être ouverte à tous les coups au démarrage du Système.
Est-ce que je me trompe ?
01/14/2021 at 3:51 PM #15783601/14/2021 at 4:22 PM #157847Avec un Preloadbars = 0 c’est KO car la stratégie a besoin d’un petit historique.
Je viens de terminer mes tests et je pense que l’initialisation avec Once ne doit pas être exécutée lorsque le Timeframe est petit (ici 1 minute) et qu’il n’y a pas assez de cotation. Cela te parait-il cohérent ?
Je n’ai réussi à faire fonctionner le système (à tous les coups me semble-t-il) qu’en supprimant cette initialisation avec Once et en remplaçant la condition d’ouverture par le code suivant :
1IF (ImmediateOpening AND NOT ONMARKET AND NOT ONMARKET[1] AND NOT ONMARKET[2]) OR (NOT ImmediateOpening AND Date = DateOpening AND Time = TimeOpening) THENLa première parenthèse est pas très jolie avec les NOT ONMARKET !!! J’ai écrit cela car je voudrais que l’ouverture ne se fasse qu’une fois (au démarrage du système uniquement) et non à chaque cloture de bougie lorsque le code est relu par l’interpréteur.
Or, j’ai des cas où il n’y a pas de position ouverte, bien que l’on ne soit pas au démarrage du système, parce que l’ai fermée précédemment totalement pour la rouvrir à moitié plus loin dans le code de la stratégie (c’est la seule manière que j’ai trouvée pour faire des clotures partielles…).
Cela serait plus élégant, s’il y avait une instruction qui renverrait le nombre de positions précédemment ouvertes par le système. Ainsi, s’il était égal à 0, cela voudrait dire qu’il s’agit du premier démarrage et donc que je pourrais ouvrir une position. Je n’ai pas trouvé cette instruction ???
01/14/2021 at 4:34 PM #157850 -
AuthorPosts
Find exclusive trading pro-tools on