
この記事では,G-チャネル指標とインデックス移動平均 ((EMA)) をベースにしたトレンド追跡取引戦略を紹介する.この戦略は,G-チャネル指標を使用して,現在の市場トレンドの方向を判断し,EMA指標の横断と組み合わせて,買入シグナルを生成する.この戦略の主要な考えは,上昇傾向で価格がEMA近くに戻るときに購入し,下降傾向で価格がEMA近くに戻るときに売却し,それによって主要な価格トレンドを捕捉することです.
この戦略の核心は,アンドリュー・グッピーが最初に提唱したGチャネル指標で,現在の価格の動きのトレンド方向を判断することを目的としている.Gチャネル指標は,上軌道,下軌道,平均線で構成されている.上軌道が連続した接近期価格の最高点,下軌道が連続した接近期価格の最低点,平均線は上下軌道の算術平均である.
閉盘価格が上方突破して上線を打つということは,上昇傾向が始まることを意味します.閉盘価格が下方突破して下線を打つということは,下線が始まることを意味します. この戦略は使用されます.barssince()この関数は,最近の一次上昇と下落が,それぞれ何根K線前に起こったかを計算する.この2つのうち,最も近い方向が,現在のトレンド方向である.
EMAはトレンドを追跡する指標であり,単純移動平均と比較して,その重量分布は近期価格に傾いているので,価格の変化に反応するより敏感である.上昇傾向では,EMAは価格の下にあり,サポートの役割を果たし,下降傾向では,EMAは価格上にあり,圧力の役割を果たす.
この戦略の取引論理は以下の通りです.
この記事では,G-チャネル指標とEMA指標に基づくトレンド追跡戦略について説明します. この戦略は,G-チャネルを使用して,現在の市場トレンドの方向を正確に判断し,トレンドの中で価格がEMAを横切る際に売買の機会を捉えます. この戦略の優点は,トレンド追跡能力が強く,適応性が広く,しかし,トレンドの転換,パラメータの不適切な設定,およびブラック天気事件がもたらすリスクに警戒する必要があります.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © jonathan_422
//@version=4
strategy("G-Channel and EMA Strategy", shorttitle="G-EMA Strategy", overlay=true)
// G-Channel settings
length = input(100)
src = input(close)
// Calculating G-Channel
a = 0.0
b = 0.0
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 = avg(a, b)
// EMA settings
emaLength = input(9, title="EMA Length")
ema = ema(close, emaLength)
// G-Channel buy/sell signals
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
// Strategy logic
buySignal = bullish and close < ema
sellSignal = not bullish and close > ema
// Plotting
plot(ema, "EMA", color=color.orange)
plot(avg, "Average", color=color.blue)
// Plot buy/sell signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy execution
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.close("Buy", when=sellSignal)