SARインジケーターCCIインジケーターに基づくEMAゴールド取引戦略


作成日: 2023-12-07 17:04:54 最終変更日: 2023-12-07 17:04:54
コピー: 0 クリック数: 980
1
フォロー
1619
フォロワー

SARインジケーターCCIインジケーターに基づくEMAゴールド取引戦略

概要

この戦略は,SAR指標,CCI指標,EMA指標の組み合わせに基づいた黄金のM5取引戦略である.これは,3つの異なる技術指標を総合的に利用して,黄金のトレンド方向とオーバーバイのオーバーセルの状況を識別し,中間回調によって提供される取引機会を捉えます.

戦略原則

  1. SAR指数は,黄金のトレンド方向と可能な逆転点を判断するために使用されます.SARポイントが下がると価格が横断され,多頭トレンドが形成され,SARポイントが上がると価格が横断され,空頭トレンドが形成されます.

  2. CCIは,市場の超買超売り状況を判断するために使用される.CCIが100を超えると多頭トレンドが強化され,CCIが100未満になると空頭トレンドが強化される.

  3. EMAは,価格の短期的な転換点を判断するために用いられる.

  4. 具体的入場規則:SAR指標が5分EMA平均線を上向きに通過すると,CCI指標が100より大きい時は多金する.SAR指標が5分EMA平均線を下向きに通過すると,CCI指標が100より小さい時は空金する.

  5. 止損 EXIT ルール: ストップポイントは開設価格に7ポイント加え,止損ポイントは1分EMA平均線である。

戦略的優位分析

  1. この戦略は,トレンドの方向と重要なサポート抵抗を識別する3つの指標を組み合わせて,利益の確率を高めます.

  2. CCI指標は,よくある偽突破を効果的にフィルターできます.SARの逆転点は,トレンドの方向判断と組み合わせて,揺れ動いている市場で繰り返しポジションを開くのを避けることができます.

  3. EMA快速スローラインクロスとSAR指標との組み合わせは,価格の短期的な調整が提供する低リスクの取引機会を効果的に識別することができます.

  4. 戦略パラメータは,金などの高変動品種に最適化され,小額口座にも適用されます.

リスク分析

  1. この戦略は技術指標に大きく基づいており,重大ブラックセイバー事件が発生した場合,技術指標が失敗する可能性が高い.

  2. 黄金などの商品は波動性があり,止損点はEMA平均線に設定され,止損を突破され,口座に大きな単一損失をもたらす可能性があります.

  3. CCI指数とSAR指数は,偽信号を発生させ,不必要な損失を招く可能性があります.

  4. 取引システムプラットフォームの故障の可能性が増加し, 制御不能な損失を招く可能性があります.

最適化の方向

  1. 異なるパラメータの組み合わせをテストして,CCI指標のパラメータを最適化して,黄金の特性をより適合させることができる.

  2. K線形,ブリン帯など,より多くの指標を組み合わせて戦略の安定性を向上させることができる.

  3. SAR指標のパラメータを機械学習などの手段で動的に最適化して,市場の変化に適したものにすることができます.

  4. ストップを追跡し,ストップが打ち破られる確率を下げるなど,様々なストップをテストすることができる.

  5. ポジション管理を最適化できる.例えば,固定シェア,動的調整を単量にするなど,単発損失を制御する.

要約する

この戦略は,全体的に比較して安定した金取引戦略である.これは,金のトレンド方向,重要なサポートレジスタンスレベル,そしてオーバーバイオーバーセール領域を識別するために複数の指標を組み合わせている.リコーディングの過程でポジションを開き,金の高い変動率を利用して利益を得ている.同時に,戦略のパラメータも最適化され,小額のアカウントのデフォルト取引に使用することができる.しかし,この戦略には一定のリスクがあり,適切なリスク管理が推奨されている.この戦略の安定性と収益性をさらに最適化すれば,大きく改善する余地がある.

ストラテジーソースコード
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true)

// Parameters
length = input(50, title="EMA Length")
length_21 = input(21, title="EMA Length 21")
acc = input(0.02, title="Acceleration Factor")
max_acc = input(0.2, title="Max Acceleration Factor")
takeProfitPoints = input(7, title="Take Profit Points")

// Variables
var float ep = 0.0
var float sar = 0.0
var float af = acc

// Calculating 5-minute EMA based on 1-minute data
var float sum_close = na
var float ema_5min = na
if (bar_index % 5 == 0)
    sum_close := 0.0
    for i = 0 to 4
        sum_close := sum_close + close[i]
    ema_5min := ema(sum_close / 5, length_21)

// Calculating 1-minute EMA
ema1 = ema(close, length)
cci = cci(close, 45)

// Custom Parabolic SAR Calculation
trendUp = close > ema1
trendDown = close < ema1

var float prev_sar = na
prev_sar := na(sar[1]) ? low[1] : sar[1]

if trendUp
    ep := high > ep ? high : ep
    af := min(af + acc, max_acc)
    sar := min(prev_sar, prev_sar + af * (ep - prev_sar))

if trendDown
    ep := low < ep ? low : ep
    af := min(af + acc, max_acc)
    sar := max(prev_sar, prev_sar + af * (ep - prev_sar))

// Entry Conditions
longCondition = sar > ema1 and ema1 > ema_5min and cci > 100
shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100

// Exit Conditions
longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick
longStopLoss = ema1
shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick
shortStopLoss = ema1

// Plotting Entry Points
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy Execution
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss)

if strategy.position_size < 0
    strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)