この戦略は,ボリンジャーバンド,相対強度指数 (RSI) と指数移動平均 (EMA) の3つの指標を統合し,株の長期保持期間を持つ自動取引戦略を実装する.RSIが過売線以下で価格がボリンジャーバンド下線に近いまたは触れたとき購入信号を生成し,価格が上昇してボリンジャーバンド上線に触れたとき販売信号を生成し,ボリンジャーバンドを使用して市場の動向と過買い/過売状態を2倍確認する.
この戦略は主にボリンジャーバンド,RSIおよびEMAの3つの指標に基づいて判断する.ボリンジャーバンドのミドルレールは価格の単純な移動平均線であり,上下レールは価格の2つの標準偏差範囲である.ボリンジャーバンドは市場の過買い/過売り状態を判断することができる.価格が下下レールに近いとき,それは過売り状態を示し,価格が上下レールに近いとき,それは過買い状態を示します.RSIは株式が過買いまたは過売れているかどうかを判断するための重要な指標の一つです.RSI30未満は過売り状態を示し,RSI70を超える場合は過買い状態を示します.EMAは価格の指数的な重量化移動平均線であり,価格傾向を決定することができます.
この戦略の買い信号は,RSIが30超売り線を下回り,同時に価格が超売り状態でボリンジャーバンドの下部レールに近づいたか触れたときに生成されます.これは誤った信号を回避します.
セールシグナルは,値が上昇傾向中にボリンジャーバンド上部レールに触れたときに生成される.これはボリンジャーバンドを使用して過買い状態を決定し,利益を得るために販売する.
解決策:
この戦略は,次の側面においてさらに最適化することができる.
この戦略は,ボリンジャーバンド,RSIおよびEMAを統合し,ダブル確認フィルター付きの長期保有自動取引戦略です.過剰購入/過剰販売状態の二重確認は誤った信号を効果的に回避し,傾向決定のためにEMAを使用することで,トレンドに反して取引を防ぐことができます.一方,柔軟なパラメータ設定により,異なる株に適応できます.ストップ損失および退出メカニズムの側面のさらなる改善は,戦略の効率性とリスク管理を向上させることができます.この戦略は初心者にとって貴重な参照フレームワークを提供し,実用的な意味を持っています.
/*backtest start: 2023-12-21 00:00:00 end: 2023-12-28 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true) ///////////// RSI RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length RSIoverSold = input(30, title="RSI Oversold Level") // Adjustable RSI oversold level RSIoverBought = input(80, title="RSI Overbought Level") // Adjustable RSI overbought level price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length BBmult = 2 BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev ///////////// EMA useEMA = input(true, title="Use EMA?") emaLength = input(20, title="EMA Period Length") ema = useEMA ? ema(close, emaLength) : na source = close buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band sellEntry = crossunder(source, BBupper) ///////////// Plotting plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line") plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line") plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line") plot(ema, color=color.orange, title="EMA") // Plot EMA ///////////// RSI + Bollinger Bands Strategy long = crossover(vrsi, RSIoverSold) and buyEntry close_long = close >= BBupper if (not na(vrsi)) if long strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy") else strategy.cancel(id="Buy") if close_long strategy.close("Buy")