stratégie de trading basée sur le fractal de Bill Williams

Viewing 15 posts - 16 through 30 (of 30 total)
  • Author
    Posts
  • #88577 quote
    Nicolas
    Keymaster
    Master

    En reprenant le code que t’a gentiment fait Magifina, on pourrait les placer ainsi :

    DEFPARAM Cumulateorders=false
    // Visualisation des fractales avec flèches
    Arrow = 0
     
    // Nombres de bougies constituant la fractale (impair)
    // libre à vous de changer ce nombre, qui doit être impair
    Ncandles = 4
     
    // Nombres de bougies de chaque côté de la bougie extrême
    Nside = (Ncandles) / 2
     
    // Définition de la fractale supérieure
    IF high[Nside] >= highest[Ncandles](high) THEN
    //Fup = high[Nside]
    Arrow = 1
    buylevel = high[Nside]
    ENDIF
     
    // Définition de la fractale inférieure
    IF low[Nside] <= lowest[Ncandles](low) THEN
    //Fdown = low[Nside]
    Arrow = -1
    selllevel = low[Nside]
    ENDIF
     
    // Tracé des flèches
    IF Arrow = 1 THEN
    BUY 1 CONTRACT AT buylevel stop
    ENDIF
    
    IF //rajoute ici ta condition de sortie de position long// THEN
    SELL AT MARKET
    ENDIF
    
    IF Arrow = -1 THEN
    SELLSHORT 1 CONTRACT AT selllevel stop
    ENDIF
    
    IF //rajoute ici ta condition de sortie de position short// THEN
    EXITSHORT AT MARKET
    ENDIF

    Je n’ai pas testé dans la plateforme, à vérifier.

    #88614 quote
    mbappe
    Participant
    New

    The code is invalid, i get syntax error….

    #88652 quote
    Nicolas
    Keymaster
    Master

    @mbappe

    …Merci d’écrire en français dans un sujet rédigé en français 🙂

    En effet, il y a des erreurs de syntaxe, cela dépend des conditions de sorties que tu souhaites y ajouter, donc faire un peu de programmation. Sinon dans le genre tout cuit, on aurait :

    DEFPARAM Cumulateorders=false
    // Visualisation des fractales avec flèches
    Arrow = 0
     
    // Nombres de bougies constituant la fractale (impair)
    // libre à vous de changer ce nombre, qui doit être impair
    Ncandles = 4
     
    // Nombres de bougies de chaque côté de la bougie extrême
    Nside = (Ncandles) / 2
     
    // Définition de la fractale supérieure
    IF high[Nside] >= highest[Ncandles](high) THEN
    //Fup = high[Nside]
    Arrow = 1
    buylevel = high[Nside]
    ENDIF
     
    // Définition de la fractale inférieure
    IF low[Nside] <= lowest[Ncandles](low) THEN
    //Fdown = low[Nside]
    Arrow = -1
    selllevel = low[Nside]
    ENDIF
     
    // Tracé des flèches
    IF Arrow = 1 THEN
    BUY 1 CONTRACT AT buylevel stop
    ENDIF
    
    IF //rajoute ici ta condition de sortie de position long// THEN
    SELL AT MARKET
    ENDIF
    
    IF Arrow = -1 THEN
    SELLSHORT 1 CONTRACT AT selllevel stop
    ENDIF
    
    IF //rajoute ici ta condition de sortie de position short// THEN
    EXITSHORT AT MARKET
    ENDIF

    Donc ici, ce sera uniquement un ordre inverse qui fermera le précédent et ainsi de suite.

    #88896 quote
    MagnetikGreen
    Participant
    Average

    Bonjour, Merci de votre aide Nicolas je début en programmation du coup c’est un peut difficile pour moi.

    je souhaiterais aussi  rajouter un TP qui ce place sur le point pivot le plus proche dans le sens du marché.

    Je pense qu’il faut faire une boucle pour analyse la distance des pivot mais je sais pas comment la construire….

    #88943 quote
    Nicolas
    Keymaster
    Master

    J’avais justement un petit snippet à ce propos sous la main, à tester en profondeur, j’ai fais ça rapidement :

    DEFPARAM Cumulateorders=false
    // Visualisation des fractales avec flèches
    Arrow = 0
     
    // Nombres de bougies constituant la fractale (impair)
    // libre à vous de changer ce nombre, qui doit être impair
    Ncandles = 4
     
    // Nombres de bougies de chaque côté de la bougie extrême
    Nside = (Ncandles) / 2
     
    // Définition de la fractale supérieure
    IF high[Nside] >= highest[Ncandles](high) THEN
    //Fup = high[Nside]
    Arrow = 1
    buylevel = high[Nside]
    ENDIF
     
    // Définition de la fractale inférieure
    IF low[Nside] <= lowest[Ncandles](low) THEN
    //Fdown = low[Nside]
    Arrow = -1
    selllevel = low[Nside]
    ENDIF
    
    //compute takeprofit based on pivot points
    Ht = DHigh(1)
    Bs = DLow(1)
    C = DClose(1)
    Pivot = (Ht + Bs + C) / 3
    Res3 = Res1 + (Ht - Bs)
    Res2 = Pivot + Ht - Bs
    Res1 = (2 * Pivot) - Bs
    Sup1 = (2 * Pivot) - Ht
    Sup2 = Pivot - (Ht - Bs)
    Sup3 = Sup1 - (Ht - Bs)
    
    
    if close>pivot then
    //** above Pivot **
    i=1
    while i<=3 do
    if i=1 then
    floor=pivot
    ceil=res1
    if close>floor and close<ceil then
    break
    endif
    elsif i=2 then
    floor=res1
    ceil=res2
    if close>floor and close<ceil then
    break
    endif
    elsif i=3 then
    floor=res2
    ceil=res3
    if close>floor and close<ceil then
    break
    endif
    endif
    i=i+1
    wend
    elsif close<pivot then
    //** below Pivot **
    i=1
    while i<=3 do
    if i=1 then
    floor=sup1
    ceil=pivot
    if close>floor and close<ceil then
    break
    endif
    elsif i=2 then
    floor=sup2
    ceil=sup1
    if close>floor and close<ceil then
    break
    endif
    elsif i=3 then
    floor=sup3
    ceil=sup2
    if close>floor and close<ceil then
    break
    endif
    endif
    i=i+1
    wend
    endif
     
    // Tracé des flèches
    IF Arrow = 1 and not longonmarket THEN
    BUY 1 CONTRACT AT buylevel stop
    sell at ceil limit
    ENDIF
    
    IF Arrow = -1 and not shortonmarket THEN
    SELLSHORT 1 CONTRACT AT selllevel stop
    exitshort at floor limit 
    ENDIF
    
    if longonmarket then 
    sell at ceil limit
    endif
    if shortonmarket then 
    exitshort at floor limit
    endif
    
    graph floor coloured(0,200,200)
    graph ceil coloured(200,0,0)

    La  stratégie est presque toujours au marché, puisqu’on prend chaque cassure de fractals. Par ailleurs il n’y a pas de stoploss.

    strategie-fractals-et-point-pivots.png strategie-fractals-et-point-pivots.png
    #89942 quote
    MagnetikGreen
    Participant
    Average

    Bonjour, toujour sur mon bot je suis arriver a l’etape de faire un trailing stop qui ce déplace a chaque nouvelle fractals qui s’affiche mais prt ne le prend jamais en compte est ce que vous pourriez m’aider ?

    Le but etant que a l’achat par exemple le stop ce place sur la dernière fractals présente et remonte de fractals en fractals.

    merci d’avance pour votre aide. 🙂

    #89943 quote
    Nicolas
    Keymaster
    Master
    #89951 quote
    MagnetikGreen
    Participant
    Average

    Je vous met mon code en piece jointe prt ne le prend pas en compte si vous pouviez me corriger ce serait super.

    merci.

    CaptureProorder.png CaptureProorder.png
    #89956 quote
    Nicolas
    Keymaster
    Master

    l’instruction SET STOP LOSS ne prend pas un prix mais une taille, voilà le problème.

    #90146 quote
    MagnetikGreen
    Participant
    Average

    Bonjour, merci de votre aide, j’ai un nouveau probleme le bot, ne trade presque pas je ne comprend pas pourquoi… je fais mes test sur le DJ 15M .

    // config
    DEFPARAM CumulateOrders = false
    defparam flatafter = 220000
    defparam flatbefore = 090000
    
    // Variables
    
    //Tenkan = (highest[9](high)+lowest[9](low))/2
    Kijun = (highest[26](high)+lowest[26](low))/2
    av1 = Average[100](close)
    av2 = average[200](close)
    Ncandles = 4
    Nside = (Ncandles)/2
    
    
    // Conditions pour ouvrir une position acheteuse
    
    IF high[Nside] >= highest[Ncandles](high) THEN
    if close > kijun then
    if av2 < close then
    buy 1 contract at high[Nside] stop
    endif
    endif
    endif
    
    // Conditions pour fermer une position acheteuse
    
    if close < av1 then
    SELL  at market
    endif
    //
    // Conditions pour ouvrir une position en vente à découvert
    
    IF low[Nside] <= lowest[Ncandles](low) THEN
    if close < kijun then
    if av2 > close then
    sellshort 1 contract at low[Nside]stop
    endif
    endif
    endif
    
    // Conditions pour fermer une position en vente à découvert
    
    if close > av1 then
    exitshort at market
    endif
    
    // gestion du stop loss et pertes
    
    set stop %loss 1
    set target pprofit 50
    trailingstart = 20 //trailing will start @trailinstart points profit
    trailingstep = 10 //trailing step to move the "stoploss"
    
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
    
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
    
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    
    #203132 quote
    Sandro2017
    Participant
    Average

    Bonsoir Moustiks,

    En complément des instructions d’entrée en position “buy” ou “sellshort” tu dois rajouter tes conditions de sortie. L’instruction “return” est également à retirer car elle est réserver aux indicateurs.

    Pour terminer ton code je rajouterai en première ligne “defparam cumulateorders=false” pour éviter la cumulation d’ordres.

    Je te propose donc le code suivant:

    Bonjour

     

    Je suppose que ce robot trade les cassures de niveaux de fractales? Est ce qu il met directement un ordre d achat au depassement de la fractale ou a la bougie suivante,moi je prefererais directement a la cassure si c possible

    Je voudrais inserer au bon endroit dans ce code        un breakeven de 8 points

    un stoploss de 25 points

    un takeprofit de 25 points

    comme code de sortie de position

     

     

    Merci d avance

     

    Sandro

    #203162 quote
    Sandro2017
    Participant
    Average

    Bonsoir Moustiks,

    En complément des instructions d’entrée en position “buy” ou “sellshort” tu dois rajouter tes conditions de sortie. L’instruction “return” est également à retirer car elle est réserver aux indicateurs.

    Pour terminer ton code je rajouterai en première ligne “defparam cumulateorders=false” pour éviter la cumulation d’ordres.

    Je te propose donc le code suivant:

    Bonjour

    Je suppose que ce robot trade les cassures de niveaux de fractales? Est ce qu il met directement un ordre d achat au depassement de la fractale ou a la bougie suivante,moi je prefererais directement a la cassure si c possible

    Je voudrais inserer au bon endroit dans ce code un breakeven de 8 points

    un stoploss de 25 points

    un takeprofit de 25 points

    comme code de sortie de position

    Merci d avance

    Sandro

    Rebonjour,
    Y a t il un service payant  pour que quelqun m adapte un peu le code  , en trading manuel je suis satisfait mais pas envie de passer des heures devant l écran. En plus je voulais voir si sur le long terme c est viable………..

     

    Encore merci 🙂

    #203172 quote
    fifi743
    Participant
    Master

    pour le stop SET STOP pLOSS 25
    SET TARGET PPROFIT 25
    et le break je regarderais demain soir

    #203192 quote
    Sandro2017
    Participant
    Average

    Merci 🙂

    #203216 quote
    fifi743
    Participant
    Master

    il faut modifier la variable distance qui donne le signal pour mettre le BE a 8 pts
    on peut utiliser la variable breakeven aussi ,mais pour la compréhension voici comment on écrivait avant
    en bas j’ai un graph qui vous dit ou est le breakeven

    DEFPARAM Cumulateorders=false
    
    // Visualisation des fractales avec flèches
    
    Arrow = 0
    
    
    // Nombres de bougies constituant la fractale (impair)
    
    // libre à vous de changer ce nombre, qui doit être impair
    
    Ncandles = 4
    
    
    // Nombres de bougies de chaque côté de la bougie extrême
    
    Nside = (Ncandles) / 2
    
    
    // Définition de la fractale supérieure
    
    IF high[Nside] >= highest[Ncandles](high) THEN
    
    //Fup = high[Nside]
    
    Arrow = 1
    
    ENDIF
    
    
    // Définition de la fractale inférieure
    
    IF low[Nside] <= lowest[Ncandles](low) THEN
    
    //Fdown = low[Nside]
    
    Arrow = -1
    
    ENDIF
    
    //========condition==========
    // Tracé des flèches
    
    IF Arrow = 1 THEN
    
    BUY 1 CONTRACT AT MARKET
    
    ENDIF
    
    IF Arrow = -1 THEN
    
    SELLSHORT 1 CONTRACT AT MARKET
    
    ENDIF
    SET STOP PLOSS 25
    SET TARGET PPROFIT 25
    //==========breakeven
    distance=30*pointsize
    BE=8*pointsize
    if not onmarket then
    breakev=0
    endif
    if longonmarket and close-tradeprice>distance then
    breakev=tradeprice+BE
    endif
    if shortonmarket and tradeprice-close<distance then
    breakev=tradeprice-BE
    endif
    if breakev>0 then
    sell at breakev stop
    exitshort at breakev stop
    endif
    //=============ARRET=======
    //IF //rajoute ici ta condition de sortie de position long// THEN
    //
    //SELL AT MARKET
    //
    //ENDIF
    //
    //IF //rajoute ici ta condition de sortie de position short// THEN
    //
    //EXITSHORT AT MARKET
    //
    //ENDIF
    graph breakev
    Nicolas thanked this post
Viewing 15 posts - 16 through 30 (of 30 total)
  • You must be logged in to reply to this topic.

stratégie de trading basée sur le fractal de Bill Williams


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
MagnetikGreen @moustiks Participant
Summary

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

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