Stratégie de suivi des tendances basée sur l'indicateur de canal SSL


Date de création: 2023-11-27 16:42:34 Dernière modification: 2023-11-27 16:42:34
Copier: 0 Nombre de clics: 1445
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances basée sur l’indicateur de canal SSL

Aperçu

Cette stratégie est une stratégie de suivi de tendance basée sur les indicateurs de la passerelle SSL. Elle combine la gestion des arrêts et des pertes pour verrouiller les bénéfices afin d’obtenir une croissance stable des fonds.

Principe de stratégie

La logique principale du code est d’utiliser la croix dorée de la voie supérieure et de la voie inférieure de SSL pour juger de la direction de la tendance. Plus précisément, lorsque la voie supérieure de SSL brise la voie inférieure de SSL de la direction inférieure, faites plus; lorsque la voie inférieure de SSL brise la voie supérieure de SSL de la direction supérieure, faites moins.

Une fois dans la position, la stratégie utilise l’indicateur ATR multiplié par un facteur pour définir le prix d’arrêt et d’arrêt. Par exemple, le prix d’arrêt est le prix moins ATR * 1.5, le prix d’arrêt est le prix plus ATR * 1. Cela permet de contrôler efficacement les pertes individuelles et de bloquer les bénéfices.

Lorsque le canal SSL se déconnecte, il est possible de suivre le point de basculement de la tendance et d’arrêter les pertes en temps opportun.

Analyse des avantages

  1. Une grande précision dans la détection des tendances en utilisant le canal SSL
  2. Les réglages de stop-loss et de stop-stop sont raisonnables et permettent de contrôler efficacement les risques.
  3. La fin des pertes en temps opportun et le tournant de la tendance

Analyse des risques

  1. Les transactions tendancielles sont sujettes à une survente
  2. Il y a une probabilité que le jugement de la passerelle SSL échoue
  3. Le coefficient ATR doit être optimisé

Les solutions sont les suivantes:

  1. Ajustement approprié du cycle de détention
  2. Confirmation combinée à d’autres indicateurs
  3. Tester différentes combinaisons de facteurs ATR

Direction d’optimisation

  1. Optimiser les paramètres ATR pour trouver la meilleure combinaison de paramètres
  2. Ajout de filtres et de signaux de confirmation pour d’autres indicateurs
  3. Cycle de détention adapté aux différents marchés
  4. Optimisation des stratégies de stop loss

Résumer

L’idée générale de la stratégie est claire, elle utilise le canal SSL pour juger des tendances et définit des arrêts de perte raisonnables. Cependant, des tests et des optimisations supplémentaires sont nécessaires pour trouver la meilleure combinaison de paramètres en combinaison avec d’autres indicateurs pour filtrer les faux signaux. Dans le même temps, il est nécessaire d’ajuster les paramètres en fonction des différents marchés pour rendre la stratégie plus flexible.

Code source de la stratégie
/*backtest
start: 2022-11-26 00:00:00
end: 2023-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Designed per No Nonsense Forex VP rules
//For testing your individual indicators before the full system
//Originated from causecelebre
//Tried to put in as much VP rules as possible

///////////////////////////////////////////////////
//Rules Implemented:
///////////////////////////////////////////////////
// - SL 1.5 x ATR
// - TP 1 x ATR
//
// - Entry conditions
//// - Entry from 1 x confirmation
// - Exit conditions
//// - Exit on confirmation flip 

///////////////////////////////////////////////////
//Trades entries
///////////////////////////////////////////////////
// - First entry L1 or S1 with standard SL and TP

///////////////////////////////////////////////////
//Included Indicators and settings
///////////////////////////////////////////////////
// - Confirmtion = SSL 10

///////////////////////////////////////////////////
//Credits
// Strategy causecelebre https://www.tradingview.com/u/causecelebre/
// SSL Channel ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Change log
//First release. Testing of indicators
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

strategy(title="NNFX Strategy Indicator | jh", overlay = true )

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Set the main stuff  ****
///////////////////////////////////////////////////

//Price
price = close

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ATR stuff
///////////////////////////////////////////////////

slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP")

atrlength = input(title="ATR Length", defval=14, minval=1)
atrsmoothing = input(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlength) => 
    if atrsmoothing == "RMA"
        rma(source, atrlength)
    else
        if atrsmoothing == "SMA"
            sma(source, atrlength)
        else
            if atrsmoothing == "EMA"
                ema(source, atrlength)
            else
                wma(source, atrlength)

//plot(ma_function(tr(true), atrlength), title = "ATR", color=#991515, transp=0)

atr = ma_function(tr(true), atrlength)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Confirmation ****
///////////////////////////////////////////////////

ssllen=input(title="SSL Length Period", defval=10)
smaHigh=sma(high, ssllen)
smaLow=sma(low, ssllen)
Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp   = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, "SSL Down", linewidth=1, color=red)
plot(sslUp, "SSL Up", linewidth=1, color=lime)

///////////////////////////////////////////////////
//Confirm Signals
///////////////////////////////////////////////////

c_Up = sslUp
c_Down = sslDown

//Signals based on crossover
c_Long = crossover(c_Up, c_Down)
c_Short = crossover(c_Down, c_Up)

//Signals based on signal position
trendLong = c_Up > c_Down ? 1 : 0
trendShort = c_Down > c_Up ? 1 : 0

confirmLong = c_Long
confirmShort = c_Short

plotshape(trendLong, color = green, style=shape.triangleup, location=location.bottom)
plotshape(trendShort, color = red, style=shape.triangledown, location=location.bottom)


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Entries and Exits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (year>2009)

    //Long entries with standard 1.5 ATR for SL, 1 ATR for TP
    long_sl = price - (atr * slMultiplier)
    long_tp = price + (atr * tpMultiplier)
    strategy.order("L1", strategy.long, when = confirmLong)
    strategy.close("L1", when = confirmShort)
    strategy.exit("L Limit Exit", "L1", stop = long_sl, limit = long_tp)

    
    //Short entries with standard 1.5 ATR for SL, 1 ATR for TP
    short_sl = price + (atr * slMultiplier)
    short_tp = price - (atr * tpMultiplier)
    strategy.order("S1", strategy.short, when = confirmShort)
    strategy.close("S1", when = confirmLong)
    strategy.exit("S Limit Exit", "S1", stop = short_sl, limit = short_tp)


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//End
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////