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

G-Trend EMA ATR インテリジェント・トレーディング・ストラテジー

作者: リン・ハーンチャオチャン開催日:2024年6月14日15時35分15秒
タグ:エイマATR

img

概要

この戦略は,Gチャネル指標を使用して市場のトレンド方向を特定し,EMAとATR指標を組み込み,エントリー&エグジットポイントを最適化します.主なアイデアは:価格がGチャネルの上部バンドを突破し,EMAを下回るとロング;価格が下部バンドを突破し,EMAを下回るとショートです.一方,ATRは,ストップロスの2倍でストップロスの4倍で利益を得るために動的ストップロスのレベルを設定するために使用されます.このアプローチは,リスクを厳格に制御しながらトレンド市場でより多くの利益を得ることができます.

戦略の原則

  1. Gチャネル上下帯を計算する: Gチャネルの上下帯を計算するために,現在の閉値と以前の高値と低値を使用する.
  2. トレンド方向を決定する: 価格とGチャネル帯間の関係を観察し,上昇傾向または下落傾向を決定する.
  3. EMAを計算する:指定された期間の EMA値を計算する.
  4. ATRを計算する:指定された期間におけるATR値を計算する.
  5. 購入/売却条件を決定する:価格が上部帯を超えてEMAを下回るときにロングポジションを起動する.価格が下部帯を超えてEMAを下回るときにショートポジションを起動する.
  6. ストップ・ロストとテイク・プロフィートを設定する:ストップ・ロストはエントリー価格 - 2ATR 利益は入場価格+4ATR (ロング);ストップ・ロスはエントリー価格 + 2ATR,利益は入場価格です - 4ATR (ショート)
  7. 戦略の実行: 買い/売却条件が満たされると,対応するエントリー操作を実行し,それに応じてストップ・ロストとテイク・プロフィートを設定します.

戦略 の 利点

  1. トレンドフォロー: 戦略は,トレンド市場に適したGチャネルを使用して,市場のトレンドを効果的に把握します.
  2. ダイナミックストップ・ロースとテイク・プロフィート:ATRは,ストップ・ロースとテイク・プロフィートのレベルをダイナミックに調整するために使用され,市場の変動により良く適応します.
  3. リスク管理:ストップ・ロスはATRの2倍に設定され,各取引のリスクを厳格に制御します.
  4. シンプルで使いやすい: 戦略の論理は明確で直接的で,ほとんどの投資家に適しています.

戦略リスク

  1. 変動市場:変動市場では,頻繁な取引信号が損失を増やす可能性があります.
  2. パラメータの最適化: 異なる取引ツールやタイムフレームには異なるパラメータが必要であり,盲目的に適用するとリスクが生じる可能性があります.
  3. ブラック・スワン・イベント:急激な価格変動の極端な市場状況では,ストップ・ロスは効果的に実行されない可能性があります.

戦略の最適化方向

  1. トレンドフィルタリング: MAクロスオーバー,DMIなどのトレンドフィルタリング条件を追加し,市場範囲での取引を減らす.
  2. パラメータ最適化: 異なる機器やタイムフレームのパラメータを最適化し,最適なパラメータの組み合わせを見つけます.
  3. ポジションマネジメント: 市場の変動に基づいてポジションを動的に調整し,資本活用を改善する.
  4. 戦略の組み合わせ:この戦略を他の効果的な戦略と組み合わせて安定性を向上させる.

概要

この戦略は,Gチャネル,EMA,ATRなどの指標を使用して,シンプルで効果的なトレンドフォローする取引システムを構築する.トレンド市場では良い結果を達成できるが,市場範囲では平均的なパフォーマンスを発揮する.今後,戦略の強度と収益性をさらに高めるために,トレンドフィルタリング,パラメータ最適化,ポジション管理,戦略組み合わせなどで戦略を最適化することができる.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy ("G-Channel Trend Detection with EMA Strategy and ATR", shorttitle="G-Trend EMA ATR Strategy", overlay=true)

// Inputs for G-Channel
length = input(100, title="G-Channel Length")
src = input(close, title="Source")

// G-Channel Calculation
var float a = na
var float b = na
a := max(src, nz(a[1])) - (nz(a[1] - b[1]) / length)
b := min(src, nz(b[1])) + (nz(a[1] - b[1]) / length)
avg = (a + b) / 2

// G-Channel Signals
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
c = bullish ? color.lime : color.red

// Plot G-Channel Average
p1 = plot(avg, "Average", color=c, linewidth=1, transp=90)
p2 = plot(close, "Close price", color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)

// Show Buy/Sell Labels
showcross = input(true, title="Show Buy/Sell Labels")
plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1)

// Inputs for EMA
emaLength = input(50, title="EMA Length")
emaValue = ema(close, emaLength)

// Plot EMA
plot(emaValue, title="EMA", color=color.blue, linewidth=1)

// ATR Calculation
atrLength = input(14, title="ATR Length")
atrValue = atr(atrLength)

// Strategy Conditions
buyCondition = bullish and close < emaValue
sellCondition = not bullish and close > emaValue

// Stop Loss and Take Profit Levels
longStopLoss = close - 2 * atrValue
longTakeProfit = close + 4 * atrValue
shortStopLoss = close + 2 * atrValue
shortTakeProfit = close - 4 * atrValue

// Execute Strategy with ATR-based stop loss and take profit
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss, limit=longTakeProfit)

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Buy/Sell Signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", offset=-1)
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", offset=-1)


関連性

もっと