
La stratégie d’Alpha Trend Tracking Stop Loss est basée sur la stratégie d’Alpha Trend Tracking Stop Loss, qui permet de contrôler plus efficacement les risques et d’améliorer le rendement global.
La stratégie utilise d’abord l’indicateur Alpha pour déterminer la tendance des prix. Lorsque l’indicateur Alpha est en hausse, c’est un signal positif. Lorsque l’indicateur Alpha est en baisse, c’est un signal négatif.
En même temps, la stratégie a activé le mécanisme de suivi des arrêts de perte. Le suivi des arrêts de perte prend en compte 10% du prix de clôture par défaut du jour. Lorsqu’une position en position multiple est détenue, si le prix baisse au-delà de la valeur de l’arrêt de perte, la perte s’arrête. Lorsqu’une position en position vide est détenue, si le prix monte au-delà de la valeur de l’arrêt de perte, la perte s’arrête.
Les tendances alpha sont plus efficaces pour déterminer les tendances des prix que les moyennes mobiles ordinaires.
Le système de suivi des pertes est activé, ce qui permet de contrôler efficacement les pertes individuelles et de réduire les risques.
Cette stratégie est basée sur une bonne maîtrise des risques et permet de minimiser les pertes, même en cas de mauvaise situation.
La stratégie est moins référencée, plus efficace et plus adaptée aux transactions à haute fréquence.
Cette stratégie génère plus de signaux de transaction inutiles lors de l’ajustement horizontal, ce qui augmente les coûts de transaction et les pertes de points de glissement.
L’activation du suivi des pertes nécessite un réglage raisonnable du pourcentage de perte, trop grand ou trop petit ne favorise pas la rentabilité de la stratégie.
La forte fluctuation du prix d’une devise entraîne une plus grande probabilité de déclenchement d’un stop loss et augmente le risque de piège.
L’optimisation des paramètres de stop loss nécessite une prise en compte intégrale de plusieurs facteurs, tels que les caractéristiques de l’indicateur, la fréquence des transactions, et ne peut pas être uniquement axée sur la maximisation des gains.
Les risques ci-dessus peuvent être atténués par des méthodes telles que l’ajustement des paramètres de l’indicateur Alpha, la mise en place d’un stop loss DYNAMIC et la réduction du cycle de négociation.
Les différents paramètres de l’indicateur peuvent être testés pour trouver la combinaison de paramètres de l’indicateur Alpha la plus appropriée.
Essayez de définir un stop loss basé sur l’ATR dynamique pour mieux s’adapter aux fluctuations du marché.
Il est possible de combiner les signaux de filtrage d’autres indicateurs, tels que MACD, KD, etc., pour filtrer certains signaux erronés.
L’intelligence de la sélection des paramètres peut être améliorée par l’utilisation de technologies telles que l’apprentissage automatique, l’optimisation automatique des paramètres basée sur les résultats des tests et des retours sur disque.
La stratégie d’Alpha de suivi de tendance de stop loss combine le jugement de tendance et le contrôle du risque, permettant de détecter efficacement les tendances de prix et de bloquer les bénéfices pour réduire les risques. Comparée à la simple stratégie de suivi de tendance, cette stratégie permet d’obtenir des rendements stables plus élevés.
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)
fill(k1, k2, color=color1)
buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])
K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])
plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))
plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))
// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
// strategy.entry('My Long Entry Id', strategy.long)
// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
// strategy.entry('My Short Entry Id', strategy.short)
longCondition = buySignalk
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = sellSignalk
if (shortCondition)
strategy.entry("Short", strategy.short)
enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - trailStop)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + trailStop)
math.min(stopValue, shortStopPrice[1])
else
999999
//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')
if enableTrailing
//EXIT TRADE @ TSL
if strategy.position_size > 0
strategy.exit(id='Close Long', stop=longStopPrice)
if strategy.position_size < 0
strategy.exit(id='Close Short', stop=shortStopPrice)