
Strategi ini menggunakan persilangan indeks moving averages (EMA) untuk menghasilkan isyarat dagangan, sambil secara dinamik menetapkan tahap stop dan stop loss. Apabila EMA yang lebih pendek (EMA 12) melangkaui EMA yang lebih lama (EMA 26) dari bawah, ia menghasilkan isyarat beli; sebaliknya, apabila EMA 12 dari atas, ia menghasilkan isyarat jual. Strategi ini menetapkan tahap stop dan stop loss yang berbeza untuk kedudukan overhead dan kosong.
Inti strategi ini adalah menggunakan persilangan purata bergerak indeks ((EMA) dari dua kitaran yang berbeza untuk menghasilkan isyarat perdagangan. EMA adalah penunjuk trend yang dapat meluruskan data harga, mengurangkan gangguan bunyi. Apabila EMA jangka pendek dari bawah melangkaui EMA jangka panjang, menunjukkan pergerakan harga yang kuat, menghasilkan isyarat beli; sebaliknya, apabila EMA jangka pendek dari atas melangkaui EMA jangka panjang, menunjukkan pergerakan harga yang lemah, menghasilkan isyarat jual.
Pada masa yang sama, strategi ini menggunakan kaedah hentian hentian dinamik, yang menetapkan tahap hentian dan hentian yang berbeza mengikut arah kedudukan semasa (multi atau kosong). Kaedah ini menyesuaikan hentian hentian secara dinamik, yang membolehkan keuntungan berkembang dengan baik semasa trend yang kuat, dan berhenti tepat pada masanya apabila harga berbalik, sehingga dapat mengawal risiko dengan lebih baik.
Mudah digunakan: Strategi ini hanya menggunakan persilangan dua garis EMA untuk menghasilkan isyarat perdagangan, logiknya jelas, mudah difahami dan dilaksanakan.
Pengesanan trend: Indeks EMA mempunyai keupayaan pengesanan trend yang baik, yang dapat menangkap trend utama harga dengan berkesan.
Hentian Hentian Dinamis: Mengubah tahap hentian dan hentian secara dinamik mengikut arah kedudukan, yang membolehkan keuntungan berkembang dengan baik semasa trend kuat, dan menghentikan kerugian tepat pada masanya apabila harga berbalik, untuk mengawal risiko dengan lebih baik.
Adaptif: Strategi ini sesuai untuk pelbagai persekitaran pasaran dan jenis perdagangan, dengan kebolehan beradaptasi dan fleksibiliti yang tinggi.
Risiko pengoptimuman parameter: Pemilihan kitaran EMA dan tetapan peratusan stop loss perlu dioptimumkan mengikut keadaan pasaran dan jenis perdagangan tertentu. Tetapan parameter yang tidak sesuai boleh menyebabkan prestasi strategi yang buruk.
Risiko perdagangan yang kerap: EMA yang bercampur-campur mungkin berlaku dengan kerap apabila pasaran berada dalam keadaan goyah, menyebabkan strategi menghasilkan lebih banyak isyarat perdagangan, meningkatkan kos perdagangan dan risiko.
Risiko trend reversal: Strategi ini mungkin menghasilkan isyarat perdagangan yang salah dan menyebabkan kerugian apabila trend pasaran berubah secara tiba-tiba.
Memperkenalkan penunjuk teknikal lain: Anda boleh mempertimbangkan untuk memperkenalkan penunjuk teknikal lain, seperti RSI, MACD dan lain-lain, untuk membantu mengesahkan isyarat silang EMA dan meningkatkan kebolehpercayaan isyarat perdagangan.
Tetapan parameter yang dioptimumkan: untuk mencari kombinasi parameter yang paling sesuai untuk keadaan pasaran tertentu dan jenis perdagangan dengan melakukan ujian yang dioptimumkan untuk kitaran EMA dan nisbah stop loss.
Memperkenalkan langkah-langkah kawalan risiko: Pertimbangkan untuk memperkenalkan langkah-langkah kawalan risiko, seperti pengurusan kedudukan, pengurusan wang, dan sebagainya, untuk mengawal risiko perdagangan dengan lebih baik.
Gabungan analisis asas: menggabungkan analisis teknikal dengan analisis asas, mempertimbangkan keadaan pasaran, data ekonomi dan lain-lain untuk meningkatkan ketepatan keputusan perdagangan.
Strategi ini menggunakan silang EMA untuk menghasilkan isyarat perdagangan dan menggunakan kaedah stop loss dinamik untuk mengawal risiko. Ia mempunyai kelebihan seperti mudah digunakan, trend mengikuti, dan daya serap yang kuat, tetapi ia juga menghadapi cabaran seperti risiko pengoptimuman parameter, risiko perdagangan kerap dan risiko pembalikan trend. Dengan memperkenalkan petunjuk teknikal lain, menetapkan parameter yang lebih baik, memperkenalkan langkah-langkah kawalan risiko, dan menggabungkan analisis asas, kaedah seperti ini dapat mengoptimumkan lagi prestasi strategi ini, meningkatkan keserasian 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)