Déclenchement des ordres : aléatoire ?

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #201566 quote
    Xavier61
    Participant
    New

    Bonjour à tous,

    Ci-joint un code (1 minute)  -encore un  😉 – sur lequel je travaille actuellement. Il n’est vraiment pas compliqué ni long, et pourtant ma question est la suivante : vu la rédaction et la succession de mes instructions, pourquoi ce code ne déclenche-t-il pas un ordre régulièrement, c’est-à-dire dès que le système est “NOT ONMARKET” ? J’effectue des tests en réel sur un compte réel (d’où les petites positions) et je constate que parfois le système entre en position la minute suivant la clôture d’un trade (donc normal), d’autres fois il y a des plages mortes où il semble s’être mis en veille. Mon compte est chez IG, risque limité : cela vient-il de mon code ou alors du broker ? Pour le reste, le déclenchement des ordres (quand il a lieu) et le placement des stops est tout à fait exact.

    Dois-je utiliser IntradayBarIndex ? TradeIndex ? pour affiner les conditions ?

    Merci de vos retours.

    DEFPARAM CumulateOrders = true
    DEFPARAM FlatAfter = 215959
    
    SET STOP %LOSS 0.15
    
    HeureDebut = 090000
    HeureFin = 215959
    
    Plage = (time >= HeureDebut AND time <= HeureFin)
    
    //====================================================
    
    ch = close > open[7]
    cb = close < open[7]
    
    gaina = (close > TradePrice)
    gainv = (close < TradePrice)
    
    IF NOT ONMARKET AND ch AND Plage THEN
    BUY 0.5 contract AT MARKET
    ENDIF
    
    IF gaina THEN
    SELL AT MARKET
    ENDIF
    
    IF NOT ONMARKET AND cb AND Plage THEN
    SELLSHORT 0.5 contract AT MARKET
    ENDIF
    
    IF gainv THEN
    EXITSHORT AT MARKET
    ENDIF
    
    #201571 quote
    fifi743
    Participant
    Master

    bonjour,
    a c’est deux condition j’ajouterai du spread voici un exemple :
    spread=3
    gaina = (close > TradePrice-spread)
    gainv = (close < TradePrice+spread)

    #201574 quote
    Xavier61
    Participant
    New

    Merci pour la suggestion fifi743 , mais :

    1. Quel serait le but de cet ajout ?
    2. Est-ce que cela répond à ma question ?

    Merci pour ton retour.

    #201582 quote
    fifi743
    Participant
    Master

    le but est quand le trade ce ferme il soit en gain ou espérer

    #201583 quote
    Xavier61
    Participant
    New

    Ok , merci , mais les instructions des lignes 16 et 17 font clôturer toujours en gain ; sinon le trade est stoppé par le stop-loss (ligne 4)

    #201602 quote
    Xavier61
    Participant
    New

    Ou bien ta variable “spread=3” sert-elle à réduire l’effet du spread bid-ask fourni par le courtier ? Merci

    #201607 quote
    fifi743
    Participant
    Master

    la variable sert a finir positif quand ton trade n’a pas beaucoup de point

    Xavier61 thanked this post
    #201609 quote
    Xavier61
    Participant
    New

    Merci beaucoup fifi743 pour cette petite astuce 😉

    #201611 quote
    Xavier61
    Participant
    New

    Toutefois, je pose à nouveau ma question : “vu la rédaction et la succession de mes instructions, pourquoi ce code ne déclenche-t-il pas un ordre régulièrement, c’est-à-dire dès que le système est “NOT ONMARKET” ? J’effectue des tests en réel sur un compte réel (d’où les petites positions) et je constate que parfois le système entre en position la minute suivant la clôture d’un trade (donc normal), d’autres fois il y a des plages mortes où il semble s’être mis en veille. (compte IG, risque limité : cela vient-il de mon code ou alors du broker ?)”

    #201627 quote
    Nicolas
    Keymaster
    Master

    Est-ce que les conditions pour l’ouverte des ordres sont bien remplies ? (variables ch ou cb).

    En risque limité, si tu as d’autres ordres simultanée sur le même sous-jacent, alors tu ne pourras pas ouvrir d’autres trades.

    Par ailleurs, peut être que ton stoploss est trop prés du prix actuel.

    #201636 quote
    Xavier61
    Participant
    New

    Bonjour Nicolas,

    Merci pour ton retour. J’ai déjà observé et vérifié les points que tu signales. Et en effet :

    1. les variables ch et cb sont bien respectées (j’ai même créé un petit indicateur graphique basique qui montre bien si close > ou < à open[7])
    2. je ne prends pas d’autres positions sur le sous-jacent (CAC) car je sais que cela va entraver le fonctionnement du système, notamment s’il veut vendre et que je suis déjà positionné à l’achat : en ce cas, le système se bloque et s’arrête, et il faut le redémarrer manuellement (si l’on est présent devant l’écran). Or le système ne s’arrête jamais, c’est juste qu’il ne lance pas d’ordre pendant un moment d’une durée indéterminable (aléatoire).
    3. le stoploss n’a pas l’air d’être trop près, car chez IG, le système se bloquerait également et s’arrêterait, et il faudrait là encore le redémarrer manuellement.

    Je me suis demandé aussi si ce n’était pas la variable “Plage” qui gênait, mais après quelques tests, il semble que non non. Par ailleurs, il y a quelques rares moments où le système envoie quand même des ordres à la minute suivant une clôture de trade.

    Bref, cela reste un peu énigmatique. C’est dommage, car de nombreuses opportunités de trades gagnants sont ainsi perdues.

     

    D’un autre côté, je me demande toujours si PRT est capable (ou autorisé ?) de traiter une instruction du type :

    IF condition1 THEN
    SELL AT MARKET // clôture du trade en cours
    BUY 1 CONTRACT AT MARKET // ouverture d’un nouveau trade dans la foulée
    ENDIF

    c’est-à-dire enchaîner 2 ordres de sens contraire ? Le compte risque limité le permet-il aussi ?

    Merci encore et bonne journée à toi. Je reviendrai partager le code dès que ces difficultés seront résolues.

    #201647 quote
    Nicolas
    Keymaster
    Master

    Es-tu déjà au marché lorsque tu remarques qu’un ordre ne passe pas ?

    #201653 quote
    Xavier61
    Participant
    New

    Non, toujours “flat” justement, et c’est ce qui occasionne des attentes (plus ou moins longues) incompréhensibles.

    #201692 quote
    Nicolas
    Keymaster
    Master

    C’est curieux en effet.

    Voilà les choses à vérifier avant de faire un rapport “technique” via la plateforme:

    1. vérifier la liste des ordres rejetés du courtier (via la liste dans la plateforme ou dans ton relevé courtier)
    2. indiquer une taille de lot de 1 pour voir si cela change le fonctionnement

    Dans la demande de support, merci d’indiquer l’URL vers ce sujet pour une meilleur compréhension.

    Merci.

    #201845 quote
    Xavier61
    Participant
    New

    J’ai effectué les tests sur le compte démo, qui supporte moins de contraintes qu’un compte limité; les vérifications ne donnent rien de significatif :

    1. Il ne s’agit pas d’ordres annulés/rejetés : c’est juste qu’aucun ordre n’est envoyé. Cela donne l’impression que le code n’est pas lu toutes les minutes (code en TF 1 mn), mais aléatoirement une minute de temps en temps.
    2. En particulier, le code ne semble pas être lu à la clôture d’une barre si un trade a été soldé pendant cette barre.
    3. Par ailleurs, mes tests montrent aussi que PRT ne semble pas savoir à la fois fermer un trade en fin de barre et en ouvrir un autre simultanément à la même fin de cette même barre ? En particulier ce qui m’intéresse, c’est de clôturer un LONG et rouvrir aussitôt un autre LONG : cela se rédige-t-il d’une manière particulière, ou bien est-ce une autre limite du système ? J’ai testé le groupe d’instructions suivant :
    IF condition1 THEN
    SELL AT MARKET // clôture du trade en cours
    BUY 1 CONTRACT AT MARKET // ouverture d’un nouveau trade dans la foulée
    ENDIF
Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.

Déclenchement des ordres : aléatoire ?


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Xavier61 @xavier61 Participant
Summary

This topic contains 15 replies,
has 3 voices, and was last updated by fifi743
3 years, 5 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 09/28/2022
Status: Active
Attachments: No files
Logo Logo
Loading...