TIMEFRAME resultats differents

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #176762 quote
    Yvan63
    Participant
    Senior

    Bonjour

    Ci-dessous un code qui prenait bcp de positions en UT15 sans utilisation de différents TimeFrame.
    Avant de faire évoluer ce code pour gérer la gestion du BE ou de l’achat par exemple, j’ai voulu introduire la fonction TimeFrame et vérifier que le programme se comportait à l’identique.
    Donc je lance la stratégie sur un graph de 5 minutes, traite les conditions d’entrée en position en TimeFrame 15 minutes (pour reproduire ce que le programme originel faisait) et gère l’entrée en l’achat et le suivi en UT 5.
    Je constate que le programme ne prend que de 2 TRADE, alors qu’auparavant ils en prenait plus de 200 !!
    J’ai bien pris en considération qu’en tournant en 5 minutes j’ai moins d’historique pour l’UT 15 minutes (je teste avec 100K d’unité à chaque fois), mais de là à n’avoir plus que 2 TRADE c’est très curieux…

    Pour faire la comparaison il faut enlever les instructions TIMEFRAME sur un graph en 15 minutes.
    Si vous avez une explication …

    Code (désolé le bouton “insert code” n’est pas visible dans la toolbar !!


    // UT = 15 minutes, NSQ 100
    // A lancer en UT 5 de base (pour gestion du MULTI TIMEFRAME)
    
    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 = 080000
    ////////// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    //DEFPARAM FLATAFTER = 223000
    DEFPARAM Preloadbars = 1000
    
    ONCE MEMSTOPPRICE = 0
    ONCE MEMOSTOP = 0
    
    If not Onmarket Then
    step = 0
    MemoIndex = 0
    Endif
    
    CapitalInitial = 50000 // Capital initial
    CapitalReinvest = CapitalInitial+Strategyprofit
    
    // nombre de contrat
    
    TailleContrat = 1 // Nbr lot (minimum 0.5)
    
    // réinvestissement des gains
    
    ReinvestActif = 1 // activé ?
    
    If ReinvestActif = 0 then
    nblot = TailleContrat
    endif
    
    If ReinvestActif = 1 then
    nblot = (CapitalReinvest/CapitalInitial)*TailleContrat
    Endif
    
    If nblot < 0.5 then
    nblot = 0.5
    Endif
    
    nblot = 1
    // ----------------------------------------------------------------------------------------------------------------------------
    TimeFrame(15 minutes, updateonclose)
    // parameters
    Period = 10
    FastPeriod = 2
    SlowPeriod = 30
    // ER = Efficient Ratio
    
    Xadaptative = AdaptiveAverage[Period,FastPeriod,SlowPeriod](TypicalPrice) // Même résultat si close () !!
    
    // Calcul de l'angle de la courbe Xadaptative
    Periode = Period //Période de la MM
    nbChandelier= Period // Nombre de chandeliers sur lesquels on évalue la pente
    MM = Xadaptative
    ADJASUROPPO = (MM-MM[nbchandelier]) / nbChandelier
    ANGLE = (ATAN(ADJASUROPPO)) // Varie en positif ou en négatif
    
    b1 = Typicalprice crosses over Xadaptative
    
    b2 = 1
    
    b3 = 1
    
    b4 = 1
    
    b5 = 1
    
    b6 = 1
    
    b7 = 1
    
    Btotal = b1 and b2 and b3 and b4 and b5 and b6 and b7 and Not OnMarket
    TimeFrame(default)
    
    IF btotal THEN
    BUY nblot CONTRACT AT MARKET
    Set Target pprofit 0
    SET STOP LOSS 35 // Temporaire
    MEMSTOPPRICE = Typicalprice-35
    Endif
    
    // Ajustement du STOPLOSS une fois le prix d'ouverture de la bougie d'ordre connue
    
    IF Longonmarket and BarIndex = TradeIndex(1) and step = 0 then
    
    MEMOSTOP = Tradeprice(1)-MEMSTOPPRICE // STOPLOSS en Nbr de point
    SET STOP LOSS MEMOSTOP
    graph MEMOSTOP
    BuyN1 = Tradeprice(1)
    MemBE = BuyN1+8
    step = 1
    MemoBar = BarIndex
    
    Endif
    
    If Longonmarket and step = 1 Then
    If Memobar+1 < Barindex and Typicalprice > MemBe Then // AU moins une bougie d'éloignement
    SELL AT MemBE STOP
    step = 2
    EndIf
    EndIf
    
    If Longonmarket and step = 2 Then // Rafraîchissement de la vente stop BE
    SELL AT MemBE STOP
    step = 2
    Endif
    
    //TP1 = 80% valeur du STOPLOSS
    If Longonmarket and step = 2 then
    If Close crosses under Xadaptative Then
    Sell 0.5 Contracts at Market
    MemoIndex = Barindex
    MemBE = MemBE + Round((Close-MemBe)/2)
    step = 3
    Endif
    
    Endif
    
    // Ajustement du BE en STOP suiveur typé "cale" pour verrouiller niveau de gain si rechute vers BE initiale
    If Longonmarket and step = 3 then
    SELL AT MemBE STOP
    Endif
    
    //// TP2
    If LongonMarket and step = 3 and Close crosses under average[30,1](close) Then
    
    // Solde le restant de la postion
    Sell at market
    step = 0
    
    Endif

     

     


Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.

TIMEFRAME resultats differents


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Yvan63 @yvan63 Participant
Summary

This topic contains 1 voice and has 0 replies.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/03/2021
Status: Active
Attachments: No files
Logo Logo
Loading...