Strategi ini menggunakan teknik crossover rata-rata bergerak dan dual take profit sederhana untuk mengendalikan risiko dan meningkatkan profitabilitas.
Strategi ini didasarkan pada persilangan EMA dan WMA untuk menentukan tren pasar.
Pada saat masuk, dua level take profit ditetapkan. Take profit pertama ditetapkan pada harga masuk + 20 pips, dan take profit kedua ditetapkan pada harga masuk + 40 pips. Sementara itu, stop loss ditempatkan pada harga masuk - 20 pips.
Ketika harga mencapai take profit pertama, ia akan menutup setengah posisi. posisi yang tersisa akan terus berjalan menuju take profit kedua atau sampai berhenti.
Ada tiga kemungkinan hasil untuk setiap perdagangan:
Harga hits stop loss, mengambil 2% kerugian langsung.
Harga hits pertama mengambil keuntungan pertama, menutup setengah posisi mengunci keuntungan 1%, kemudian terus berjalan sampai berhenti, berakhir dengan break even.
Setelah memukul pertama mengambil keuntungan, harga terus berjalan dan memukul kedua mengambil keuntungan, berakhir dengan 1% + 2% = 3% total keuntungan.
Keuntungan terbesar dari strategi dual take profit ini adalah bahwa ia mengendalikan risiko dan menghindari kerugian tunggal yang besar. stop loss caps maximum loss dalam 2% ketika pasar bergerak melawan. kedua take profit memungkinkan keuntungan yang lebih besar ketika tren berjalan seperti yang diharapkan.
Dibandingkan dengan single take profit/stop loss, strategi ini memiliki tiga hasil - loss, win atau break even, mengurangi probabilitas stop loss.
EMA dan WMA adalah indikator terkenal yang mudah dipahami. Logika mengambil keuntungan / stop loss mudah dipantau. Ini membuat strategi mudah diadopsi oleh pemula.
Meskipun ada keuntungan, strategi ini juga memiliki risiko yang harus diketahui.
Pertama, sebagai indikator rata-rata bergerak, EMA dan WMA memiliki kemampuan yang relatif lemah dalam mengidentifikasi pasar rentang.
Kedua, tingkat fixed take profit/stop loss mungkin tidak dapat beradaptasi dengan volatilitas pasar.
Akhirnya, strategi tidak dapat menanggapi peristiwa tak terduga, dengan risiko terjebak. peristiwa berita besar dapat menciptakan kesenjangan harga yang sangat besar yang secara langsung melanggar tingkat keuntungan / kerugian, menyebabkan kerugian besar.
Ada beberapa aspek untuk lebih mengoptimalkan strategi:
Meningkatkan sinyal masuk. Uji indikator rata-rata bergerak atau tren yang lebih baik daripada EMA dan WMA untuk menghasilkan sinyal berkualitas lebih tinggi.
Menggunakan metode seperti ATR, trailing stop loss dll untuk membuat tingkat profit/loss menyesuaikan dengan pasar.
Tambahkan filter. Perlukan konfirmasi volume atau indikator sekunder sebelum crossover untuk menghindari perangkap. Juga pertimbangkan apakah akan melakukan perdagangan di sekitar acara utama.
Mengoptimalkan ukuran posisi, menyesuaikan ukuran posisi sesuai dengan aturan manajemen modal.
Singkatnya, ini adalah tren yang sederhana dan praktis mengikuti strategi. Ini memanfaatkan EMA dan WMA crossover untuk entri, dan mengambil keuntungan ganda untuk mengendalikan risiko. Dibandingkan dengan strategi tradisional, ini memiliki tingkat kemenangan yang lebih tinggi dan risiko yang lebih rendah. Tentu saja, keterbatasan indikator dan pengaturan keuntungan / kerugian harus diperhatikan. Optimasi lebih lanjut dapat membuat strategi lebih kuat.
/*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)