Strategi ini menggunakan rentas purata bergerak mudah dan teknik mengambil keuntungan berganda untuk mengawal risiko dan meningkatkan keuntungan.
Strategi ini berdasarkan persilangan EMA dan WMA untuk menentukan trend pasaran. Ia pergi panjang apabila EMA melintasi di atas WMA, dan pergi pendek apabila EMA melintasi di bawah WMA.
Apabila memasuki, dua tahap mengambil keuntungan ditetapkan. mengambil keuntungan pertama ditetapkan pada harga kemasukan + 20 pip, dan mengambil keuntungan kedua ditetapkan pada harga kemasukan + 40 pip. Sementara itu, stop loss diletakkan pada harga kemasukan - 20 pip.
Apabila harga mencapai keuntungan pertama, ia akan menutup separuh kedudukan. kedudukan yang selebihnya akan terus berjalan ke arah keuntungan kedua atau sehingga berhenti.
Terdapat tiga hasil yang mungkin untuk setiap perdagangan:
Harga hits stop loss, mengambil 2% kerugian terus.
Harga memukul pertama mengambil keuntungan pertama, menutup separuh kedudukan mengunci keuntungan 1%, kemudian terus berjalan sehingga berhenti, berakhir dengan break even.
Selepas mencapai keuntungan pertama, harga terus berjalan dan mencapai keuntungan kedua, berakhir dengan 1% + 2% = 3% keuntungan keseluruhan.
Kelebihan terbesar strategi mengambil keuntungan berganda ini adalah bahawa ia mengawal risiko dan mengelakkan kerugian tunggal yang besar. Stop loss caps kerugian maksimum dalam 2% apabila pasaran bergerak menentang. Dua mengambil keuntungan membolehkan keuntungan yang lebih besar apabila trend berjalan seperti yang dijangkakan.
Berbanding dengan mengambil keuntungan tunggal / hentian kerugian, strategi ini mempunyai tiga hasil - kerugian, kemenangan atau impas, mengurangkan kebarangkalian kehilangan berhenti. Walaupun jika berhenti, kerugian maksimum terhad kepada 2%. Berbanding dengan strategi tradisional, mekanisme mengambil keuntungan berganda mengurangkan DD dengan ketara dan meningkatkan kadar kemenangan.
Satu lagi kelebihan adalah kesederhanaannya. EMA dan WMA adalah penunjuk yang terkenal yang mudah difahami. Logik mengambil keuntungan / berhenti kerugian mudah dipantau. Ini menjadikan strategi ini mudah digunakan oleh pemula.
Walaupun ada kelebihan, terdapat juga risiko untuk diketahui untuk strategi ini.
Pertama, sebagai penunjuk purata bergerak, EMA dan WMA mempunyai keupayaan yang agak lemah dalam mengenal pasti pasaran julat.
Kedua, tahap keuntungan / stop loss tetap mungkin tidak disesuaikan dengan turun naik pasaran. Mereka boleh mudah ditembusi semasa turun naik yang tinggi, menjadikannya tidak berkesan.
Akhirnya, strategi tidak dapat bertindak balas terhadap peristiwa yang tidak dijangka, dengan risiko terperangkap. peristiwa berita utama boleh mewujudkan jurang harga yang besar yang secara langsung melanggar tahap keuntungan / kerugian, menyebabkan kerugian besar.
Terdapat beberapa aspek untuk mengoptimumkan lagi strategi:
Meningkatkan isyarat kemasukan. Uji isyarat purata bergerak atau trend yang lebih baik daripada EMA dan WMA untuk menjana isyarat yang lebih berkualiti.
Menggunakan kaedah seperti ATR, trailing stop loss dan lain-lain untuk membuat tahap keuntungan / kerugian disesuaikan dengan pasaran.
Tambah penapis. Minta pengesahan jumlah atau penunjuk sekunder sebelum persimpangan untuk mengelakkan perangkap. Juga pertimbangkan sama ada untuk berdagang di sekitar acara utama.
Mengoptimumkan saiz kedudukan, menyesuaikan saiz kedudukan mengikut peraturan pengurusan modal.
Ringkasnya, ini adalah strategi trend yang mudah dan praktikal. Ia menggunakan persilangan EMA dan WMA untuk kemasukan, dan mengambil keuntungan berganda untuk mengawal risiko. Berbanding dengan strategi tradisional, ia mempunyai kadar kemenangan yang lebih tinggi dan risiko yang lebih rendah. Sudah tentu, batasan penunjuk dan tetapan keuntungan / kerugian harus diperhatikan. Pengoptimuman lanjut boleh menjadikan strategi lebih mantap.
/*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)