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

CDCアクションゾーン トレーディングボット戦略 ATRで 利益とストップ損失を

作者: リン・ハーンチャオチャン,日付: 2024-06-03 16:19:32
タグ:TAエイマATR

img

概要

この戦略は,CDCアクションゾーンに基づいたトレードボット戦略である.市場動向を決定するために12期および26期指数関数移動平均値 (EMA) を使用し,短期EMAが長期EMAよりも高くなるとロングになり,逆が真実であればショートになる.この戦略は,ダイナミックなテイク・プロフィートとストップ・ロスのレベルを設定するために平均真域 (ATR) を採用する.テイク・プロフィートのレベルはATRと倍数値に基づいて決定され,ストップ・ロスのレベルは現在の閉値の5%に固定される.

戦略の原則

  1. 市場動向を決定するために 12 期間の EMA と 26 期間の EMA を計算する.
  2. ATRを計算し,動的取利益とストップ損失を設定する.
  3. 短期EMAが長期EMAを上回ると,買い信号が生成され,ロングポジションが開かれます.
  4. 短期EMAが長期EMAを下回ると,セールシグナルが生成され,ショートポジションが開かれます.
  5. 利息の引き上げレベルは,ATRと倍数値に基づいて決定され,価格が利息の引き上げレベルに達するとポジションは閉鎖されます.
  6. ストップ・ロスのレベルは,現在の閉店価格の5%で固定され,価格がストップ・ロスのレベルに達すると,ポジションは閉鎖されます.

戦略 の 利点

  1. 市場動向を把握するために EMA を使用することで,異なる市場状況に効果的に適応できます.
  2. ATRを動的利益のレベルを設定するために使うことは利益をより良く保護することができます.
  3. 固定ストップ損失レベルはリスクを制御し,損失を許容範囲に制限するのに役立ちます.
  4. コード構造は明確で,理解し,修正しやすいため,さらなる最適化に適しています.

戦略リスク

  1. EMAは遅れの指標であり,市場の急速な変化に誤った信号を生む可能性があります.
  2. ATRに基づく取利益レベルは,市場波動が高いとき,利益を間に合うように保護できない可能性があります.
  3. 固定ストップロスのレベルは,一部の場合,前期にポジションを閉鎖し,潜在的な利益を失わせる可能性があります.
  4. 戦略は取引コストとスライドを考慮しないため,実際の取引結果はバックテストの結果と異なる可能性があります.

戦略の最適化方向

  1. 信号の精度を向上させるために,MACDや移動平均のクロスオーバーなどの他のトレンド指標で実験する.
  2. ATR マルチプリキュアを最適化し,利益/ストップ損失の割合を取って,異なる市場状況により良く適応する.
  3. リスクをより適切に制御するために,トライリングストップや変動ベースのストップなどのダイナミックストップ・ロスのメカニズムを導入する.
  4. 戦略の実際のパフォーマンスを向上させるために,適切な取引ツールと取引セッションを選択します.

概要

この戦略は,CDCのアクションゾーンに基づくATRベースの取利益とストップ損失取引ボット戦略である.市場動向を把握するためにEMA,動的取利益レベルを設定するためにATR,リスク制御のために固定パーセントストップ損失を使用する.この戦略には一定の利点があるが,まだいくつかのリスクと改善余地がある.さらなる最適化とテストにより,戦略は実際の取引で良いパフォーマンスを達成することができる.


/*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"}]
*/

//@version=5
strategy("CDC Action Zone Trading Bot with ATR for Take Profit and 5% Stop Loss", overlay=true)

// ดึงข้อมูลราคาปิด
close_price = close

// คำนวณเส้น EMA 12 และ EMA 26
ema12 = ta.ema(close_price, 12)
ema26 = ta.ema(close_price, 26)

// คำนวณ ATR
atr_length = input.int(14, title="ATR Length")
atr = ta.atr(atr_length)

// กำหนด Multiplier สำหรับ ATR Trailing Stoploss
mult_atr_stoploss = input.float(2.5, title="ATR Stoploss Multiplier")

// คำนวณ ATR Trailing Stoploss
prev_stoploss = close_price
for i = 1 to 10
    prev_stoploss := math.max(prev_stoploss, high[i] - mult_atr_stoploss * atr)

// กำหนด Take Profit เป็น ATR Trailing Stoploss
takeProfitPercent = input.float(10, title="Take Profit (%)") / 100
takeProfit = close_price + (close_price - prev_stoploss) * takeProfitPercent

// กำหนด Stop Loss เป็น 5% ของราคาปิดปัจจุบัน
stopLossPercent = input.float(5, title="Stop Loss (%)") / 100
stopLoss = close_price * stopLossPercent

// กำหนดสีแท่งกราฟ
buyColor = input.color(color.green, title="Buy Color")
sellColor = input.color(color.red, title="Sell Color")
neutralColor = input.color(color.gray, title="Neutral Color")
color = if (ema12 > ema26)
    buyColor
else if (ema12 < ema26)
    sellColor
else
    neutralColor

// สัญญาณ Buy
buySignal = (color == buyColor) and (color[1] != buyColor)

// สัญญาณ Sell
sellSignal = (color == sellColor) and (color[1] != sellColor)

// เปิด Position Long
if (buySignal)
    strategy.entry("Long", strategy.long)

// เปิด Position Short
if (sellSignal)
    strategy.entry("Short", strategy.short)

// ปิด Position เมื่อถึง Take profit
if (strategy.position_size > 0 and close_price > takeProfit)
    strategy.exit("Long", profit=takeProfit)

// ปิด Position เมื่อถึง Stop loss
if (strategy.position_size > 0 and close_price < stopLoss)
    strategy.exit("Long", loss=stopLoss)

// ปิด Position เมื่อถึง Take profit
if (strategy.position_size < 0 and close_price < takeProfit)
    strategy.exit("Short", profit=takeProfit)

// ปิด Position เมื่อถึง Stop loss
if (strategy.position_size < 0 and close_price > stopLoss)
    strategy.exit("Short", loss=stopLoss)


関連性

もっと