Memindahkan Stop Loss Strategi Berdasarkan Poin Ambil Keuntungan dan Stop Loss

Penulis:ChaoZhang, Tanggal: 2024-01-11 11:04:57
Tag:

img

Gambaran umum

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.

Prinsip Strategi

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.

Analisis Keuntungan

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.

Analisis Risiko

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.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Uji kombinasi parameter yang berbeda dari EMA dan WMA untuk menemukan yang optimal;
  2. Cobalah indikator lain seperti MACD, KDJ dll untuk mengganti atau menggabungkan, dan lihat apakah tingkat kemenangan dapat ditingkatkan;
  3. Mengevaluasi risiko imbalan dari konfigurasi titik yang berbeda untuk stop loss dan mengambil keuntungan, dan menemukan pengaturan yang optimal;
  4. Mempelajari karakteristik varietas yang berbeda, dan menyesuaikan parameter untuk beradaptasi dengan pasar yang berbeda;
  5. Menggabungkan algoritma pembelajaran mesin untuk mewujudkan optimasi dinamis parameter.

Kesimpulan

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))

Lebih banyak