Ordre valable sur plusieurs periodes

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #79516 quote
    Man1012
    Participant
    Junior

    Bonjour,

    J’ai une question qui j’imagine est simple à résoudre. Proorder ne peut pas calculer ma commande ci-jointe d’ordre valable sur plusieurs périodes, parce que c’est une boucle infinie…

    Je ne sais pas trop pourquoi?

    Merci pour votre aide!

    if time = 092500 then
    Maxbox = highest[17](High)
    endif
    
    if close > maxbox THEN
    price = close - 5
    periode = barindex
    endif
    
    while BARINDEX - periode < 10 do
    BUY 2 CONTRACT AT price limit
    wend
    #79652 quote
    Nicolas
    Keymaster
    Master

    En effet, puisque ta variable “periode” ne sera jamais renseigné. Dans ton test à la ligne 5, tu cherches à savoir si Close est plus haut que le plus haut, hors ça n’est pas possible car il devient le plus haut par définition. Il faut donc refaire cette condition avec la valeur du plus haut de la barre précédente, celle-ci étant figé dans le temps, elle ne changera plus et la condition pourra alors être vrai:

    if close > maxbox[1 ] THEN
    ...
    ..
    .
    #79666 quote
    Man1012
    Participant
    Junior

    super. merci pour ton aide Nicolas! je vais revoir tout ca.

    #79667 quote
    robertogozzi
    Moderator
    Master

    Je crois que le test à la ligne 5 se passe bien car la valeur la plus élevée le détermine à 9 h 25 et à la ligne 5 il vérifie si un breakout se produit.

    #79691 quote
    Nicolas
    Keymaster
    Master

    Bien vu Roberto! Dans ce cas, utilise plutôt un bloc conditionnel pour éviter la boucle While / Wend:

    if BARINDEX - periode < 10  then 
     BUY 2 CONTRACT AT price limit
    endif

    Dans que la condition de la ligne 1 sera testée vrai, on replacera un nouvel ordre LIMIT à chaque nouvelle barre (puisqu’il expirera après seulement 1 période).

    #79830 quote
    Man1012
    Participant
    Junior

    Merci pour vos retours!

    La stratégie est effectivement de prendre une position à l’achat si le plus haut atteint entre 8h00 et 9h25 est dépassé dans la journée. Stratégie utilisée sur le Dax en UT 5 minutes, limitée à un ordre par jour, ordre valable sur la journée uniquement.

    La stratégie fonctionne bien, 80% de taux de succès (en rajoutant quelques conditions de croisement de moyennes mobiles et tendance à la hausse).

    J’essaie d’optimiser la stratégie en rajoutant un price limit pour optimiser le prix d’achat, après que les conditions aient été réalisées. Et j’essaierai aussi de tester un achat stop au dessus du niveau de prix atteint au moment de la réalisation des conditions, pour s’assurer de la confirmation du break out.

    Pour l’achat limite, j’utilise le code suivant (simplifié), avec optimisation des variables sur le niveau de prix limite et le nombre de périodes pendant lequel l’ordre doit rester valable:

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    
    // 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 = 092500
    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 = 213000
    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
    if time = 092500 then
    Maxbox = highest[17](High)
    endif
    
    // Conditions pour limiter à un ordre par jour 
    Jour = barindex - intradaybarindex
    if tradeindex(1) <  Jour then
    achat = 1
    elsif tradeindex(1) >= Jour then
    achat = 0
    endif
    
    if close > maxbox and timeEnterBefore AND timeEnterAfter and not daysForbiddenEntry and achat = 1 THEN
    price = close - n
    periode = barindex
    achat = 2
    endif
    
    If achat = 2 and barindex - periode < m then
    BUY 2 CONTRACT AT price limit
    endif

    Mais je ne suis pas sûr que le code soit bon. En tout cas, la stratégie n’est pas optimisée et les résultats du backtest un peu bizarres.

    Qu’en pensez vous?

    Merci!

    #79849 quote
    Nicolas
    Keymaster
    Master

    Donc tu optimises les variables n et m ? Qu’appelles-tu des résultats un peu bizarres ?

    #79878 quote
    Man1012
    Participant
    Junior

    Oui j’optimise les variables n et m. L’optimisation donne un n à 0, donc prix = close, quelle que soit la période considérée (jusqu’à 50 périodes après réalisations des conditions), et des résultats toujours inférieurs à la stratégie sans price limit (76% de taux de succès vs 81%), ce qui est bien sûr possible. Voir attachment.

    mais penses tu que le code est ok?

    #79879 quote
    Man1012
    Participant
    Junior

    Aussi, je ne suis pas sûr de procéder comme il faut pour attacher une image. Je suis passer par l’icone “share your code”, et ensuite copier-coller.

    #79896 quote
    Nicolas
    Keymaster
    Master

    Je ne vois rien de choquant dans le code. n=0 signifierai que tu rentres au marché et donc plus besoin d’ordre conditionnel LIMIT dans ce cas. Mais je ne pense pas qu’en réel cela marcherait aussi “bien”. En effet, l’ordre ne serait pas placé car soumis à l’écart minimum et donc rejeté.

    L’image est trop petite, il n’est pas utile de cliquer sur “insert into content”, l’image sera attaché en dessous de ton post.

    Man1012 thanked this post
    #79912 quote
    Man1012
    Participant
    Junior

    oui bien sûr, avec n=0, je ne mettrai plus d’ordre LIMIT mais au marché.

    Merci pour ton retour

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

Ordre valable sur plusieurs periodes


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Man1012 @man1012 Participant
Summary

This topic contains 10 replies,
has 3 voices, and was last updated by Man1012
7 years, 6 months ago.

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