Problème de backtest : stratégie des TORTUES

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #10558 quote
    DoctradingDoctrading
    Participant
    Master

    Bonjour à tous,

    Je tente de coder la fameuse “stratégie des tortues”.

    Chose bizarre, la sortie ne s’effectue pas au plus bas des X dernières bougies (X = 10 pour le “système 1” et X = 20 pour le “système 2”).

     

    Le stop loss à l’ATR20 semble bien fonctionner.

    Sur la capture d’écran (DAX index, juste pour l’essai, alors que les tortues ne tardaient pas directement le Dax), on voit clairement que la dernière position “long” est maintenue bien plus qu’elle ne le devrait. On devrait sortir sur le plus bas des 10 dernières bougies.

    De ce fait, mon code n’est pas profitable sur les matières premières entre autres.

     

    Voyez-vous où se trouve l’erreur ?

    Merci par avance.

     

    Voici le code :

    // SYSTEME DE TRADING DES TORTUES
    // REGLES ORIGINALES
    
    
    // 2 SYSTEMES : valeur 1 ou 2
    SYSTEME = 1
    
    
    // INDICATEURS
    ATR20 = AverageTrueRange[20](close)
    HAUT20 = Highest[20](high)
    BAS20 = Lowest[20](low)
    HAUT55 = Highest[55](high)
    BAS55 = Lowest[55](low)
    HAUT10 = Highest[10](high)
    BAS10 = Lowest[10](low)
    
    
    // ACHAT
    IF not onmarket THEN
    
    IF SYSTEME = 1 THEN
    Buy at HAUT20 stop
    ELSIF SYSTEME = 2 THEN
    Buy at HAUT55 stop
    ENDIF
    
    // SORTIE ACHAT
    IF SYSTEME = 1 THEN
    sell at BAS10 stop
    ELSIF SYSTEME = 2 THEN
    sell at BAS20 stop
    ENDIF
    
    ENDIF
    
    
    // VENTE
    IF not onmarket THEN
    
    IF SYSTEME = 1 THEN
    Sellshort at BAS20  stop
    ELSIF SYSTEME = 2 THEN
    Sellshort at BAS55 stop
    ENDIF
    
    // SORTIE VENTE
    IF SYSTEME = 1 THEN
    exitshort at HAUT10 stop
    ELSIF SYSTEME = 2 THEN
    exitshort at HAUT20 stop
    ENDIF
    
    ENDIF
    
    
    // STOP LOSS
    Set stop loss ATR20
    
    stratégie-des-tortues-bugs.jpg stratégie-des-tortues-bugs.jpg
    #10562 quote
    NicolasNicolas
    Keymaster
    Legend

    C’est tout à fait normal car le lowest low et le highest high évolue en temps réel, tu dois donc faire référence à leurs valeurs dans le passé pour effectuer des tests.

    Je ne vois pas de taille de position dans les instructions de vente et d’achat non plus.

    #10572 quote
    DoctradingDoctrading
    Participant
    Master

    Merci.

    Je vais donc définir le lowest[n](low[1]) et faire l’essai.
    Si le code fonctionne bien je le mettrai en librairie.

    Je n’ai pas mis d’instructions de taille de positions exprès, pas besoin : par défaut lorsqu’on ne met rien, PRT met “1 share”.

    #10740 quote
    DoctradingDoctrading
    Participant
    Master

    Bonjour,

     

    Je pense avoir pourtant bien corrigé l’erreur, mais ça ne fonctionne pas mieux.
    Voici le code.
    Merci pour l’aide !

     

    // SYSTEME DE TRADING DES TORTUES
    // REGLES ORIGINALES
    
    
    // 2 SYSTEMES : valeur 1 ou 2
    SYSTEME = 1
    
    
    // INDICATEURS
    ATR20 = AverageTrueRange[20](close)
    HAUT20 = Highest[20](high)
    BAS20 = Lowest[20](low)
    HAUT55 = Highest[55](high)
    BAS55 = Lowest[55](low)
    HAUT10 = Highest[10](high)
    BAS10 = Lowest[10](low)
    
    
    // ACHAT
    IF not onmarket THEN
    
    IF SYSTEME = 1 THEN
    Buy at HAUT20 stop
    ELSIF SYSTEME = 2 THEN
    Buy at HAUT55 stop
    ENDIF
    
    // SORTIE ACHAT
    IF SYSTEME = 1 THEN
    sell at BAS10[1] stop
    ELSIF SYSTEME = 2 THEN
    sell at BAS20[1] stop
    ENDIF
    
    ENDIF
    
    
    // VENTE
    IF not onmarket THEN
    
    IF SYSTEME = 1 THEN
    Sellshort at BAS20  stop
    ELSIF SYSTEME = 2 THEN
    Sellshort at BAS55 stop
    ENDIF
    
    // SORTIE VENTE
    IF SYSTEME = 1 THEN
    exitshort at HAUT10[1] stop
    ELSIF SYSTEME = 2 THEN
    exitshort at HAUT20[1] stop
    ENDIF
    
    ENDIF
    
    
    // STOP LOSS
    Set stop loss ATR20
    
    #11322 quote
    JC_BywanJC_Bywan
    Moderator
    Master

    Bonjour, je pense que tes conditions de sorties d’achat et de sorties de vente seraient plus heureuses de vivre leur vie en dehors de tes boucles “if not onmarket” plutôt qu’en dedans, puisque par définition si tu veux sortir des positions, c’est que tu es “on market”. Là du coup tes boucles if de sorties ne sont jamais visitées par le programme.

    En déplaçant 2 endif donc, ça donnerait (sans avoir cherché à vérifier si le reste était ok ou pas):

    // SYSTEME DE TRADING DES TORTUES
    // REGLES ORIGINALES
    
    
    // 2 SYSTEMES : valeur 1 ou 2
    SYSTEME = 1
    
    
    // INDICATEURS
    ATR20 = AverageTrueRange[20](close)
    HAUT20 = Highest[20](high)
    BAS20 = Lowest[20](low)
    HAUT55 = Highest[55](high)
    BAS55 = Lowest[55](low)
    HAUT10 = Highest[10](high)
    BAS10 = Lowest[10](low)
    
    
    // ACHAT
    IF not onmarket THEN
    
    IF SYSTEME = 1 THEN
    Buy at HAUT20 stop
    ELSIF SYSTEME = 2 THEN
    Buy at HAUT55 stop
    ENDIF
    
    ENDIF
    
    // SORTIE ACHAT
    IF SYSTEME = 1 THEN
    sell at BAS10 stop
    ELSIF SYSTEME = 2 THEN
    sell at BAS20 stop
    ENDIF
    
    
    // VENTE
    IF not onmarket THEN
    
    IF SYSTEME = 1 THEN
    Sellshort at BAS20  stop
    ELSIF SYSTEME = 2 THEN
    Sellshort at BAS55 stop
    ENDIF
    
    ENDIF
    
    // SORTIE VENTE
    IF SYSTEME = 1 THEN
    exitshort at HAUT10 stop
    ELSIF SYSTEME = 2 THEN
    exitshort at HAUT20 stop
    ENDIF
    
    
    // STOP LOSS
    Set stop loss ATR20
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Problème de backtest : stratégie des TORTUES


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Doctrading @doctrading Participant
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by JC_BywanJC_Bywan
10 years, 2 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 07/18/2016
Status: Active
Attachments: 1 files
ProRealCode ProRealCode
Loading...