Stratégie de tendance d'entrée de cassure basée sur le canal ATR


Date de création: 2024-01-03 11:53:52 Dernière modification: 2024-01-03 11:53:52
Copier: 1 Nombre de clics: 722
1
Suivre
1621
Abonnés

Stratégie de tendance d’entrée de cassure basée sur le canal ATR

Aperçu

La stratégie utilise la théorie des canaux et des ruptures ATR, qui est une stratégie de suivi de la tendance. La stratégie est simple et facile à comprendre, utilise les canaux homogènes et les indicateurs ATR pour déterminer la direction de la tendance et émettre des signaux de transaction aux points clés.

Principe de stratégie

La stratégie utilise des indicateurs de hausse, de baisse, de clôture et d’ATR pour construire des hauts et des bas pour former un canal ATR. La largeur du canal est déterminée par la taille des paramètres ATR.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. L’utilisation de l’indicateur ATR pour construire des canaux, en tenant compte de la volatilité du marché, est préférable à une simple moyenne.
  2. Les points d’achat et de vente ont été mis en place en deux étapes, avec des entrées par lots et des risques contrôlables.
  3. Il est aussi possible d’avoir des informations sur les tendances de la théorie et d’identifier avec précision les points critiques.
  4. Le code est simple, facile à comprendre et à appliquer.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Le seul critère de jugement est que lorsque l’ATR échoue, il y a une forte probabilité que la stratégie échoue.
  2. Les limites de stop-loss et la gestion des positions n’ont pas été mises en place et les contrôles de risque sont insuffisants.
  3. La validation est en cours et l’efficacité peut être médiocre dans des conditions réelles.
  4. Des paramètres inappropriés peuvent entraîner des traversées ou des transactions excessives.

Direction d’optimisation

La stratégie peut être optimisée de la manière suivante:

  1. Le filtrage et la validation de plusieurs indicateurs ont été ajoutés pour éviter les erreurs de jugement.
  2. L’ajout d’un module Stop Loss et le renforcement du contrôle des risques.
  3. Augmentation du contrôle des positions et de la gestion des positions.
  4. Ajout d’optimisation des paramètres et adaptation des paramètres aux différentes variétés.
  5. Réduire la fréquence des transactions et la taille des positions, en tenant compte des conditions du marché réel.

Résumer

Le cadre global de la stratégie est clair et peut être compris comme une stratégie de validation de la conception. Cependant, il existe un certain écart par rapport à la réalité virtuelle, avec une plus grande marge d’optimisation.

Code source de la stratégie
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Myhaj_Lito

//@version=5
strategy("Renko Trend Strategy",shorttitle = "RENKO-Trend str.",overlay = true)
TF = input.timeframe(title='TimeFrame', defval="60")
ATRlength = input.int(title="ATR length", defval=60, minval=2, maxval=1000)

HIGH = request.security(syminfo.tickerid, TF, high)
LOW = request.security(syminfo.tickerid, TF, low)
CLOSE = request.security(syminfo.tickerid, TF, close)
ATR = request.security(syminfo.tickerid, TF, ta.atr(ATRlength))


RENKOUP = float(na)
RENKODN = float(na)
H = float(na)
COLOR = color(na)
BUY = int(na)
SELL = int(na)
UP = bool(na)
DN = bool(na)
CHANGE = bool(na)

RENKOUP := na(RENKOUP[1]) ? (HIGH + LOW) / 2 + ATR / 2 : RENKOUP[1]
RENKODN := na(RENKOUP[1]) ? (HIGH + LOW) / 2 - ATR / 2 : RENKODN[1]
H := na(RENKOUP[1]) or na(RENKODN[1]) ? RENKOUP - RENKODN : RENKOUP[1] - RENKODN[1]
COLOR := na(COLOR[1]) ? color.white : COLOR[1]
BUY := na(BUY[1]) ? 0 : BUY[1]
SELL := na(SELL[1]) ? 0 : SELL[1]
UP := false
DN := false
CHANGE := false

// calculating 
if not CHANGE and close >= RENKOUP[1] + H * 2
    CHANGE := true
    UP := true
    RENKOUP := RENKOUP[1] + ATR * 2
    RENKODN := RENKOUP[1] + ATR
    COLOR := color.rgb(0, 255, 170,60)
    SELL := 0
    BUY += 2
    BUY


if not CHANGE and close >= RENKOUP[1] + H
    CHANGE := true
    UP := true
    RENKOUP := RENKOUP[1] + ATR
    RENKODN := RENKOUP[1]
    COLOR := color.rgb(0, 230, 38,60)
    SELL := 0
    BUY += 1
    BUY

if not CHANGE and close <= RENKODN[1] - H * 2
    CHANGE := true
    DN := true
    RENKODN := RENKODN[1] - ATR * 2
    RENKOUP := RENKODN[1] - ATR
    COLOR := color.rgb(255, 92, 43,60)
    BUY := 0
    SELL += 2
    SELL
if not CHANGE and close <= RENKODN[1] - H
    CHANGE := true
    DN := true
    RENKODN := RENKODN[1] - ATR
    RENKOUP := RENKODN[1]
    COLOR := color.rgb(245, 69, 69,60)
    BUY := 0
    SELL += 1
    SELL
//// STRATEGY 
if(UP)
    strategy.entry("Long",strategy.long)
if(DN)
    strategy.entry("Short",strategy.short)


// ploting 

bgcolor(COLOR)