Strategi Stop Loss Aturan Perdagangan Chaos


Tanggal Pembuatan: 2023-11-07 16:44:31 Akhirnya memodifikasi: 2023-11-07 16:44:31
menyalin: 0 Jumlah klik: 598
1
fokus pada
1617
Pengikut

Strategi Stop Loss Aturan Perdagangan Chaos

Ringkasan

Strategi ini didasarkan pada strategi RSI, dengan menambahkan beberapa aturan manajemen perdagangan penting, termasuk stop loss, stop loss, tracking stop loss, dan tracking stop loss. Ini memungkinkan strategi untuk mendapatkan keuntungan yang lebih tinggi dalam situasi tren selama pengukuran ulang, sementara mengurangi kerugian dalam situasi goyangan.

Prinsip Strategi

Strategi ini pertama-tama menghitung indikator RSI, melakukan over ketika RSI berada di bawah garis overbought, dan melakukan short ketika RSI berada di atas garis overbought.

Setelah beberapa sinyal dipicu, catat harga tertinggi saat itu sebagai titik acuan untuk menelusuri stop loss. Jika harga lebih rendah dari titik stop loss minus amplitudo stop loss, stop loss akan dihapus.

Setelah menyalakan sinyal, catat harga terendah pada saat itu sebagai titik referensi untuk menelusuri stop loss. Jika harga lebih tinggi dari titik stop loss dan amplitudo stop loss, maka stop loss akan dilakukan.

Pada saat yang sama, tetapkan stop loss dan stop loss. Jika harga mencapai stop loss, maka stop loss akan dihapus; jika stop loss tercapai, maka stop loss akan dihapus.

Selain itu, jika harga menyentuh garis stop loss, maka stop loss akan dihapus.

Dengan melacak stop loss tertinggi saat tren naik, dan stop loss terendah saat tren turun, dalam kombinasi dengan jarak stop loss yang tetap, Anda bisa mendapatkan keuntungan yang lebih tinggi dalam situasi tren. Selain itu, dengan mengatur stop loss yang dilacak dengan leverage, Anda dapat menghindari perluasan kerugian.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah bahwa beberapa aturan manajemen perdagangan telah diperkenalkan, yang memungkinkan pengendalian risiko yang lebih baik, sambil memainkan keunggulan strategi RSI.

Secara khusus, keuntungan dari strategi ini adalah:

  1. Dalam situasi tren, stop loss yang dilacak dapat terus melacak tren yang menguntungkan, sehingga mendapatkan keuntungan yang lebih tinggi.

  2. Stop loss yang tetap dapat mengunci sebagian dari keuntungan dan menghindari seluruh keuntungan yang terkurung jika tren berbalik.

  3. Leverage Tracking Stop Loss dapat mencegah pertumbuhan kerugian dan mengontrol risiko.

  4. Kombinasi dari beberapa metode stop loss dapat memainkan keunggulan masing-masing dalam berbagai lingkungan pasar, meningkatkan stabilitas strategi secara keseluruhan.

  5. Parameter strategi dapat disesuaikan secara fleksibel untuk berbagai jenis perdagangan dan lingkungan pasar.

  6. Logika strategi jelas dan mudah dipahami, mudah untuk memverifikasi, mengoptimalkan, dan menerapkan.

Analisis risiko

Risiko utama dari strategi ini berasal dari:

  1. Strategi RSI sendiri memiliki risiko perdagangan yang salah, yang dapat memicu stop loss. Hal ini dapat dioptimalkan dengan menyesuaikan parameter RSI.

  2. Guncangan di dekat titik berhenti dapat sering memicu berhenti. Jarak berhenti dapat diperluas dengan tepat untuk menghindari berhenti.

  3. Jarak berhenti tidak dapat sepenuhnya mengunci keuntungan dalam situasi tren. Dapat dikombinasikan dengan indikator lain untuk menentukan kapan tren berakhir.

  4. Jarak penghentian tetap mungkin terlalu kecil untuk menghindari kerugian sepenuhnya. Anda dapat mempertimbangkan untuk menggunakan penghentian getaran atau penghentian dinamis.

  5. Leverage yang terlalu tinggi dapat menyebabkan Leverage Tracking Stop Loss terlalu dekat dengan harga pembukaan posisi. Leverage harus diturunkan sesuai dengan pengaturan.

  6. Jangka waktu pelacakan tidak dapat sepenuhnya mewakili situasi pasar di masa depan. Kontrol risiko harus dilakukan dengan baik, dan validasi efek dari berbagai periode waktu.

