Sumber daya yang dimuat... Pemuatan...

Strategi Stop Profit dan Stop Loss Dual Efisien Oscillation Breakthrough

Penulis:ChaoZhang, Tanggal: 2024-02-01 14:46:00
Tag:

img

Gambaran umum

Ini adalah strategi perdagangan dua arah yang sangat efisien yang dirancang berdasarkan indikator saluran dan prinsip breakout.

Logika Strategi

Strategi ini menggunakan indikator SMA untuk membangun saluran. Ini masuk panjang ketika harga pecah di atas saluran dan masuk pendek ketika harga pecah di bawah saluran. mengambil keuntungan dan stop loss juga diatur untuk mengunci keuntungan dan mengendalikan risiko.

Secara khusus, strategi menghitung rel atas dan bawah saluran. rel atas adalah SMA 10 periode dari harga dekat dikalikan dengan 1.02; rel bawah adalah SMA 10 periode dari harga terendah dibagi dengan 1.02.

Setelah long, dua level take profit ditetapkan masing-masing pada 1% dan 3%, dengan stop loss 3%. Going short memiliki pengaturan profit/loss yang sama. Melalui prinsip breakout strategi dapat mencapai tingkat entry win yang relatif tinggi; melalui dual take profit dapat mengunci lebih banyak keuntungan; melalui stop loss mengendalikan jumlah kerugian per perdagangan.

Analisis Keuntungan

Strategi channel breakout seperti ini memiliki keuntungan seperti sinyal masuk yang jelas, frekuensi operasi yang tinggi, pengambilan keuntungan multi-level, dll. Keuntungan utama adalah:

  1. Menggunakan indikator saluran untuk mengidentifikasi kisaran osilasi harga dan memilih titik keluar untuk masuk dapat memperoleh tingkat kemenangan yang relatif tinggi.

  2. Mengoperasikan grafik 1 menit untuk menangkap lebih banyak peluang dan sesuai kebutuhan untuk perdagangan kecepatan.

  3. Memiliki dua tingkat mengambil keuntungan memungkinkan mengunci lebih banyak keuntungan ketika tren berjalan dengan baik.

  4. Stop loss yang relatif luas memberikan pergerakan harga beberapa ruang, menghindari stop loss prematur.

Analisis Risiko

Risiko terbesar dengan strategi breakout semacam itu adalah breakout palsu yang menyebabkan kerugian.

  1. Sinyal breakout mungkin palsu dan gagal mencapai take profit atau stop loss. masalah umum dalam analisis teknis. optimasi parameter dapat membantu menghindari.

  2. Batas stop loss di 3% mungkin sulit bagi beberapa trader untuk bertahan.

  3. Strategi ini lebih cocok untuk perdagangan jangka pendek dan membutuhkan pemantauan.

Arahan Optimasi

Strategi trend breakout seperti ini dapat dioptimalkan terutama dalam aspek berikut:

  1. Uji lebih banyak indikator untuk membangun saluran dan temukan yang lebih dapat diandalkan untuk mengurangi kebocoran palsu.

  2. Mengoptimalkan pengaturan parameter rata-rata bergerak, menemukan kombinasi parameter terbaik.

  3. Uji mekanisme entri yang lebih kompleks, seperti menambahkan filter volume dll.

  4. Tetapkan kombinasi parameter yang dapat beradaptasi dengan karakteristik produk yang berbeda untuk mencapai penyesuaian parameter sendiri.

  5. Tambahkan mekanisme stop loss otomatis yang secara dinamis menyesuaikan stop loss dari waktu ke waktu.

Kesimpulan

Ini adalah strategi perdagangan dua arah yang efisien yang dibangun di atas indikator saluran. Ini memasuki pasar melalui prinsip-prinsip breakout, mengambil keuntungan ganda untuk mengunci imbalan, menghentikan kerugian untuk mengendalikan risiko. Optimasi lebih lanjut dapat mencapai hasil yang lebih baik. Tapi pedagang masih perlu berhati-hati terhadap risiko seperti breakout palsu.


/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Erweiterte SSL Channel Strategy mit 2 TPs, SL und BE", overlay=true)

period = input(title="Period", defval=10)
len = input(title="Length", defval=10)
multiplier = input(title="Multiplier", defval=1.0, minval=1.0)
tp1Percent = input(title="Take Profit 1 (%)", defval=1.0) / 100
tp2Percent = input(title="Take Profit 2 (%)", defval=20.0) / 100
slPercent = input(title="Stop Loss (%)", defval=3.0) / 100

var float tp1Price = na
var float tp2Price = na
var float slPrice = na
var bool tp1Reached = false

smaHigh = sma(high * multiplier, len)
smaLow = sma(low / multiplier, len)

Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : nz(Hlv[1])
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)

longCondition = crossover(close, sslUp)
shortCondition = crossunder(close, sslDown)

if (longCondition)
    strategy.entry("Long", strategy.long)
    tp1Price := strategy.position_avg_price * (1 + tp1Percent)
    tp2Price := strategy.position_avg_price * (1 + tp2Percent)
    slPrice := strategy.position_avg_price * (1 - slPercent)
    tp1Reached := false

if (shortCondition)
    strategy.entry("Short", strategy.short)
    tp1Price := strategy.position_avg_price * (1 - tp1Percent)
    tp2Price := strategy.position_avg_price * (1 - tp2Percent)
    slPrice := strategy.position_avg_price * (1 + slPercent)
    tp1Reached := false

// Take Profit, Break-even und Stop-Loss Logik
if (strategy.position_size > 0) // Long-Positionen
    if (not tp1Reached and close >= tp1Price)
        strategy.close("Long", qty_percent = 50)
        strategy.exit("BE Long", "Long", stop = strategy.position_avg_price)
        tp1Reached := true
    if (tp1Reached and close < tp1Price)
        strategy.exit("BE Long", "Long", stop = strategy.position_avg_price)
    if (close >= tp2Price)
        strategy.close("Long", qty_percent = 100)
    if (not tp1Reached)
        strategy.exit("SL Long", "Long", stop = slPrice)

if (strategy.position_size < 0) // Short-Positionen
    if (not tp1Reached and close <= tp1Price)
        strategy.close("Short", qty_percent = 50)
        strategy.exit("BE Short", "Short", stop = strategy.position_avg_price)
        tp1Reached := true
    if (tp1Reached and close > tp1Price)
        strategy.exit("BE Short", "Short", stop = strategy.position_avg_price)
    if (close <= tp2Price)
        strategy.close("Short", qty_percent = 100)
    if (not tp1Reached)
        strategy.exit("SL Short", "Short", stop = slPrice)


Lebih banyak