Ide inti dari strategi ini adalah untuk menggunakan persilangan EMA dan WMA sebagai sinyal masuk, dan menggabungkan mengambil keuntungan dan stop loss berdasarkan perhitungan poin untuk perdagangan. Keuntungannya yang terbesar adalah bahwa ia dapat sangat fleksibel dan tepat mengendalikan risiko dengan menyesuaikan jumlah poin untuk mengontrol amplitudo mengambil keuntungan dan stop loss.
Bila EMA melintasi WMA ke atas, sinyal panjang akan dihasilkan. Bila EMA melintasi WMA ke bawah, sinyal pendek akan dihasilkan. Setelah memasukkan posisi, harga masuk akan dihitung secara real time, dan stop loss dan take profit akan ditetapkan berdasarkan itu. Misalnya, atur stop loss menjadi 20 poin dan take profit menjadi 100 poin, maka harga stop loss spesifik akan menjadi harga masuk dikurangi 20 poin * nilai kontrak, dan take profit akan menjadi harga masuk ditambah 100 poin * nilai kontrak. Beginilah cara mengendalikan risiko dan keuntungan.
Pada saat yang sama, strategi ini juga akan menggabungkan harga pasar saat ini dengan stop loss historis untuk menyesuaikan posisi stop loss bergerak dan mewujudkan stop loss trailing.
Jika dibandingkan dengan titik tetap atau persentase stop loss, keuntungan terbesar dari strategi ini adalah bahwa ia dapat sangat fleksibel dan tepat mengendalikan risiko. Dengan menyesuaikan jumlah titik, amplitudo stop loss dapat dipengaruhi secara langsung. Ini berlaku dengan sangat baik untuk berbagai varietas, dan parameter dapat disesuaikan berdasarkan frekuensi dan amplitudo fluktuasi pasar.
Selain itu, trailing stop loss juga merupakan fungsi yang sangat praktis. Hal ini dapat melacak dan menyesuaikan posisi stop loss berdasarkan perubahan pasar real-time, sambil memastikan pengendalian risiko, dan memaksimalkan keuntungan yang mungkin.
Risiko utama dari strategi ini berasal dari indikator EMA dan WMA itu sendiri. Ketika ada pergerakan pasar yang ganas, mereka sering memberikan sinyal yang salah, dengan mudah menyebabkan stop loss. Dalam hal ini, disarankan untuk melonggarkan jumlah titik stop loss dengan tepat, atau mempertimbangkan untuk mengganti kombinasi indikator lainnya.
Hal lain yang berisiko adalah bahwa sulit untuk menyeimbangkan stop loss dan take profit. mengejar take profit yang lebih tinggi sering membutuhkan risiko yang lebih besar, yang dapat dengan mudah menyebabkan stop loss ketika pasar berbalik. Oleh karena itu, konfigurasi stop loss dan take profit membutuhkan pengujian dan evaluasi yang cermat.
Strategi ini dapat dioptimalkan dalam aspek berikut:
Ide inti dari strategi ini sederhana dan jelas, menggunakan EMA dan WMA sebagai dasar, dan menggunakan stop loss berbasis poin dan mengambil keuntungan mekanisme untuk pengendalian risiko. Keuntungan dari strategi terletak pada pengendalian risiko yang tepat dan fleksibel, yang dapat disesuaikan untuk pasar yang berbeda. Optimasi tindak lanjut dapat dilakukan dalam sinyal masuk, pemilihan parameter, mekanisme stop loss dll, untuk membuat strategi lebih beradaptasi dengan lingkungan pasar yang kompleks dan selalu berubah.
/*backtest start: 2024-01-03 00:00:00 end: 2024-01-10 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // inspiration script from: @ahmad_naquib // inspiration script link: https://www.tradingview.com/script/tGTV8MkY-Two-Take-Profits-and-Two-Stop-Loss/ // inspiration strategy script name: Two Take Profits and Two Stop Loss //////////// // Do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS //////////// //@version=5 strategy('SL & TP based on Pips', "PIP SL & TP", overlay=true, initial_capital=1000) // MA ema_period = input(title='EMA period', defval=10) wma_period = input(title='WMA period', defval=20) ema = ta.ema(close, ema_period) wma = ta.wma(close, wma_period) // Entry Conditions long = ta.crossover(ema, wma) and nz(strategy.position_size) == 0 short = ta.crossunder(ema, wma) and nz(strategy.position_size) == 0 // Pips Calculation pip1 = input(20, title = "TP PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick pip2 = input(20, title = "SL PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick // Trading parameters var bool LS = na var bool SS = na var float EP = na // Entry Position var float TVL = na var float TVS = na var float TSL = na var float TSS = na var float TP1 = na //var float TP2 = na var float SL1 = na ///var float SL2 = na // SL & TP Values // there's also SL2 and TP2 in case you want to add them to your script, //also you can add a break event in the strategy.entry section. if short or long and strategy.position_size == 0 EP := close SL1 := EP - pip2 * (short ? -1 : 1) //SL2 := EP - pip2 * (short ? -1 : 1) TP1 := EP + pip1 * (short ? -1 : 1) //TP2 := EP + pip1 * 2 * (short ? -1 : 1) // current trade direction LS := long or strategy.position_size > 0 SS := short or strategy.position_size < 0 // adjust trade parameters and trailing stop calculations TVL := math.max(TP1, open) - pip1[1] TVS := math.min(TP1, open) + pip1[1] TSL := open[1] > TSL[1] ? math.max(TVL, TSL[1]) : TVL TSS := open[1] < TSS[1] ? math.min(TVS, TSS[1]) : TVS //if LS and high > TP1 //if open <= TP1 //SL2 := math.min(EP, TSL) //if SS and low < TP1 //if open >= TP1 //SL2 := math.max(EP, TSS) // Closing conditions // and those are a closing conditions in case you want to add them. //close_long = LS and open < SL2 //close_short = SS and open > SL2 // Buy if (long and not SS) strategy.entry('buy', strategy.long) strategy.exit('exit1', from_entry='buy', stop=SL1, limit=TP1, qty_percent=100) //strategy.exit('exit2', from_entry='buy', stop=SL2, limit=TP2) // Sell if (short and not LS) strategy.entry('sell', strategy.short) strategy.exit('exit3', from_entry='sell', stop=SL1, limit=TP1, qty_percent=100) //strategy.exit('exit4', from_entry='sell', stop=SL2, limit=TP2) // Plots // those are plots for the lines of The tp and sl. they are really useful, and in the next update I will use a filling option. a = plot(strategy.position_size > 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr) b = plot(strategy.position_size < 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr) c = plot(strategy.position_size > 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr) d = plot(strategy.position_size < 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr) g = plot(strategy.position_size >= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr) h = plot(strategy.position_size <= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr) // those are plot for the TP2 and SL2, they are optional if you want to add them. //e = plot(strategy.position_size > 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr) //f = plot(strategy.position_size < 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr) //those are the plot for the ema and wma strategy for short and long signal. they are not really a good strategy, I just used them as an example //but you have the option to plot them or not. // do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS //plot(ema, title='ema', color=color.new(#fff176, 0)) //plot(wma, title='wma', color=color.new(#00ced1, 0))