双向移動平均価格チャネル取引戦略には以下の利点があります.
戦略シグナルはシグナル振動なしに比較的安定しており,取引リスクを低下させる.
双向移動平均価格チャネル取引戦略には,いくつかのリスクもあります.
短期的な傾向を把握できず 価格が迅速にチャネルを突破すると 戦略は機会を逃す可能性があります
価格がチャネルの周りに振動すると,取引信号が頻繁に発信され,取引頻度は増加します.
ストップ・ロスのメカニズムがないことは,損失が拡大するときにリスクを効果的に制御できないことになる.
対応する解は次のとおりです.
誤った信号を減らすために価格チャネル長度パラメータを増加させる.また,取引頻度を制御するために適切なエントリー基準を緩和する.
バックテストを通じてパラメータを最適化して 最適な価格チャネル設定を見つけます
移動ストップロスのロジックを追加して,取引ごとに損失を減らす.
二重移動平均価格チャネル取引戦略のさらなる最適化には余地があります.
MACDやKDJなどの他の指標は,マルチインジケーターフィルタリングとより安定した信号のエントリー基準と組み合わせることができます.
ダイナミックストップロスのモジュールを追加できます.損失が一定のレベルに達すると,リスクを効果的に制御するためにストップロスを使ってポジションを閉じることができます.
/*backtest start: 2024-01-11 00:00:00 end: 2024-01-18 00:00:00 period: 1m basePeriod: 1m 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/ // © paparegier //@version=4 strategy("G-Channel and EMA Strategy", shorttitle="GEMA", overlay=true) // G-Channel Indicator length = input(100) a = 0.0 b = 0.0 a := na(a[1]) ? close : max(close, a[1]) - (a[1] - b[1]) / length b := na(b[1]) ? close : min(close, b[1]) + (a[1] - b[1]) / length avg = avg(a, b) crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = barssince(crossdn) <= barssince(crossup) // EMA Indicator emaLength = input(20, title="EMA Length") emaValue = ema(close, emaLength) // Strategy Conditions buyCondition = bullish and close < emaValue sellCondition = not bullish and close > emaValue // Execute Strategy strategy.entry("Buy", strategy.long, when=buyCondition) strategy.entry("Sell", strategy.short, when=sellCondition) // Plotting plot(avg, color=color.new(bullish ? color.lime : color.red, 90), linewidth=1, title="G-Channel Average") plot(emaValue, color=color.rgb(0, 0, 255, 90), linewidth=1, title="EMA") // Mark Buy and Sell Signals plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, text="Buy", size=size.small) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, text="Sell", size=size.small)