
Aperçu
Cette stratégie combine les bandes de Boulder et un indicateur relativement faible (RSI) pour juger des signaux d’achat et de vente. Un signal d’achat est généré lorsque le prix dépasse la bande de Boulder et que le RSI est inférieur à la limite inférieure définie. Un signal de vente est généré lorsque le prix dépasse la bande de Boulder et que le RSI est supérieur à la limite supérieure définie.
Principe de stratégie
- Calculer l’indicateur RSI pour mesurer le surachat et la survente des prix.
- Le calcul de l’inclinaison et de la descente de la courbe de Brin est utilisé pour déterminer la rupture du prix.
- La combinaison du RSI et de la courbe de Brent définit les signaux d’achat et de vente:
- Un signal d’achat est généré lorsque le prix de clôture est inférieur à la trajectoire descendante de la ceinture de Brin et que le RSI est inférieur au niveau de limite inférieure fixé.
- Un signal de vente est généré lorsque le prix de clôture est supérieur à la barre de Brin et que le RSI est supérieur au niveau de limite supérieur défini.
- L’introduction d’un paramètre d’intervalle d’achat et d’achat pour limiter la fréquence des achats consécutifs, ce qui facilite la gestion des positions pyramidales.
Avantages stratégiques
- Double confirmation: la stratégie utilise simultanément les bandes de Brin et le RSI pour capturer les virages de tendance de manière plus fiable et réduire le risque de faux signaux.
- Construire une position pyramidale: en définissant des paramètres d’intervalle d’achat, la stratégie peut augmenter progressivement la position après l’établissement d’une tendance, ce qui est utile pour contrôler les risques et optimiser les gains.
- La flexibilité des paramètres: les utilisateurs peuvent définir des paramètres tels que la limite supérieure ou inférieure du RSI et l’intervalle d’achat en fonction des caractéristiques du marché et de leurs préférences personnelles.
Risque stratégique
- Risque de poursuite de la tendance: si le prix recule brièvement après la rupture de la zone de Brin, la stratégie peut se calmer prématurément et manquer la suite de la tendance.
- Risque d’optimisation des paramètres: la combinaison optimale de paramètres peut varier considérablement selon les conditions du marché et la stratégie peut être exposée à un risque de suradaptation.
- Black Swan: une stratégie basée sur des données historiques qui pourrait ne pas répondre efficacement aux situations extrêmes.
Orientation de l’optimisation de la stratégie
- Introduction d’un stop loss: ajout d’une logique de stop loss mobile ou fixe à la stratégie afin de contrôler davantage le risque d’une seule transaction.
- Optimisation des paramètres dynamiques: Adaptation dynamique des paramètres tels que la limite supérieure et inférieure du RSI et l’intervalle d’achat en fonction de l’état du marché pour améliorer l’adaptabilité de la stratégie.
- Combinaison avec d’autres indicateurs techniques: introduire d’autres indicateurs de type tendance ou oscillation comme jugement auxiliaire, améliorer la solidité de la stratégie.
Résumer
La stratégie combine habilement deux indicateurs techniques classiques, les bandes de Brin et le RSI, pour capturer les opportunités de tendance grâce à un mécanisme de double confirmation. En même temps, la stratégie introduit une méthode de construction de positions pyramidale, qui vise à optimiser les gains tout en contrôlant les risques.
Code source de la stratégie
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
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/
//@version=4
strategy(overlay=true, shorttitle="cakes'Strategy For RSI", default_qty_type = strategy.percent_of_equity, initial_capital = 100000, default_qty_value = 100, pyramiding = 0, title="cakes'Strategy", currency = 'USD')
////////// ** Inputs ** //////////
// Stoploss and Profits Inputs
v1 = input(true, title="GoTradePlz")
////////// ** Indicators ** //////////
// RSI
len = 14
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
// Bollinger Bands
length1 = 20
src1 = close
mult1 = 1.0
basis1 = sma(src1, length1)
dev1 = mult1 * stdev(src1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
////////// ** Triggers and Guards ** //////////
// 输入
RSILowerLevel1 = input(30, title="RSI 下限水平")
RSIUpperLevel1 = input(70, title="RSI 上限水平")
// 购买间隔
buyInterval = input(5, title="购买间隔(K线数量)")
// 跟踪购买间隔
var int lastBuyBar = na
lastBuyBar := na(lastBuyBar[1]) ? bar_index : lastBuyBar
// 策略信号
BBBuyTrigger1 = close < lower1
BBSellTrigger1 = close > upper1
rsiBuyGuard1 = rsi < RSILowerLevel1
rsiSellGuard1 = rsi > RSIUpperLevel1
Buy_1 = BBBuyTrigger1 and rsiBuyGuard1 and (bar_index - lastBuyBar) >= buyInterval
Sell_1 = BBSellTrigger1 and rsiSellGuard1
if (Buy_1)
lastBuyBar := bar_index
strategy.entry("Long", strategy.long, when = Buy_1, alert_message = "Buy Signal!")
strategy.close("Long", when = Sell_1, alert_message = "Sell Signal!")