Backtests timeframe multiple avec TrendDecoder

Viewing 15 posts - 1 through 15 (of 42 total)
  • Author
    Posts
  • #193738 quote
    Pensera
    Participant
    Junior

    Bonjour j’ai un souci de backtest avec ce super indicateur…

    le problème est que j’essaye de le backtester dans les conditions de 3 UT et le signal +1 correspond à la flèche qui démarre le trend haussier puis la ligne de trend haussier passe en signal  0…et idem en trend baissier flèche baissière signal=-1 puis le trend baissier est signal =0

    donc pour backtester en 3 UT il faut réussir à dire dans l’ut principale +1 ça c’est facile mais l’ut inférieure et l’ut supérieure ne sont pas à +1 mais soit à 0 (trend haussier ou baissier) soit en box 2 ou -2 etc(box haussière ou baissière)

    l’idée serait de pouvoir dire ut 5mn le signal= 1 et qu’il compte sur l’ut 1 heure (ut supérieure) s’il y a eu un signal 1 Idem pour l’ut 15mn

    vous allez me dire c’est facile prend le 5mn signal 1

    et en time frame 15mn dit close [3] pour le 1 heure close  [12] mais non ça ne peut pas marcher le signal 1 n’est pas forcément là à ce même instant

    donc j’aurais besoin d’une boucle qui cherche le signal 1 en arrière tout en éliminant le signal -1 (demarrage de trend baissier) et le signal -2 (box de retournement) et -3 ligne de tendance baissière

    que ça ne s’active que si dans le « passé « des ut supérieures c’était 1 ou 2 ou 3 et que ça ne valide pas s’il y avait un -1 -2 ou -3

    Désolé pour ceux qui n’ont pas ce super indicateur ça peut paraître compliqué mais c’est très simple…

    le problème est exactement le même  pour d’autres indicateurs

    De même je ne suis pas sûr que le screener posté plus haut fonctionne le signal ne peut pas être à 3 dans 3 ut en même temps donc il en ressort zéro trade…zéro valeur a trader

    lorsque le signal est 3 c’est une seule fois pas pendant  toute la durée ou la ligne de support  est haussière donc impossible que le signal 3 apparaisse en même temps sur les 3 UT

    je posterai un graphique avec les signaux à mon retour de vacances

    D’avance merci

    Arnaud

    ps : merci kris pour le lien

    #193744 quote
    Nicolas
    Keymaster
    Master

    J’ai scindé la question dans un nouveau sujet, puisque non lié à la précédente question sur le screener de cet indicateur.

    Je pense en effet qu’une image pourrait aider à la compréhension de la question 🙂

    #194149 quote
    Pensera
    Participant
    Junior

    bonsoir,

    voilà l’image

    le signal 1 par exemple ne peut pas être 1 sur les autres UT

    hors c’est tout l’intérêt d’un système quel qu’il soit de travailler sur 3 UT pour confirmer la tendance et rester ou en sortir rapidement

    il y a un moyen j’en suis sûr.

    Merci pour votre aide

    cdt

    Arnaud

    Trenddecoder.jpg Trenddecoder.jpg
    #194163 quote
    Pensera
    Participant
    Junior

    pour rappel :

    la question est valable pour la majorité des indicateurs ProrealMarket ou autres…

    dès que l’on veut programmer sur 3 UT

    Étant donné que l’on ne peut faire appel à la ligne de trend il n’est possible que d’appeler le signal

    hors le signal =1 par exemple ne peut pas se déclencher en même temps sur 3ut ce qui est logique

    donc comment réussir à y faire appel ou faire vérifier que le signal =1 c’est déclenché auparavant…

     

    //signalType details:
    // 1 = new bullish trend detected (from red to blue cloud)
    // -1 = new bearish trend detected (from blue to red cloud)
    // 2 = grey box during bullish trend
    // -2 = grey box during bearish trend
    // 3 = red trend line breakout
    // -3 = blue trend line breakout

    #194182 quote
    Nicolas
    Keymaster
    Master

    et bien par exemple on mémorise son état lors de l’événement “signal” :

    if signal = 1 then //signal haussier
     trend = 1 //tendance haussière
    elsif signal = -1 then  //signal baissier
     trend = -1 //tendance baissière
    endif

    ainsi avec la variable “trend” tu peux savoir dans quel type de tendance tu te trouves actuellement.

    #194206 quote
    Pensera
    Participant
    Junior

    Merci Nicolas !

    et je créer cette variable pour chaque UT

    je tente ce soir

    Arnaud

    #194304 quote
    Meta Signals Pro
    Participant
    Veteran
    @Pensera merci de ta question et désolé du délai et du coup @Nicolas merci de ta réponse ;
    et je créer cette variable pour chaque UT
    oui mais attention, il faudra bien lui donner des noms différents pour chaque UT;  c’est un très bon principe en matière de MTF pour un même signal;-)

    timeframe(5 minutes,updateonclose) Trend1 = CALL “TrendDecoder_datas”(close) endif

    timeframe(15 minutes,updateonclose) Trend2 = CALL “TrendDecoder_datas”(close) endif …

    Bien à toi, Chris
    #194315 quote
    Pensera
    Participant
    Junior
    Oui bien sûr Chris c’est ce que j’ai fait… Et ça fonctionne merci, il n’y aurait pas un Manuel un peu complet de programmation PRT celui sur leur site est assez light je trouve et surtout il date… Arnaud
    #195126 quote
    Pensera
    Participant
    Junior
    Bonjour à tous, il ne me prend que des long ! une idée? Je l’avais bien codé et au final en voulant tout réécrire plus proprement je n’y arrive plus… Je n’ai collé qu’une partie du code…car je revérifie à part chaque indicateur appelé ou créée pour vraiment nettoyer mon programme et tout revérifier. Mais celui-ci me pose problème… D’avance merci pour votre aide… j’y passe mes soirées ou mes nuits…donc je n’ai peut-être plus les yeux en face des trous… J’ai des quantités de variables en dehors de çà… Bon week-end Arnaud
    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    defparam preloadbars=15000
    // 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 = 215900
    
    // 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 = 080000
    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 = 220000
    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
    
    
    //TRENDDECODER
    //signalType TRENDDECODER details:
    // 1 = new bullish trend detected (from red to blue cloud)
    // -1 = new bearish trend detected (from blue to red cloud)
    // 2 = grey box during bullish trend
    // -2 = grey box during bearish trend
    // 3 = red trend line breakout
    // -3 = blue trend line breakout
    
    **********************************************************************************************************************
    
    timeframe (15mn, updateonclose)
    
    Long15 = CALL "TrendDecoder_datas"(close)
    TrendlongMn15 = (Long15 = 1)
    TrendshortMn15 = (Long15 = -1)
    BoxlongMn15 = (Long15 = 2)
    BoxshortMn15 = (Long15 = -2)
    BreackoutlongMn15 = (Long15 = 3)
    BreackoutshortMn15 = (Long15 = -3)
    if Long15 = 1  then //signal haussier
    trendLong15 = 1 //tendance haussière
    elsif Long15 =-1  then  //signal baissier
    trendLong15 = 0 //tendance baissière
    endif
    Short15 = CALL "TrendDecoder_datas"(close)
    TrendlongMn015 = (Short15 = 1)
    TrendshortMn015 = (Short15 = -1)
    BoxlongMn015 = (Short15 = 2)
    BoxshortMn015 = (Short15 = -2)
    BreackoutlongMn015 = (Short15 = 3)
    BreackoutshortMn015 = (Short15 = -3)
    if Short15 = -1  then //signal baissier
    TrendShort15 = 1 //tendance baissière
    elsif Short15 =1  then  //signal haussier
    TrendShort15 = 0 //tendance haussière
    endif
    
    **********************************************************************************************************************
    
    Timeframe (5mn, updateonclose)
    
    Long5 = CALL "TrendDecoder_datas"(close)
    Trendlong5Mn = (Long5 = 1)
    Trendshort5Mn = (Long5 = -1)
    Boxlong5Mn = (Long5 = 2)
    Boxshort5Mn = (Long5 = -2)
    Breackoutlong5Mn = (Long5 = 3)
    Breackoutshort5Mn = (Long5 = -3)
    if Long5 = 1  then //signal haussier
    trendLong5 = 1 //tendance haussière
    elsif Long5 = -1 then  //signal baissier
    trendLong5 = 0 //tendance baissière
    endif
    Short5 = CALL "TrendDecoder_datas"(close)
    TrendlongMn05 = (Short5 = 1)
    TrendshortMn05 = (Short5 = -1)
    BoxlongMn05 = (Short5 = 2)
    BoxshortMn05 = (Short5 = -2)
    BreackoutlongMn05 = (Short5 = 3)
    BreackoutshortMn05 = (Short5 = -3)
    if Short5 = -1  then //signal baissier
    trendShort5 = 1 //tendance baissière
    elsif Short5 = 1 then  //signal haussier
    trendShort5 = 0 //tendance haussière
    endif
    
    **********************************************************************************************************************
    
    Timeframe (1mn, updateonclose)
    
    Long1 = CALL "TrendDecoder_datas"(close)
    TrendlongMn0 = (Long1 = 1)
    TrendshortMn0 = (Long1 = -1)
    BoxlongMn0 = (Long1 = 2)
    BoxshortMn0 = (Long1 = -2)
    BreackoutlongMn0 = (Long1 = 3)
    BreackoutshortMn0 = (Long1 = -3)
    if Long1 = 1  then //signal haussier
    trendLong1 = 1 //tendance haussière
    elsif Long1 = -1  then  //signal baissier
    trendLong1 = 0 //tendance baissière
    endif
    Short1 = CALL "TrendDecoder_datas"(close)
    TrendlongMn01 = (Short1 = 1)
    TrendshortMn01 = (Short1 = -1)
    BoxlongMn01 = (Short1 = 2)
    BoxshortMn01 = (Short1 = -2)
    BreackoutlongMn01 = (Short1 = 3)
    BreackoutshortMn01 = (Short1 = -3)
    if Short1 = -1  then //signal baissier
    trendShort01 = 1 //tendance baissière
    elsif Short1 = 1  then  //signal haussier
    trendShort01 = 0 //tendance haussière
    endif
    
    **********************************************************************************************************************
    OrderTypelong = not longonmarket and   TrendLong1=1 and trendLong5=1  and trendLong15=1 and timeEnterAfter AND  not daysForbiddenEntry
    
    
    OrderTypeshort =  not shortonmarket  AND trendShort01=1 AND trendShort5=1  and trendShort15=1  and timeEnterAfter and  not daysForbiddenEntry
    
    
    **********************************************************************************************************************
    
    
    if longonmarket and trendShort5=1 then
    sell at market
    endif
    if shortonmarket and trendLong5=1 then
    exitshort at market
    endif
    #195127 quote
    Pensera
    Participant
    Junior
    les conditions achat/vente
    if OrderTypelong then //market BUY
    buy contractsize contract at market
    endif
    if OrderTypeshort then //market SELLSHORT
    sellshort contractsize contract at market
    endif
    #195153 quote
    Pensera
    Participant
    Junior
    Bonjour, Toujours pas, soit il ne me prend que des longs soit en triturant que des short… décidément je suis nul…j’ai tout oublié en programmation depuis 10 ans… y’a juste mon trading manuel qui est encore correct. à bientôt et d’avance merci à celui ou celle qui réussira à éclairer ma lanterne Arnaud
    #195167 quote
    Pensera
    Participant
    Junior
    Au final si je ne met que les conditions du 1 mn çà me prend bien des longs et des shorts je patauge…
    #195182 quote
    Nicolas
    Keymaster
    Master
    Pour débugger ton code, il faut faire un GRAPH, ici pense à GRAPHer toutes les conditions qui sont contenues dans ta variable “OrderTypeshort” pour voir laquelle bloque les ordres short.
    #195189 quote
    Pensera
    Participant
    Junior
    Bonjour Nicolas, merci pour cette bonne idée ! je testerais ce soir et reviens vers vous ! bonne journée, arnaud
    #195280 quote
    Pensera
    Participant
    Junior
    AU FINAL…j’ai ré écrit d’une autre façon et c’est toujours le même soucis le 1 mn fonctionne, le 5mn jamais, et le 15mn 1 fois en long… ci-dessous le bout du code et le Graphique (GRAPH vert long1mn GRAPH magenta Short1mn GRAPH noir Long15mn se déclenche 1 fois…et bizarrement les autres toujours à 0)
    Timeframe (15mn, updateonclose)
    Signal15 = CALL "TrendDecoder_datas"(close)
    trendlong15=(signal15=1)
    trendshort15 = (signal15=-1)
    if signal15=1  then //signal haussier
    trendlong15 = 1 //tendance haussière
    elsif signal15=-1 then//signal baissier
    trendShort15 = -1//tendance baissière
    endif
    
    Timeframe (5mn, updateonclose)
    Signal5 = CALL "TrendDecoder_datas"(close)
    trendlong5=(signal5=1)
    trendshort5 = (signal5=-1)
    if signal5=1  then //signal haussier
    trendlong5 = 1 //tendance haussière
    elsif signal5=-1 then//signal baissier
    trendShort5 = -1//tendance baissière
    endif
    
    Timeframe (1mn, updateonclose)
    Signal1 = CALL "TrendDecoder_datas"(close)
    trendlong1=(signal1=1)
    trendshort1 = (signal1=-1)
    if signal1=1  then //signal haussier
    trendlong1 = 1 //tendance haussière
    elsif signal1=-1 then//signal baissier
    trendShort1 = -1//tendance baissière
    endif
    
    OrderTypelong = not longonmarket and   TrendLong1 and trendLong5 and trendLong15 and timeEnterAfter AND  not daysForbiddenEntry
    
    OrderTypeshort =  not shortonmarket  AND trendShort1 and trendShort5 and trendShort15 and timeEnterAfter and  not daysForbiddenEntry
    
    if longonmarket and trendShort5 then
    sell at market
    endif
    if shortonmarket and trendLong5 then
    exitshort at market
    endif
    
    if OrderTypelong then //market BUY
    buy contractsize contract at market
    endif
    if OrderTypeshort then //market SELLSHORT
    sellshort contractsize contract at market
    endif
    :
    Multiframe-error.png Multiframe-error.png
Viewing 15 posts - 1 through 15 (of 42 total)
  • You must be logged in to reply to this topic.

Backtests timeframe multiple avec TrendDecoder


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Pensera @pensera Participant
Summary

This topic contains 41 replies,
has 5 voices, and was last updated by Meta Signals Pro
3 years, 3 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 05/23/2022
Status: Active
Attachments: 9 files
Logo Logo
Loading...