CDC 行動地域戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-20 11:23:24
タグ:

img

概要

CDCアクションゾーン[TSトレーダー]戦略は,CDCアクションゾーン指標から適応した定量的な取引戦略である.この戦略は,高速移動平均値と遅い移動平均値のクロスオーバーを買い売り信号として使用する.高速MAがスローMAを超えると,それは買い信号である.高速MAがスローMAを下回ると,それは売り信号である.

戦略原則

この戦略のコア指標は,高速移動平均値と遅い移動平均値である.戦略は,まず算数平均価格を計算し,その後,ユーザーによって定義された期間長さに基づいて高速移動平均値と遅い移動平均値を計算する.高速移動平均値が遅い移動平均値を超えると,それは上昇信号とみなされる.高速移動平均値が遅い移動平均値を下回ると,それは下落信号とみなされる.

市場傾向を特定した後,戦略は,閉値と移動平均の関係をさらに判断します.もし牛市場であり,閉値が高速MAよりも高くなった場合,それは強い購入信号です.もし熊市場であり,閉値が高速MA以下であれば,それは強い販売信号です.

この購入・販売信号に基づいて,戦略は自動取引を行うことができる.購入信号が起動すると,ロングポジションが開かれる.売却信号が起動すると,既存のロングポジションが閉鎖されるか,新しいショートポジションが開かれる.

利点分析

この戦略の利点は以下の通りです.

  1. 理論的な基礎として 移動平均を使います 分かりやすいです
  2. 騒音をフィルタリングし,動向を効果的に識別するために2つのMAを組み合わせます.
  3. さらに,閉じる価格とMA関係を用いて強いエントリーシグナルを決定します.
  4. シンプルで明快な論理で 自動化が簡単です
  5. 承認期間は,異なる市場状況に合わせて調整できます.

リスク分析

リスクもあります:

  1. 短期的な機会を逃すかもしれません
  2. トレンド逆転時に大きな損失をもたらす可能性があります
  3. バックテスト結果は,ライブ取引のパフォーマンスと異なる場合があります.

他の指標を組み合わせたり,承認期間を短縮したりなどといった方法が,これらのリスクに対処するのに役立ちます.

オプティマイゼーションの方向性

戦略を最適化するためのいくつかの方向性:

  1. 市場の変化に合わせて MA 期間を最適化する.
  2. 音量などの指標を追加して 誤差をフィルターします
  3. 傾向の逆転を特定するために他の指標を組み込む.
  4. ストップ損失をコントロール損失に追加します

概要

概要すると,CDCアクションゾーン (TSトレーダー) 戦略は,二重移動平均交差を用いたシンプルで実用的な定量的な取引戦略を実装する.この戦略は理解し,実装しやすいが,さらなる最適化のための余地がある.継続的なテストと改良により,安定した長期戦略になることができます.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CDC Action Zone [TS Trader]", overlay=true)

// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement

src = input(title="Data Array", type=input.source, defval=ohlc4)
prd1 = input(title="Short MA period", type=input.integer, defval=12)
prd2 = input(title="Long MA period", type=input.integer, defval=26)

AP = ema(src, 2)
Fast = ema(AP, prd1)
Slow = ema(AP, prd2)

// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window() => true
Bullish = Fast > Slow
Bearish = Fast < Slow

Green = Bullish and AP > Fast
Red = Bearish and AP < Fast
Yellow = Bullish and AP < Fast
Blue = Bearish and AP > Fast

//Long Signal
Buy = Green and Green[1] == 0
Sell = Red and Red[1] == 0

//Short Signal
Short = Red and Red[1] == 0
Cover = Red[1] and Red == 0

//Plot
l1 = plot(Fast, "Fast", linewidth=1, color=color.red)
l2 = plot(Slow, "Slow", linewidth=2, color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : color.white
barcolor(color=bcolor)
fill(l1, l2, bcolor)

strategy.entry("Buy", strategy.long, when=window() and Buy)
strategy.entry("Sell", strategy.short, when=window() and Sell)
strategy.close("Buy", when=window() and Sell)
strategy.close("Sell", when=window() and Buy)


もっと