God
この戦略の基本的な論理は以下の点に基づいています
閉じる価格の20期間の単純な移動平均をベースの中間帯として計算する.
中間帯に基づいて上位帯と下位帯を計算する.上位帯は中間帯+閉値の20期標準偏差の2倍,下位帯は中間帯--閉値の20期標準偏差の2倍.
過剰購入および過剰販売現象を判断するために14期間のRSI指標を計算します. 20未満のRSIは過剰販売であり,70を超えるRSIは過剰購入です.
閉じる価格が上方レールを突破し,RSIインジケーターが過剰売り信号を示すると,買い信号が生成されます.
閉じる価格が上方レールを破り RSIインジケーターがオーバー買い信号を表示すると,セール信号が生成されます.
この戦略は,ボリンジャー・バンド指標を通じて価格変動のリズムと速度を判断し,RSI指標で取引信号を発行する可能な逆転点を検出します.
ボリンジャー・バンド指標は市場変動のリズムと方向を決定し,RSI指標は過買い・過売現象を判断します.この組み合わせは効果的な取引信号を形成します.
RSI指標のパラメータは調整可能で,間違った信号を避けるため,異なる市場で異なる過剰購入と過剰販売レベルを設定することができます.
ボリンジャー・バンドのパラメータは,適切なパラメータを設定し,収益性を向上させるために,市場の変動範囲と速度に応じて調整することもできます.
上部トラックを突破すると買い信号となり,上部トラックを突破すると売り信号となる.取引の論理は単純で理解しやすい.
株式,外為,暗号通貨市場で使用できます.
持続的な上向き市場では,購入信号の複数の誤判を引き起こす可能性があります. RSIパラメータを最適化することでエラー信号率は軽減できます.
波動的な市場では,ボリンジャー帯の上下線が頻繁に振動し,しばしば非収益的な取引につながる可能性があります.不必要な取引を減らすためにブレイクアウトパラメータを適切に緩めましょう.
このコードでは,過剰購入と過剰売却の基準が固定されているが,市場変動の異なるレベルに応じて設定されるべきである.
ボリンジャー・バンドとRSIの両方の指標は遅れがあり,価格変動を事前に予測することはできませんが,価格変動を追跡できます.
異なる市場の特徴に応じて,ボリンジャー帯のパラメータを調整し,ボリンジャー帯の幅を拡大し,誤った取引の確率を減らす.
RSI パラメータも異なる市場に合わせて調整し,複数の誤った取引信号を誘発しないように,過剰購入と過剰販売基準を適切に増加する必要があります.
判断のための他の指標,例えばKDJとMACDを増加させ,単一のボリンジャー帯とRSI指標によるエラーを避ける.
ストップ・ロスの戦略を強化し,過剰な損失を避けるために合理的なストップ・ロスのポイントを設定します.
戦略の安定性をさらに向上させるために,ブレイクアウトテストまたはバックテストのパラメータ最適化を検討することができる.
God
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Band + RSI Strategy", overlay=true) // Input variables numCandlesOutsideBB = input(3, "Number of Candles Outside BB") numCandlesOutsideUpperBB = input(3, "Number of Candles Outside Upper BB") rsiLength = input(14, "RSI Length") rsiOversoldLevel = input(20, "RSI Oversold Level") rsiOverboughtLevel = input(70, "RSI Overbought Level") // Bollinger Bands length = input(20, minval=1, title="BB Length") mult = input(2.0, minval=0.001, maxval=50, title="BB Standard Deviation") basis = sma(close, length) dev = mult * stdev(close, length) upperBB = basis + dev lowerBB = basis - dev // RSI rsi = rsi(close, rsiLength) // Buy condition buyCondition = crossover(close, upperBB) and rsi > rsiOversoldLevel // Sell condition sellCondition = crossunder(close, upperBB) and rsi > rsiOverboughtLevel // Strategy if buyCondition strategy.entry("Buy", strategy.long) if sellCondition strategy.close("Buy") // Plotting plot(upperBB, color=color.blue) plot(lowerBB, color=color.red) plot(rsi, "RSI", color=color.green)