Sumber dimuat naik... memuat...

EMA Crossover Trading Strategy dengan mengambil keuntungan dinamik dan hentikan kerugian

Penulis:ChaoZhang, Tarikh: 2024-05-29 16:55:22
Tag:EMATPSL

img

Ringkasan

Strategi ini menggunakan persilangan purata bergerak eksponen (EMA) untuk menjana isyarat dagangan sambil menetapkan secara dinamik mengambil keuntungan dan tahap stop loss. Apabila EMA jangka pendek (EMA 12) melintasi di atas EMA jangka panjang (EMA 26), isyarat beli dihasilkan; sebaliknya, apabila EMA 12 melintasi di bawah EMA 26, isyarat jual dihasilkan. Strategi menetapkan tahap mengambil keuntungan dan stop loss dinamik yang berbeza untuk kedudukan panjang dan pendek. Untuk kedudukan panjang, mengambil keuntungan ditetapkan pada 8% di atas harga kemasukan, dan stop loss ditetapkan pada 2.5% di bawah harga kemasukan; untuk kedudukan pendek, mengambil keuntungan ditetapkan pada 8% di bawah harga kemasukan, dan stop loss ditetapkan pada 2.5% di atas harga kemasukan.

Prinsip Strategi

Inti strategi ini adalah menggunakan persilangan dua EMA dengan tempoh yang berbeza untuk menjana isyarat dagangan. EMA adalah penunjuk trend-mengikuti yang meluruskan data harga dan mengurangkan gangguan bunyi. Apabila EMA jangka pendek melintasi di atas EMA jangka panjang, ia menunjukkan trend harga yang menguat dan menghasilkan isyarat beli; sebaliknya, apabila EMA jangka pendek melintasi di bawah EMA jangka panjang, ia menunjukkan trend harga yang melemah dan menghasilkan isyarat jual.

Pada masa yang sama, strategi ini menggunakan kaedah mengambil keuntungan dan menghentikan kerugian dinamik, menetapkan tahap mengambil keuntungan dan menghentikan kerugian yang berbeza berdasarkan arah kedudukan semasa (panjang atau pendek).

Kelebihan Strategi

  1. Sederhana dan mudah digunakan: Strategi ini hanya menggunakan persilangan dua garis EMA untuk menjana isyarat perdagangan, dengan logik yang jelas dan mudah difahami dan dilaksanakan.

  2. Mengikuti trend: Penunjuk EMA mempunyai keupayaan trend yang baik dan dapat menangkap trend harga utama dengan berkesan.

  3. Pendapatan dan hentian kerugian dinamik: Dengan menyesuaikan tahap keuntungan dan hentian kerugian secara dinamik berdasarkan arah kedudukan, ia membolehkan keuntungan berkembang sepenuhnya apabila trendnya kuat sambil memotong kerugian tepat pada masanya apabila harga berbalik, mengawal risiko dengan lebih baik.

  4. Kemudahan penyesuaian yang kuat: Strategi ini boleh digunakan untuk persekitaran pasaran dan instrumen perdagangan yang berbeza, dengan kemampuan penyesuaian dan fleksibiliti yang kuat.

Risiko Strategi

  1. Risiko pengoptimuman parameter: Pilihan tempoh EMA dan penetapan nisbah mengambil keuntungan dan berhenti kerugian perlu dioptimumkan mengikut persekitaran pasaran dan instrumen perdagangan tertentu. Tetapan parameter yang tidak sesuai boleh menyebabkan prestasi strategi yang buruk.

  2. Risiko perdagangan yang kerap: Apabila pasaran berada dalam keadaan tidak menentu, persimpangan EMA boleh berlaku dengan kerap, menyebabkan strategi menghasilkan lebih banyak isyarat perdagangan dan meningkatkan kos dan risiko perdagangan.

  3. Risiko pembalikan trend: Apabila trend pasaran berbalik secara tiba-tiba, strategi boleh menghasilkan isyarat perdagangan yang salah, yang membawa kepada kerugian.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan penunjuk teknikal lain: Pertimbangkan untuk memperkenalkan penunjuk teknikal lain, seperti RSI dan MACD, untuk membantu mengesahkan isyarat silang EMA dan meningkatkan kebolehpercayaan isyarat perdagangan.

  2. Mengoptimumkan tetapan parameter: Cari kombinasi parameter terbaik yang sesuai untuk persekitaran pasaran dan instrumen perdagangan tertentu dengan mengoptimumkan dan menguji tempoh EMA dan mengambil nisbah keuntungan dan hentian kerugian.

  3. Memperkenalkan langkah-langkah kawalan risiko: Pertimbangkan untuk memperkenalkan langkah-langkah kawalan risiko, seperti pengurusan kedudukan dan pengurusan modal, untuk mengawal risiko perdagangan dengan lebih baik.

  4. Gabungkan dengan analisis asas: Gabungkan analisis teknikal dengan analisis asas, secara menyeluruh mempertimbangkan persekitaran pasaran, data ekonomi, dan faktor lain untuk meningkatkan ketepatan keputusan perdagangan.

Ringkasan

Strategi ini menggunakan persilangan EMA untuk menjana isyarat perdagangan dan menggunakan kaedah mengambil keuntungan dan menghentikan kerugian dinamik untuk mengawal risiko. Ia mempunyai kelebihan seperti kesederhanaan, trend-mengikuti, dan kemampuan beradaptasi yang kuat, tetapi juga menghadapi cabaran seperti risiko pengoptimuman parameter, risiko perdagangan yang kerap, dan risiko pembalikan trend. Dengan memperkenalkan penunjuk teknikal lain, mengoptimumkan tetapan parameter, memperkenalkan langkah-langkah kawalan risiko, dan menggabungkan dengan analisis asas, prestasi strategi ini boleh dioptimumkan lebih lanjut untuk meningkatkan penerapan dan keuntungan dalam perdagangan sebenar.


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

//@version=5
strategy("CDC Action Zone Trading Bot with Dynamic TP/SL", overlay=true)

// ดึงข้อมูลราคาปัจจุบัน
current_price = close

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

// กำหนดเปอร์เซ็นต์ Take Profit และ Stop Loss
takeProfitPercent = 0.080
stopLossPercent = 0.025

// คำนวณระดับ Take Profit และ Stop Loss
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent)
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent)

shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent)

// สัญญาณ Buy
buySignal = (ema12 > ema26) and (ema12[1] <= ema26[1])

// สัญญาณ Sell
sellSignal = (ema12 < ema26) and (ema12[1] >= ema26[1])

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

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

// ปิด Position Long เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size > 0)
    strategy.exit("Long TP/SL", from_entry="Long", limit=longTakeProfit, stop=longStopLoss, comment="TP/SL")

// ปิด Position Short เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size < 0)
    strategy.exit("Short TP/SL", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss, comment="TP/SL")

// ปิด Position Long เมื่อเกิดสัญญาณขาย
if (strategy.position_size > 0 and sellSignal)
    strategy.close("Long", comment="Sell Signal")

// ปิด Position Short เมื่อเกิดสัญญาณซื้อ
if (strategy.position_size < 0 and buySignal)
    strategy.close("Short", comment="Buy Signal")

// Debugging messages to plot the calculated levels for visual verification
//plot(longTakeProfit, title="Long Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(longStopLoss, title="Long Stop Loss", color=color.red, linewidth=1, style=plot.style_line)
//plot(shortTakeProfit, title="Short Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(shortStopLoss, title="Short Stop Loss", color=color.red, linewidth=1, style=plot.style_line)


Berkaitan

Lebih lanjut