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

ケルトナー・チャネルズ EMA ATR戦略

作者: リン・ハーンチャオチャン,日付: 2024-06-03 10:39:20
タグ:エイマATR

img

概要

この戦略は,指数移動平均 (EMA) と平均真差 (ATR) を使って上下チャネルを構成するケルトナーチャネル指標に基づいています.価格が下下チャネルを下回ると,ロングポジションに入ります.価格が上下チャネルを突破すると,ポジションを閉じる.この戦略は価格変動範囲を把握し,価格が上下チャネルを突破すると利益を得ます.

戦略の原則

  1. 特定の期間の EMA を,ケルトナーチャネルの中央線として計算する.
  2. 指定された期間の ATR を計算し,それを上下のチャネルとして使う因数で掛けます.
  3. 閉じる価格が下方チャネルを下回ると,ロングポジションを入力し,エントリー価格を記録します.
  4. オープニング価格が上方チャネルを突破すると,ポジションを閉じる.
  5. オープン価格が上方チャネルより高くなった場合,ロングポジションを閉じる.

戦略 の 利点

  1. 価格変動への適応性.ケルトナーチャネルは上下チャネルを構成するためにATRを使用し,ATRは価格変動を測定するため,変動が高くなる場合,チャネル幅は相応に増加し,頻繁な取引コストを効果的に削減します.
  2. 明確な論理,シンプルで,理解し実行しやすい.この戦略で使用される指標はシンプルで,基本的な論理は比較的理解しやすい.
  3. トレンドフォローする能力がある. 上向きのトレンドでは,この戦略は価格が上方チャネルを突破するまでロングポジションを保持することができます.

戦略リスク

  1. 明確なストップ・ロスのメカニズムの欠如.この戦略は,ポジションに入るとストップ・ロスを設定しないため,不利な市場条件では大きな引き下げにつながる可能性があります.
  2. ブレイクシグナルの粗略な定義. 入出シグナルのように,下方チャネルを下回る閉値と上部チャネルを突破する開通価格のみを使用すると,いくつかの判断が誤りになり,取引が失敗する可能性があります.
  3. 戦略パラメータの選択は結果に大きな影響を与えます. EMAとATR期間を選択し,ATR倍数の設定は戦略のパフォーマンスに影響しますが,戦略は明確なパラメータ最適化方法を提供していません.

戦略の最適化方向

  1. 明確なストップ・ロスのメカニズムを導入する.単一の取引の最大損失を制御するためにポジションに入るとき,固定数点またはパーセントでストップ・ロスを設定することを検討する.
  2. シグナルの判断条件を最適化します. 誤ったブレイクを避けるためにポジションに入る前に,閉じる価格が数連発のキャナルの下位値を下回るように要求するなど,ブレイクを確認するためにより多くの価格情報を使用することを検討します.
  3. パラメータ最適化を行います. EMAとATRの期間とATR倍数を最適化するために遺伝アルゴリズムなどの方法を使用して,現在の市場に最も適したパラメータ組み合わせを見つけます.
  4. フィルタリング条件を追加する. ADX が一定の値を超えるとポジションに入れるか,MA の上昇クロスオーバーをトレンドフィルターとして使うなど,いくつかのフィルタリング信号を追加することを検討する.

概要

この戦略は,ケルトナーチャネル指標に基づい,チャネルの上または下での価格ブレイクの論理に基づいて取引を行う.その利点はシンプルで明確な論理と強い適応性である.その欠点はストップ損失の欠如とシグナル品質の低下である.将来,ストップ損失を導入し,シグナルを最適化し,パラメータの最適化,フィルタリング条件を追加することによって戦略を改善することができる.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © satrusskumar

//@version=5

// Input parameters
length = input.int(21, title="EMA Length")
mult = input.float(2, title="ATR Multiplier")
atrLength = input.int(13, title="ATR Length")

// Calculate Keltner Channels
ema = ta.ema(close, length)
atr = ta.atr(atrLength)
upper_band = ema + mult * atr
lower_band = ema - mult * atr

// Plot Keltner Channels
plot(upper_band, color=color.red, title="Keltner Upper Band")
plot(ema, color=color.blue, title="Keltner EMA")
plot(lower_band, color=color.green, title="Keltner Lower Band")

// Strategy logic
var float entry_price = na
var bool in_trade = false

if (not in_trade and close < lower_band)
    strategy.entry("Long", strategy.long)
    entry_price := close
    in_trade := true

if (in_trade and open > upper_band)
    strategy.close("Long")
    in_trade := false
// Strategy settings
strategy("Keltner Channel Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)


関連性

もっと