
Strategi ini menggunakan teknik crossover moving average sederhana dan double stop untuk mengendalikan risiko dan meningkatkan probabilitas keuntungan. Strategi ini cocok untuk perdagangan jangka pendek dan menengah, dan dapat menangkap peluang ketika tren berubah.
Strategi ini didasarkan pada persilangan EMA dan WMA untuk menilai pergerakan pasar. Ketika EMA di atas melewati WMA, lakukan lebih banyak; Ketika EMA di bawah melewati WMA, lakukan lebih sedikit.
Setiap kali membuka posisi, strategi akan mengatur dua tingkat stop. Tingkat stop pertama ditetapkan sebagai harga bukaan posisi + 20 poin, tingkat stop kedua ditetapkan sebagai harga bukaan posisi + 40 poin.
Ketika harga menyentuh level stop-loss pertama, posisi dihapus setengah. Posisi yang tersisa terus dipegang, mengejar level stop-loss kedua atau dihentikan.
Dengan demikian, setiap transaksi memiliki tiga hasil:
Harga memicu stop loss, kerugian langsung 2%.
Harga pertama kali memicu stop loss pertama, meluruskan setengah posisi, mengunci keuntungan 1%, dan kemudian terus berjalan sampai terhenti, akhirnya saldo saldo, nol keuntungan.
Setelah harga memicu stop pertama, terus berjalan, kemudian memicu stop kedua, dan akhirnya mendapatkan keuntungan 1% + 2% = 3%.
Keuntungan terbesar dari strategi dua stop loss ini adalah dapat mengendalikan risiko dan menghindari kerugian besar dalam satu kali. Ketika pasar tidak menguntungkan, stop loss dapat mengendalikan kerugian dalam 2% . Ketika pasar cerah, dua tingkat stop loss dapat memperoleh keuntungan yang lebih besar.
Strategi ini memiliki tiga hasil dibandingkan dengan single stop loss: loss, profit, dan no loss, mengurangi probabilitas stop loss. Bahkan dengan stop loss, kerugian maksimum dikendalikan pada 2%. Dibandingkan dengan strategi stop loss tradisional, strategi stop loss ganda ini secara signifikan mengurangi DD dan meningkatkan peluang menang.
Keuntungan lainnya adalah mudahnya pengoperasian. EMA dan WMA adalah indikator yang dikenal luas dan mudah dimengerti. Logika stop loss sangat jelas dan dapat dengan mudah dipantau. Ini membuat strategi mudah diterima dan diterapkan oleh para pemula perdagangan kuantitatif.
Meskipun ada beberapa keuntungan dari strategi ini, ada beberapa risiko yang perlu diperhatikan.
Pertama, EMA dan WMA sebagai indikator rata-rata, memiliki kemampuan yang lebih lemah untuk mengidentifikasi tren yang bergoyang. Ketika tren tidak jelas, dapat menghasilkan lebih banyak sinyal yang salah, yang menyebabkan terlalu sering perdagangan.
Kedua, titik stop loss yang ditetapkan mungkin tidak sesuai dengan fluktuasi pasar. Ketika fluktuasi lebih besar, stop loss dapat ditembus dan tidak dapat berfungsi sebagai pelindung.
Akhirnya, strategi ini tidak dapat menanggapi kejadian yang tidak terduga, dan ada risiko untuk melakukan likuidasi. Ketika terjadi peristiwa berita besar, pasar dapat melompat tajam, langsung menembus garis stop loss, dan menyebabkan kerugian besar.
Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:
Meningkatkan sinyal masuk. Anda dapat mencoba indikator rata-rata atau indikator tren yang lebih baik daripada EMA dan WMA untuk meningkatkan kualitas sinyal.
Stop loss dapat disesuaikan secara real-time berdasarkan ATR, stop loss bergerak, dan lain-lain, sehingga dapat mengikuti pasar secara dinamis.
Tambahkan kondisi penyaringan. Anda dapat menambahkan jumlah transaksi atau konfirmasi sub-indikator sebelum garpu, untuk menghindari terselubung. Anda juga dapat memilih untuk berdagang atau tidak berdasarkan kalender peristiwa besar.
Mengoptimalkan manajemen posisi. Anda dapat mengoptimalkan ukuran posisi tertentu untuk setiap transaksi sesuai dengan prinsip manajemen dana.
Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang sederhana dan praktis. Ini menggunakan sinyal perdagangan EMA dan WMA, dan menggunakan teknik penghentian ganda untuk mengendalikan risiko. Dibandingkan dengan strategi tradisional, memiliki peluang keuntungan yang lebih tinggi, risiko yang lebih rendah. Tentu saja, juga perlu memperhatikan keterbatasan indikator dan risiko pengaturan stop loss. Dengan pengoptimalan lebih lanjut, strategi ini dapat dibuat lebih stabil dan dapat diandalkan.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("FS ATR & PS (MA)", overlay=true)
// Strategy
Buy = input(true)
Sell = input(true)
// Time Period
start_year = input(title='Start year' ,defval=2019)
start_month = input(title='Start month' ,defval=1)
start_day = input(title='Start day' ,defval=1)
start_hour = input(title='Start hour ' ,defval=0)
start_minute = input(title='Start minute' ,defval=0)
end_time = input(title='set end time?',defval=false)
end_year = input(title='end year' ,defval=2019)
end_month = input(title='end month' ,defval=12)
end_day = input(title='end day' ,defval=31)
end_hour = input(title='end hour' ,defval=23)
end_minute = input(title='end minute' ,defval=59)
// MA
ema_period = input(title='EMA period',defval=10)
wma_period = input(title='WMA period',defval=20)
ema = ema(close,ema_period)
wma = wma(close,wma_period)
// Entry Condition
longCondition =
crossover(ema,wma) and Buy and
nz(strategy.position_size) == 0 and
time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
(end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)
shortCondition =
crossunder(ema,wma) and Sell and
nz(strategy.position_size) == 0 and
time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
(end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)
// Exit Condition
a = input(20)*10
b = input(40)*10
c = a*syminfo.mintick
d = b*syminfo.mintick
long_stop_level = float(na)
long_profit_level1 = float(na)
long_profit_level2 = float(na)
long_even_level = float(na)
short_stop_level = float(na)
short_profit_level1 = float(na)
short_profit_level2 = float(na)
short_even_level = float(na)
long_stop_level := longCondition ? close - c : long_stop_level [1]
long_profit_level1 := longCondition ? close + c : long_profit_level1 [1]
long_profit_level2 := longCondition ? close + d : long_profit_level2 [1]
long_even_level := longCondition ? close + 0 : long_even_level [1]
short_stop_level := shortCondition ? close + c : short_stop_level [1]
short_profit_level1 := shortCondition ? close - c : short_profit_level1 [1]
short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1]
short_even_level := shortCondition ? close + 0 : short_even_level [1]
// Position Sizing
Risk = input(defval=10, title="Risk per trade%", step=1, minval=0, maxval=100)/100
size = 1
// Strategy
if longCondition
strategy.entry("Buy" , strategy.long, qty=size)
strategy.exit ("Exit1", stop=long_stop_level, limit=long_profit_level1, qty=size/2)
strategy.exit ("Exit2", stop=long_stop_level, limit=long_profit_level2)
if shortCondition
strategy.entry("Sell" , strategy.short, qty=size)
strategy.exit ("Exit3", stop=short_stop_level, limit=short_profit_level1, qty=size/2)
strategy.exit ("Exit4", stop=short_stop_level, limit=short_profit_level2)
// Plot
plot(strategy.position_size <= 0 ? na : long_stop_level , color=#dc143c, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_profit_level1 , color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_profit_level2 , color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_even_level , color=#ffffff, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_stop_level , color=#dc143c, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_profit_level1, color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_profit_level2, color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_even_level , color=#ffffff, style=plot.style_linebr, linewidth=1)
plot(ema,color=#00ced1)
plot(wma,color=#dc143c)