
Il s’agit d’une stratégie de négociation quantitative qui utilise l’indicateur ATR et le prix de clôture pour capturer les ruptures de tendance. La stratégie juge la direction de la tendance en calculant dynamiquement les lignes de tendance à la hausse et à la baisse, et génère un signal de négociation lorsque le prix de clôture franchit la ligne de tendance. La stratégie définit à la fois un stop loss et un prix cible, et peut effectuer un stop loss mobile en fonction de la volatilité.
La solution est simple:
Les cycles de temps multiples aident à filtrer le bruit et à mieux saisir les tendances. La vérification des indicateurs de prix avant la rupture permet d’éliminer les faux signaux. L’optimisation de la gestion des positions améliore l’efficacité de l’utilisation des fonds. L’optimisation des paramètres de stop loss et de stop loss ratio améliore le rapport de risque-revenu de la stratégie.
La stratégie utilise l’ATR comme mesure de la volatilité, ajuste dynamiquement la position de la ligne de tendance, capture les conditions de rupture de la tendance. Fixez des objectifs de stop-loss et de profit raisonnables et utilisez un stop-loss mobile pour verrouiller les bénéfices. Les paramètres sont réglables et adaptatifs.
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Claw-Pattern", overlay=true, calc_on_every_tick=true, default_qty_type= strategy.percent_of_equity,default_qty_value=10, currency="USD")
//Developer: Trading Strategy Guides
//Creator: Trading Strategy Guides
//Date: 3/18/2024
//Description: A trend trading system strategy
atr_period = input(title="ATR Period", defval=120, type=input.integer)
atr_mult = input(title="ATR Multiplier", defval=2, type=input.integer)
dir = input(title="Direction (Long=1, Short=-1, Both = 0)", defval=1, type=input.integer)
factor = input(title="Stop Level Deviation (% Chan.)", defval=0.75, type=input.float)
rr = input(title="Reward to Risk Multiplier", defval=2, type=input.integer)
trail_bar_start = input(title="Trail Stop Bar Start", defval=20, type=input.integer)
col_candles = input(title="Enable Colored Candles", defval=false, type=input.bool)
atr_signal = atr(atr_period)
lower_trend = low - atr_mult*atr_signal
upper_trend = high + atr_mult*atr_signal
upper_trend := upper_trend > upper_trend[1] and close < upper_trend[1] ? upper_trend[1] : upper_trend
lower_trend := lower_trend < lower_trend[1] and close > lower_trend[1] ? lower_trend[1] : lower_trend
upper_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? color.red : na
lower_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? na : color.green
trend_line = lower_trend
plot(lower_trend, color=lower_color, title="Lower Trend Color")
plot(upper_trend, color=upper_color, title="Upper Trend Color")
is_buy = strategy.position_size == 0 and crossover(close, upper_trend[1]) and upper_color[1]==color.red and (dir == 1 or dir == 0)
is_sell = strategy.position_size == 0 and crossover(close, lower_trend[1]) and lower_color[1]==color.green and (dir == -1 or dir == 0)
if is_buy
strategy.entry("Enter Long", strategy.long)
else if is_sell
strategy.entry("Enter Short", strategy.short)