Cette stratégie combine les caractéristiques de l'indicateur AlphaTrend et de l'indicateur Brainstorming. L'indicateur AlphaTrend est utilisé pour capturer les tendances du marché et l'indicateur Brainstorming est utilisé pour capturer les caractéristiques de régression de la valeur moyenne du marché.
La stratégie combine les caractéristiques de suivi des tendances et de régression des moyennes pour tirer un avantage supplémentaire dans les marchés turbulents en suivant les tendances lorsqu'elles sont évidentes. L'indicateur AlphaTrend est capable de s'adapter plus facilement aux tendances en fonction de l'évolution des prix.
Les mesures suivantes peuvent être mises en place pour contrer ces risques:
Il y a encore beaucoup de place pour l'optimisation de la stratégie. L'optimisation des paramètres et le filtrage des signaux peuvent améliorer intuitivement la performance de la stratégie. L'introduction de la gestion des positions peut aplanir la courbe des gains.
La stratégie combine habilement les deux idées de stratégie quantitative courantes, le suivi des tendances et la régression des moyennes, tout en utilisant l'indicateur AlphaTrend et l'indicateur classique de Brainstorming. L'indicateur AlphaTrend tire pleinement parti des informations sur les prix et les volumes de transactions et s'adapte bien au rythme du marché tout en saisissant les tendances.
La stratégie a une logique globale claire, des paramètres flexibles, et peut être optimisée pour différentes variétés et cycles. En même temps, les risques de la stratégie sont plus évidents, la gestion des positions et les arrêts de perte doivent être optimisés. De plus, pour améliorer encore la fiabilité des signaux, il est possible d'envisager l'introduction d'indicateurs de type tendance tels que ADX, indicateurs de dynamique tels que RSI, etc. En général, la stratégie est une combinaison classique d'investissement tendance et d'idées de retour d'équilibre.
/*backtest start: 2023-03-22 00:00:00 end: 2024-03-27 00:00:00 period: 1d basePeriod: 1h 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/ // © brlu99 //@version=5 strategy(title="AlphaTrend and Bollinger Bands 120324 Strategy", shorttitle="AT_BB120324", overlay=true, format=format.price, precision=2, pyramiding=0) // AlphaTrend Indicator coeff = input.float(1, 'Multiplier', step=0.1) AP = input(14, 'Common Period') ATR = ta.sma(ta.tr, 20) src = input(close) 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 // Bollinger Bands Strategy BBPeriod = input.int(20, title="BB Period", minval=1) BBMultiplier = input.float(2.0, title="BB Multiplier", minval=0.1) basis = ta.sma(close, BBPeriod) dev = ta.stdev(close, BBPeriod) upper = basis + BBMultiplier * dev lower = basis - BBMultiplier * dev // Strategy Conditions longCondition = ta.crossover(close, upper) and ta.crossover(AlphaTrend, AlphaTrend[1]) shortCondition = ta.crossunder(close, lower) and ta.crossunder(AlphaTrend, AlphaTrend[1]) // Exit conditions for Strategy 6 longExit_AT_6 = ta.crossover(close, AlphaTrend) shortExit_AT_6 = ta.crossunder(close, AlphaTrend) // Exit condition series exit1 = input.bool(true, title="Enable Exit Condition for Strategy 1") // Define exit conditions for each strategy exit1_condition = close < AlphaTrend ? 1.0 : na // Strategy Actions strategy.entry("Buy", strategy.long, when=longCondition) strategy.entry("Sell", strategy.short, when=shortCondition) // Exit conditions for Strategy 1 strategy.exit("Buy", "longExit_AT_6", stop = exit1_condition, when =shortExit_AT_6 ) strategy.exit("Sell", "shortExit_AT_6", stop = exit1_condition, when =longExit_AT_6) // Plotting plot(AlphaTrend, color=color.blue, title="AlphaTrend") plot(upper, color=color.green, title="Upper Bollinger Band") plot(lower, color=color.red, title="Lower Bollinger Band") // Alerts alertcondition(longCondition, title='Potential Buy Signal', message='AlphaTrend crossed above Upper Bollinger Band') alertcondition(shortCondition, title='Potential Sell Signal', message='AlphaTrend crossed below Lower Bollinger Band')