Non-Execution ordres sur CFD Actions IG

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #156526 quote
    MarcCh
    Participant
    Average

    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 !

    #156556 quote
    Nicolas
    Keymaster
    Master

    Taille 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 ?

    #156611 quote
    MarcCh
    Participant
    Average

    Merci 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 ?

    #156756 quote
    Nicolas
    Keymaster
    Master

    En effet, il faut bien entendu souscrire aux cours en temps réel, cela se fait simplement depuis ton interface IG (voir image jointe).

    ig-option-cours-en-temps-reel.png ig-option-cours-en-temps-reel.png
    #156772 quote
    MarcCh
    Participant
    Average

    Merci, 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)

    #156780 quote
    Nicolas
    Keymaster
    Master

    Quelle action et timeframe en particulier stp ?

    #156788 quote
    MarcCh
    Participant
    Average

    J’étais sur l’action AXA SA (Euronext). Le timeframe de la stratégie est H1, mais afin de ne pas attendre les clotures de bougie dans cette UT, les entrées et suivi de positions se font en M1.

    #157350 quote
    MarcCh
    Participant
    Average
    //DEFPARAM Preloadbars    = 300
    DEFPARAM CumulateOrders = false
    
    Capital               = 8000
    RisqueMax             = 2        // Risque max par trade en % du capital
    DistStopMin           = 0.1
    
    //Timeframe(Default)
    // -------------------------------------------------------------------------------- //
    // Déclenchement et Positionnement des niveaux
    // -------------------------------------------------------------------------------- //
    DateOpening           = 20210111 // AAAAMMJJ Ouverture différée (backtest uniquement)
    TimeOpening           = 141700   // HHMMSS
    
    ImmediateOpening      = 1        // Type d'ouverture (0:différée, 1:Immediate)
    Once StartTime        = CurrentTime
    
    StopLoss              = 20.150   // Niveau initial de Stop
    
    IF NOT ONMARKET AND ((ImmediateOpening AND CurrentTime >= StartTime) OR (NOT ImmediateOpening AND Date >= DateOpening AND Time >= TimeOpening)) THEN
    
    // ----------------------------------------------------------------------------- //
    // Calcul du Stop initial
    // ----------------------------------------------------------------------------- //
    StopValue = StopLoss
    
    DistanceStopL = abs(Close - StopValue)/PointSize  // en points
    IF DistanceStopL < DistStopMin THEN
    StopValue = Close - DistStopMin*PointSize
    DistanceStopL = DistStopMin
    ENDIF
    
    // ----------------------------------------------------------------------------- //
    // Calcul de la taille de position
    // ----------------------------------------------------------------------------- //
    PerteMax      = Round((Capital+StrategyProfit)*RisqueMax/100)
    PositionSize  = Round(PerteMax / (DistanceStopL*PipValue))
    
    IF PositionSize < 1 THEN
    PositionSize = 1
    ENDIF
    
    //GraphOnPrice StopValue Coloured (255,0,0) AS "Stop Long"
    
    BUY PositionSize SHARES AT MARKET
    SET STOP LOSS (Close - StopValue)
    
    ENDIF
    

    Voici 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 ??

    #157764 quote
    Nicolas
    Keymaster
    Master

    Il y a peut être un problème avec la taille de la position suite à ton calcul. En backtest, la taille est correct et adapté à cette action en particulier ?

    #157784 quote
    MarcCh
    Participant
    Average

    Merci 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 😉

    #157811 quote
    Nicolas
    Keymaster
    Master

    En 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.

    #157832 quote
    MarcCh
    Participant
    Average

    Oui, 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 ?

    #157836 quote
    Nicolas
    Keymaster
    Master

    Avec un prealoadbars = 0, peut être ? Je n’ai pas d’autre idée sur le pourquoi du ONCE et spécifique aux actions .. j’attends ton retour de tests.

    #157847 quote
    MarcCh
    Participant
    Average

    Avec 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 :

    IF (ImmediateOpening AND NOT ONMARKET AND NOT ONMARKET[1] AND NOT ONMARKET[2]) OR (NOT ImmediateOpening AND Date = DateOpening AND Time = TimeOpening) THEN

    La 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 ???

    #157850 quote
    Nicolas
    Keymaster
    Master

    Pour compter le nombre de positions ouvertes par la stratégie, tu crées une variable que tu incrémentes dés que tu rentres en position, tout simplement.

Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.

Non-Execution ordres sur CFD Actions IG


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
MarcCh @marcch Participant
Summary

This topic contains 18 replies,
has 2 voices, and was last updated by MarcCh
5 years, 1 month ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 01/05/2021
Status: Active
Attachments: 1 files
Logo Logo
Loading...