資源の読み込みに... 荷物...

2つの移動平均価格チャネル取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-19 16:44:31
タグ:

img

概要

戦略の論理

    • 価格が床を突破し 移動平均を下回ると,ロングになります.
    • 売り信号:価格が上限を突破し 移動平均値を超えると ショートになります

利点分析

双向移動平均価格チャネル取引戦略には以下の利点があります.

  1. 戦略シグナルはシグナル振動なしに比較的安定しており,取引リスクを低下させる.

リスク分析

双向移動平均価格チャネル取引戦略には,いくつかのリスクもあります.

  1. 短期的な傾向を把握できず 価格が迅速にチャネルを突破すると 戦略は機会を逃す可能性があります

  2. 価格がチャネルの周りに振動すると,取引信号が頻繁に発信され,取引頻度は増加します.

  3. ストップ・ロスのメカニズムがないことは,損失が拡大するときにリスクを効果的に制御できないことになる.

対応する解は次のとおりです.

  1. 誤った信号を減らすために価格チャネル長度パラメータを増加させる.また,取引頻度を制御するために適切なエントリー基準を緩和する.

  2. バックテストを通じてパラメータを最適化して 最適な価格チャネル設定を見つけます

  3. 移動ストップロスのロジックを追加して,取引ごとに損失を減らす.

最適化

二重移動平均価格チャネル取引戦略のさらなる最適化には余地があります.

  1. MACDやKDJなどの他の指標は,マルチインジケーターフィルタリングとより安定した信号のエントリー基準と組み合わせることができます.

  2. ダイナミックストップロスのモジュールを追加できます.損失が一定のレベルに達すると,リスクを効果的に制御するためにストップロスを使ってポジションを閉じることができます.

概要


/*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)



もっと