condition au dessus d’une zone définie pour backtester

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #240880 quote
    Atemi19
    Participant
    New

    Bonjour, je voudrais backtester ma stratégie en scalping sur session Londres et avoir pas mal d’historique pour pouvoir l’appliquer manuellement.

    Et je n’arrive pas à trouver certaines conditions pour que le robot l’applique correctement car j’ai deux médianes de différents paramétrages et je me fiche si une est dessus ou en dessous car l’intérieur est une zone de neutralité et la sortie constitue un signal (achat au dessus et vente en dessous). Je vous met le code et les images.

    Cordialement.

    // Définition des paramètres du code
    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 = 090000
    // Annule tous les ordres en attente et ferme toutes les positions à l’heure “FLATAFTER”
    DEFPARAM FLATAFTER = 111500

    // Conditions pour ouvrir une position acheteuse
    indicator1 = DonchianChannelCenter[4]
    indicator2 = DonchianChannelCenter[15]
    c1 = (indicator1 > indicator2)
    indicator3 = DonchianChannelCenter[4]
    c2 = (indicator3 CROSSES OVER 19265.75)
    indicator4 = DonchianChannelCenter[4]
    indicator5 = DonchianChannelCenter[15]
    c3 = (indicator4 < indicator5)
    indicator6 = DonchianChannelCenter[15]
    c4 = (close CROSSES OVER indicator6)

    IF c1 OR c2 OR c3 OR c4 THEN
    BUY 1 SHARES AT MARKET
    ENDIF

    // Conditions pour ouvrir une position en vente à découvert
    indicator7 = DonchianChannelCenter[4]
    indicator8 = DonchianChannelCenter[15]
    c5 = (indicator7 > indicator8)
    indicator9 = DonchianChannelCenter[4]
    c6 = (close CROSSES UNDER indicator9)
    indicator10 = DonchianChannelCenter[4]
    indicator11 = DonchianChannelCenter[15]
    c7 = (indicator10 < indicator11)
    indicator12 = DonchianChannelCenter[15]
    c8 = (close CROSSES UNDER indicator12)

    IF c5 OR c6 OR c7 OR c8 THEN
    SELLSHORT 1 SHARES AT MARKET
    ENDIF

    // Stops et objectifs
    SET STOP pLOSS 8
    SET TARGET pPROFIT 10

    DXS1224-1-minute.png DXS1224-1-minute.png
    #240883 quote
    Atemi19
    Participant
    New

    Et je ne sais pas mais créer aussi une condition sur l’écart des deux médianes car si c’est mince ne pas trader

    #240887 quote
    Atemi19
    Participant
    New

    Ah j’oubliais, il faudrait après une vente chercher l’achat et vice versa….

    #240969 quote
    Iván González
    Moderator
    Master

    Voici une explication et un exemple de code modifié incluant les conditions supplémentaires que vous avez mentionnées :

    1. Zone de neutralité : La zone entre les deux médianes est considérée comme neutre, et les opérations ne se font que lorsque le prix sort de cette zone.
    2. Écart entre les deux médianes : Une condition est ajoutée pour éviter de trader si l’écart entre les deux médianes est inférieur à un seuil défini.
    3. Alternance des opérations : Après une vente, le système cherche un achat, et inversement.
    // Paramètres de configuration
    DEFPARAM CumulateOrders = False // Ne pas cumuler les positions
    DEFPARAM FLATBEFORE = 090000 // Heure de début des opérations
    DEFPARAM FLATAFTER = 111500  // Heure de fin des opérations
    
    // Seuil pour la différence minimale entre les médianes
    differenceThreshold = 5
    
    // Calcul des médianes
    median1 = DonchianChannelCenter[4]
    median2 = DonchianChannelCenter[15]
    medianDiff = ABS(median1 - median2)
    
    // Signaux d'achat et de vente basés sur la sortie de la zone de neutralité
    buySignal = (close > median1 AND close > median2 AND medianDiff > differenceThreshold)
    sellSignal = (close < median1 AND close < median2 AND medianDiff > differenceThreshold)
    
    // Alternance des opérations
    once lastTrade = 0 // 0 : aucune opération, 1 : dernier achat, -1 : dernière vente
    
    IF buySignal AND lastTrade <> 1 THEN
        BUY 1 SHARES AT MARKET
        lastTrade = 1
    ENDIF
    
    IF sellSignal AND lastTrade <> -1 THEN
        SELLSHORT 1 SHARES AT MARKET
        lastTrade = -1
    ENDIF
    
    // Configuration des stops et objectifs
    SET STOP pLOSS 8
    SET TARGET pPROFIT 10
    
    graphonprice median1 coloured("blue")
    graphonprice median2 coloured("red")
    
    graph buysignal coloured("green")
    graph sellsignal coloured("red")
    
    • Écart entre les médianes :
      • medianDiff = ABS(median1 - median2) calcule la différence absolue entre les deux médianes.
      • Cette différence est vérifiée avec medianDiff > differenceThreshold pour éviter de trader lorsque l’écart est trop faible.
    • Alternance des opérations :
      • La variable lastTrade garantit qu’il n’y a pas d’opérations consécutives du même type (achat ou vente).
      • Elle est mise à jour après chaque opération (lastTrade = 1 pour un achat, lastTrade = -1 pour une vente).
    • Zone de neutralité :
      • Les opérations se font uniquement si le prix est clairement au-dessus ou en dessous des deux médianes.
    #240970 quote
    Atemi19
    Participant
    New

    merci ivan

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

condition au dessus d’une zone définie pour backtester


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Atemi19 @atemi19 Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Atemi19
1 year, 3 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 11/29/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...