short long sur nasdaq; Pas plus d'un ordre? test tranche horaire

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #79098 quote
    Dr.heiser
    Participant
    New

    bonjour,

    ca y est , je me suis mis sur le back test et je teste un truc très simple:
    nasdaq 1 h:
    heiken ashi, un regression lineaire et une moyenne mobile;
    position longue: entrée : 2eme bougie verte, la regression croisse à la hausse la mm
    :sortie    : regression croise à la baisse la mm
    position courte: entrée : 2eme bougie rouge , la regression croise à la baisse la mm
    : sortie: la regression croise à la hausse la mm

    mais pb, avec l’optimisation variable , j’ai parfois une courte qui s’ouvre alors que la longue n’est pas encore fermée

    d’ou questions
    1) est ce autorisée en en pro order automatique avec stop garanti, j’ai cru lire dans un post que non?
    2) de toute façon, compte tenu des nouveaux montants de couverture, je ne veux pas ouvrir plus d’une position à la fois en sequentielle, d’ou question, comment coder que je veux pas plus d’une position, longue ou courte en meme temps?
    3) petite question sur dropdown, maintenant la couverture mini est de 5% , soit environ 350 points sur nasdaq, si mon dropdown est de 500 points sur short et 380 sur long, la logique est elle que je fixe mon stop guaranti àu dessus du dropdown pour ne pas cramer le compte, donc en prenant la valeur la plus haute, celle du short plus une securité, disons 600 points?
    4) pour simuler les meilleures tranches horaires de passage d’ordre et et d’ouverture fermeture de periode de trade,  j ai ces variables mais comment faire pour tester laisser ouvert du lundi au vendredi 24/24 le passage d’ordre, ou restreindre ou ouvertures de marché, et entre 15h30 16H30 et 20H30 21H30 meilleurs periodes pour passage ordre?

    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    DEFPARAM FLATBEFORE = 000000
    DEFPARAM FLATAFTER = 235900

    noEntryBeforeTime = 000000
    timeEnterBefore = time >= noEntryBeforeTime

    noEntryAfterTime = 235900
    timeEnterAfter = time < noEntryAfterTime

    Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 000000
    // Annule tous les ordres en attente et ferme toutes les positio3
    DEFPARAM FLATAFTER = 235900
    
    // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
    noEntryBeforeTime = 000000
    timeEnterBefore = time >= noEntryBeforeTime
    
    // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
    noEntryAfterTime = 235900
    timeEnterAfter = time < noEntryAfterTime
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Conditions pour ouvrir une position acheteuse
    c1 = (close > open)
    c2 = (close[1] > open[1])
    indicator1 = LinearRegression[LRe](close)
    indicator2 = Average[LAe](close)
    c3 = (indicator1 CROSSES OVER indicator2)
    
    IF (c1 AND c2 AND c3) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    indicator3 = LinearRegression[LRx](close)
    indicator4 = Average[LAx](close)
    c4 = (indicator3 CROSSES UNDER indicator4)
    
    IF c4 THEN
    SELL AT MARKET
    ENDIF
    
    // Conditions pour ouvrir une position en vente à découvert
    c5 = (close < open)
    c6 = (close[1] < open[1])
    indicator5 = LinearRegression[SRe](close)
    indicator6 = Average[SAe](close)
    c7 = (indicator5 CROSSES UNDER indicator6)
    
    IF (c5 AND c6 AND c7) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Conditions pour fermer une position en vente à découvert
    indicator7 = LinearRegression[SRx](close)
    indicator8 = Average[SAx](close)
    c8 = (indicator7 CROSSES OVER indicator8)
    
    IF c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    // Stops et objectifs
    SET STOP %LOSS SL
    SET TARGET %PROFIT TP

     

    merci de tout coeur
    cordialement pp

    #79151 quote
    Nicolas
    Keymaster
    Master

    Je vois que le code est créé avec l’assistant de création assistée, je ne vais donc pas intervenir dedans mais plutôt répondre à tes questions :

    1) est ce autorisée en en pro order automatique avec stop garanti, j’ai cru lire dans un post que non?

    2) de toute façon, compte tenu des nouveaux montants de couverture, je ne veux pas ouvrir plus d’une position à la fois en sequentielle, d’ou question, comment coder que je veux pas plus d’une position, longue ou courte en meme temps?

    3) petite question sur dropdown, maintenant la couverture mini est de 5% , soit environ 350 points sur nasdaq, si mon dropdown est de 500 points sur short et 380 sur long, la logique est elle que je fixe mon stop guaranti àu dessus du dropdown pour ne pas cramer le compte, donc en prenant la valeur la plus haute, celle du short plus une securité, disons 600 points?

    4) pour simuler les meilleures tranches horaires de passage d’ordre et et d’ouverture fermeture de periode de trade,  j ai ces variables mais comment faire pour tester laisser ouvert du lundi au vendredi 24/24 le passage d’ordre, ou restreindre ou ouvertures de marché, et entre 15h30 16H30 et 20H30 21H30 meilleurs periodes pour passage ordre?

    1/ Je suppose que tu fais référence au fait d’ouvrir des positions contrariennes et en même temps. Cela n’est pas possible sous ProOrder, soit on achète, soit on vend. Pour tester si on est déjà au marché (et donc ne pas fermer la position existante), tu peux utiliser  NOT ONMARKET et l’intégrer dans tes conditions d’ouvertures de position aux lignes 26 et 46.

    2/ c’est déjà le cas dans ton code avec DEPARAM cumulteorders=false

    3/ calcul de marge, je te conseil les codes créés par Vonasi dans ce sujet du forum anglais: ESMA Margin calculation

    4/ changer les conditions horaires et calendaires définies entre les lignes 8 et 17, voir les instructions de temps dans notre documentation en ligne.

    #79187 quote
    Dr.heiser
    Participant
    New

    mon cher nicolas

     

    tout d’abord merci pour tes  réponses qui vont beaucoup m’aider.
    toutefois je reviens vers toi concernant la question n2, en effet DEPARAM cumulteorders=false, mais regarde ce qui se passe,
    par exemple le 21 août j’au deux achats long, alors que logiquement je ne dois en avoir qu’un
    le 3 aout, j’ai un achat short suivi d’un achat long le 6 aout anors que la position short n’a pas ete encore vendue

    comme il me faut uniquement une position ouverte à la fois, cela me semble etre un probleme, qu en penses tu?

     

    autre petite question, j’ai code des variables temps

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d’ordre avant l’heure “FLATBEFORE”.
    DEFPARAM FLATBEFORE = hdcp
    // Annule tous les ordres en attente et ferme toutes les positio3
    DEFPARAM FLATAFTER = hfcop

    // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d’une position avant l’heure spécifiée
    noEntryBeforeTime = hdtp
    timeEnterBefore = time >= noEntryBeforeTime

    // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d’une position après l’heure spécifiée
    noEntryAfterTime = hftp
    timeEnterAfter = time < noEntryAfterTime

     

    et voici le code erreur durant compilation
    Erreur de syntaxe : ligne 4, caractère 23
    Une des expressions suivantes serait plus appropriée que
    “hdcp”:
    – une heure (000000 – 235959)

    que faire pour que les variables temps soient reconnues?

     

    tres cordialement  pp

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 000000
    // Annule tous les ordres en attente et ferme toutes les positio3
    DEFPARAM FLATAFTER = 235900
    
    // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
    noEntryBeforeTime = 000000
    timeEnterBefore = time >= noEntryBeforeTime
    
    // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
    noEntryAfterTime = 235900
    timeEnterAfter = time < noEntryAfterTime
    
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    // Conditions pour ouvrir une position acheteuse
    c1 = (close > open)
    c2 = (close[1] > open[1])
    indicator1 = LinearRegression[LRe](close)
    indicator2 = Average[LAe](close)
    c3 = (indicator1 CROSSES OVER indicator2)
    
    IF (c1 AND c2 AND c3) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    indicator3 = LinearRegression[LRx](close)
    indicator4 = Average[LAx](close)
    c4 = (indicator3 CROSSES UNDER indicator4)
    
    IF c4 THEN
    SELL AT MARKET
    ENDIF
    
    // Conditions pour ouvrir une position en vente à découvert
    c5 = (close < open)
    c6 = (close[1] < open[1])
    indicator5 = LinearRegression[SRe](close)
    indicator6 = Average[SAe](close)
    c7 = (indicator5 CROSSES UNDER indicator6)
    
    IF (c5 AND c6 AND c7) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Conditions pour fermer une position en vente à découvert
    indicator7 = LinearRegression[SRx](close)
    indicator8 = Average[SAx](close)
    c8 = (indicator7 CROSSES OVER indicator8)
    
    IF c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    // Stops et objectifs
    SET STOP %LOSS SL
    SET TARGET %PROFIT TP
    
    pph-mm-rg.png pph-mm-rg.png
    #79192 quote
    Nicolas
    Keymaster
    Master

    Le 21 Août je vois un achat d’une position vendeuse (EXITSHORT) initiée le 20 et une nouvelle entrée d’achat LONG sur la bougie de 7:00

    cumulateorders=false limitera à une seule position.

    Sous ProOrder, une instruction BUY fermera automatiquement une position de vente à découvert SELLSHORT. Sauf si bien sûr on ajoute une condition pour que cela n’arrive pas (avec un IF NOT ONMARKET , par exemple).

    Les instructions DEFPARAM n’accepte pas de variables, et donc pas d’optimisation. Je te suggère donc de créer des variables booléennes qui contiendront des tests sur des instructions horaires et calendaires et de les ajouter à la prise de positions et aussi pour forcer la sortie de celles-ci.

    #80358 quote
    Dr.heiser
    Participant
    New

    re hello

     

    merci de tes reponses , mais il y a un truc qui me chifonne, le 3 aout, j’ai bien un long et un short en cours, malgre le cumulorder = false

    est ce que j’ai bien compris les listes, je t ai fait des copies ecran

    cdlt

    ordes-.png ordes-.png cloture-ordre.png cloture-ordre.png graph.png graph.png
    #80366 quote
    Nicolas
    Keymaster
    Master

    Cumulateorders=false inhibe le cumul de position dans le même sens.

    Dans la première capture d’écran, je vois bien un rachat ( donc une sortie.  ) à 23:00 d’une vente initiée (entrée) à 11:00.

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

short long sur nasdaq; Pas plus d'un ordre? test tranche horaire


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Dr.heiser @dr-heiser Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by Nicolas
7 years, 6 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 08/26/2018
Status: Active
Attachments: 4 files
Logo Logo
Loading...