Risiko di atas dapat diatasi dengan penyesuaian parameter, pengoptimalan mekanisme stop loss, dan pengendalian risiko. Namun, tidak ada strategi yang dapat sepenuhnya menghindari risiko pasar, perlu dilakukan pengendalian risiko.

Arah optimasi

Strategi ini dapat dioptimalkan lebih lanjut dari beberapa arah:

  1. Mengoptimalkan parameter RSI, mengurangi probabilitas perdagangan yang salah. Anda dapat menguji kombinasi parameter optimal untuk berbagai pasar.

  2. Cobalah indikator lain untuk menentukan waktu masuk, seperti KD, MACD, dan lain-lain, yang digabungkan dengan RSI untuk membentuk beberapa filter.

  3. Mengoptimalkan parameter stop loss secara dinamis menggunakan metode seperti pembelajaran mesin.

  4. Cobalah cara stop yang lebih rumit, seperti stop bergoyang, stop rata-rata, stop dinamis, dan lain-lain.

  5. Optimalkan pengaturan tingkat leverage, pengaruh leverage yang berbeda terhadap keuntungan dan pengendalian risiko.

  6. Parameter disesuaikan secara otomatis dengan perubahan lingkungan pasar, seperti α-Dual Thrust.

  7. Konsistensi tren ini digabungkan dengan faktor-faktor lain, seperti energi volume transaksi.

  8. Menggunakan teknologi seperti Deep Learning untuk mengembangkan cara yang lebih stabil dan dapat dijelaskan untuk menghentikan kerugian.

  9. Uji data dari berbagai varietas dan periode untuk menilai kehandalan strategi.

Meringkaskan

Strategi ini menambah berbagai cara untuk menghentikan kerugian berdasarkan strategi RSI, untuk memainkan peran ganda dalam keuntungan tren dan pengendalian risiko. Ada banyak ruang untuk mengoptimalkan strategi, yang dapat dilakukan dari berbagai arah untuk meningkatkan keuntungan strategi dan mengurangi risiko.

Kode Sumber Strategi
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Adding some essential components to a prebuilt RSI strategy", overlay=true)

/////////////// Component Code Start ///////////////
testStartYear = input(2011, "Backtest Start Year") 
testStartMonth = input(8, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2016, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(29, "Backtest Stop Day")
// testStopDay = testStartDay + 1
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
/////////////// Component Code Stop ///////////////

///////////// RSI component /////////////
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close

vrsi = rsi(price, length)
notna = not na(vrsi)

/////////////// STRATEGY ///////////////
ts = input(99999, "Trailing Stop") / 100
tp = input(99999, "Take Profit") / 100
sl = input(99999, "Stop Loss") / 100

long = notna and crossover(vrsi, overSold)
short = notna and crossunder(vrsi, overBought)

last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal = short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = long_signal ? time : nz(last_long_signal[1])
last_short_signal = short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low = not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])

long_ts = not na(last_high) and high <= (last_high - ts) //and high >= last_open_long_signal
short_ts = not na(last_low) and low >= (last_low + ts) //and low <= last_open_short_signal

long_tp = high >= (last_open_long_signal + tp)
short_tp = low <= (last_open_short_signal - tp)

long_sl = low <= (last_open_long_signal - sl)
short_sl = high >= (last_open_short_signal + sl)

leverage = input(200, "Leverage")
long_call = last_open_long_signal - (0.8 + 0.2 * (1/leverage)) / leverage * last_open_long_signal
short_call = last_open_short_signal + (0.78 + 0.2 * (1/leverage)) / leverage * last_open_short_signal
long_call_signal = low <= long_call
short_call_signal = high >= short_call

if testPeriod()
    strategy.entry("Long", strategy.long, when=long_signal)
    strategy.entry("Short", strategy.short, when=short_signal)

    // plot(long_call, color=red)
    // plot(short_call, color=green)
    strategy.close("Long", when=long_call_signal)
    strategy.close("Short", when=short_call_signal)
    strategy.close("Long", when=long_tp)
    strategy.close("Short", when=short_tp)
    strategy.close("Long", when=long_sl)
    strategy.close("Short", when=short_sl)
    strategy.close("Long", when=long_ts)
    strategy.close("Short", when=short_ts)