
Strategi ini adalah strategi perdagangan yang didasarkan pada persilangan indeks bergerak cepat dan perlahan (EMA). Strategi ini melakukan perdagangan berganda apabila EMA cepat melintasi EMA perlahan dari bawah ke atas; strategi ini melakukan perdagangan kosong apabila EMA cepat melintasi EMA perlahan dari atas ke bawah. Strategi ini menggunakan nisbah sasaran untuk mengira harga berhenti dan berhenti, dan berdagang menggunakan saiz kedudukan tetap.
Prinsip utama strategi ini adalah menggunakan EMA dari dua kitaran yang berbeza untuk menangkap perubahan trend harga. Apabila EMA cepat bercampur dengan EMA perlahan, ia biasanya bermakna trend harga telah berubah. Khususnya, apabila EMA cepat dari bawah ke atas melintasi EMA perlahan, menunjukkan harga mungkin mula meningkat, maka strategi ini akan melakukan banyak perdagangan; apabila EMA cepat dari atas ke bawah melintasi EMA perlahan, menunjukkan harga mungkin mula menurun, maka strategi ini akan melakukan perdagangan kosong.
Strategi ini juga memperkenalkan konsep nisbah hentian sasaran untuk mengira harga hentian dan hentian untuk setiap dagangan. Harga hentian diperoleh dengan mengalikan harga pembukaan rata-rata dengan ((1 - nisbah hentian sasaran) dan harga hentian diperoleh dengan mengalikan harga pembukaan rata-rata dengan ((1 + nisbah hentian sasaran). Kaedah ini dapat menyesuaikan tahap hentian dan hentian mengikut dinamika keutamaan risiko.
Selain itu, strategi ini berdagang dengan ukuran kedudukan tetap, iaitu jumlah dana untuk setiap perdagangan tetap dan tidak disesuaikan dengan baki akaun atau faktor lain. Ini membantu mengawal risiko dan mengekalkan konsistensi strategi.
Sederhana dan berkesan: Strategi ini berdasarkan kepada prinsip EMA silang klasik, mudah difahami dan dilaksanakan, dan dapat menangkap perubahan trend harga dengan berkesan.
Hentian Kerosakan Dinamis: Dengan memperkenalkan nisbah hentian sasaran, strategi dapat menyesuaikan tahap hentian dan hentian secara dinamik mengikut keutamaan risiko, meningkatkan fleksibiliti dan daya serap strategi.
Kawalan risiko: Menggunakan saiz kedudukan tetap untuk berdagang, membantu mengawal risiko setiap perdagangan dan mengurangkan risiko keseluruhan akaun.
Kebolehgunaan yang luas: Strategi ini boleh digunakan dalam pelbagai pasaran kewangan dan jenis perdagangan, seperti saham, niaga hadapan, mata wang asing, dan sebagainya, dengan kebolehgunaan yang luas.
Sensitiviti parameter: Prestasi strategi bergantung kepada pilihan parameter EMA, seperti kitaran EMA cepat dan EMA perlahan. Kombinasi parameter yang berbeza boleh menyebabkan perbezaan besar dalam prestasi strategi, oleh itu perlu mengoptimumkan dan menguji parameter dengan teliti.
Risiko kekurangan pengoptimuman: Jika parameter strategi dioptimumkan secara berlebihan, ia mungkin menyebabkan strategi tidak berfungsi dengan baik pada data luar sampel, iaitu masalah overfit. Oleh itu, strategi perlu diuji secara menyeluruh dan diuji ke hadapan untuk memastikan keberkesanannya.
Risiko pasaran: Prestasi strategi ini dipengaruhi oleh trend dan turun naik pasaran. Apabila pasaran bergolak atau trend tidak jelas, strategi ini mungkin menghasilkan lebih banyak isyarat salah, yang menyebabkan perdagangan yang kerap dan kehilangan dana.
Kejadian Black Swan: Strategi ini mungkin kurang beradaptasi dengan peristiwa pasaran yang melampau (seperti krisis kewangan, konflik geopolitik, dan lain-lain) yang boleh menyebabkan strategi ini ditarik balik.
Pengoptimuman parameter dinamik: Mengambil kira parameter kitaran EMA secara dinamik mengikut keadaan pasaran atau ciri-ciri turun naik harga, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Ini boleh dicapai dengan memperkenalkan indikator penilaian keadaan pasaran atau indikator kadar turun naik.
Penapisan isyarat: berdasarkan isyarat silang EMA, isyarat ditapis dengan pengenalan petunjuk teknikal lain atau maklumat pasaran untuk meningkatkan kebolehpercayaan dan ketepatan isyarat. Sebagai contoh, ia boleh digabungkan dengan petunjuk lalu lintas, isyarat momentum atau isyarat sentimen pasaran, dan sebagainya.
Pengurusan kedudukan yang dioptimumkan: Berfikir untuk menyesuaikan saiz kedudukan dagangan secara dinamik mengikut keadaan risiko pasaran atau keutamaan risiko peribadi, dan bukannya menggunakan kedudukan tetap. Ini boleh dilakukan dengan memperkenalkan model kawalan risiko atau peraturan pengurusan wang.
Pelindung pelbagai kedudukan: boleh mempertimbangkan untuk memegang kedudukan pelbagai dan kosong pada masa yang sama, membina portfolio netral pasaran, untuk mengurangkan risiko pasaran dan meningkatkan kestabilan strategi.
Strategi ini adalah strategi pengesanan trend berdasarkan prinsip EMA silang, menangkap trend harga sambil mengawal risiko dengan memperkenalkan nisbah stop loss sasaran dan ukuran kedudukan tetap. Kelebihan strategi ini adalah kesederhanaan yang berkesan, hentian stop loss dinamik dan kebolehgunaan yang luas, tetapi juga menghadapi cabaran seperti sensitiviti parameter, risiko kurang optimum dan risiko pasaran.
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KarthicSRSivagnanam
//@version=5
strategy("EMA Crossover Strategy with Target/Stop-loss Ratio and Fixed Position Size", shorttitle="EMA Cross", overlay=true)
// Define input variables
fast_length = input(20, title="Fast EMA Length")
slow_length = input(50, title="Slow EMA Length")
ema_color = input(color.red, title="EMA Color")
target_ratio = input(2, title="Target/Stop-loss Ratio")
position_size = input(1, title="Fixed Position Size (Rs.)")
// Calculate EMAs
ema_fast = ta.ema(close, fast_length)
ema_slow = ta.ema(close, slow_length)
// Plot EMAs
plot(ema_fast, color=ema_color, title="Fast EMA")
plot(ema_slow, color=color.blue, title="Slow EMA")
// Long entry condition: Fast EMA crosses above Slow EMA
longCondition = ta.crossover(ema_fast, ema_slow)
// Short entry condition: Fast EMA crosses below Slow EMA
shortCondition = ta.crossunder(ema_fast, ema_slow)
// Calculate stop-loss and target levels
stopLoss = strategy.position_avg_price * (1 - target_ratio / 100)
takeProfit = strategy.position_avg_price * (1 + target_ratio / 100)
// Plot stop-loss and target levels
plot(stopLoss, color=color.red, title="Stop Loss")
plot(takeProfit, color=color.green, title="Take Profit")
// Entry conditions with fixed position size
if (longCondition)
strategy.entry("Long", strategy.long, qty = position_size)
if (shortCondition)
strategy.entry("Short", strategy.short, qty = position_size)
// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)