Strategi Stop Profit dan Stop Loss Ganda Penembusan Osilasi yang cekap

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

img

Ringkasan

Ini adalah strategi perdagangan dua arah yang sangat cekap yang direka berdasarkan penunjuk saluran dan prinsip pecah. Ia dapat mencapai perdagangan dua arah dengan kadar kemenangan yang tinggi pada saham dan mata wang kripto dalam jangka masa 1 minit.

Logika Strategi

Strategi ini menggunakan penunjuk SMA untuk membina saluran. Ia masuk panjang apabila harga pecah di atas saluran dan masuk pendek apabila harga pecah di bawah saluran. Ambil keuntungan dan hentikan kerugian juga ditetapkan untuk mengunci keuntungan dan mengawal risiko.

Secara khusus, strategi ini mengira rel atas dan bawah saluran. rel atas adalah SMA 10 tempoh harga dekat dikalikan dengan 1.02; rel bawah adalah SMA 10 tempoh harga terendah dibahagikan dengan 1.02.

Selepas pergi panjang, dua tahap mengambil keuntungan ditetapkan masing-masing pada 1% dan 3%, dengan kerugian berhenti 3%. Mempersingkat mempunyai tetapan keuntungan / kerugian yang sama. Melalui prinsip pecah strategi dapat mencapai kadar kemenangan kemasukan yang agak tinggi; melalui keuntungan mengambil ganda ia boleh mengunci lebih banyak keuntungan; melalui kerugian berhenti ia mengawal jumlah kerugian setiap perdagangan.

Analisis Kelebihan

Strategi penembusan saluran seperti ini mempunyai kelebihan seperti isyarat kemasukan yang jelas, kekerapan operasi yang tinggi, pengambilan keuntungan pelbagai peringkat, dll. Kelebihan utama adalah:

  1. Menggunakan penunjuk saluran untuk mengenal pasti julat turun naik harga dan memilih titik pecah untuk memasuki boleh mendapatkan kadar kemenangan yang agak tinggi.

  2. Beroperasi pada carta 1 minit untuk menangkap lebih banyak peluang dan memenuhi keperluan untuk perdagangan kelajuan.

  3. Mempunyai dua tahap mengambil keuntungan membolehkan mengunci lebih banyak keuntungan apabila trend berjalan dengan baik. ganjaran yang lebih tinggi berbanding hanya satu sasaran mengambil keuntungan.

  4. Stop loss yang agak luas memberi pergerakan harga ruang, mengelakkan stop loss yang terlalu awal.

Analisis Risiko

Risiko terbesar dengan strategi breakout sedemikian adalah breakout palsu yang membawa kepada kerugian. Juga, stop loss yang besar boleh meningkatkan risiko kerugian.

  1. Isyarat pecah boleh menjadi pecah palsu dan gagal mencapai mengambil keuntungan atau menghentikan kerugian. isu yang biasa dalam analisis teknikal. pengoptimuman parameter dapat membantu mengelakkan.

  2. Sempadan stop loss pada 3% mungkin sukar bagi sesetengah peniaga untuk menahan.

  3. Strategi ini lebih sesuai untuk perdagangan jangka pendek dan memerlukan pemantauan.

Arahan pengoptimuman

Strategi tren seperti ini boleh mengoptimumkan terutamanya dalam aspek berikut:

  1. Uji lebih banyak penunjuk untuk membina saluran dan mencari yang lebih boleh dipercayai untuk mengurangkan pecah palsu.

  2. Mengoptimumkan penyesuaian parameter purata bergerak, mencari kombinasi parameter terbaik.

  3. Uji mekanisme kemasukan yang lebih kompleks, seperti menambah penapis kelantangan dll.

  4. Tetapkan kombinasi parameter yang dapat disesuaikan dengan ciri produk yang berbeza untuk mencapai penyesuaian parameter sendiri.

  5. Tambah mekanisme kehilangan berhenti automatik yang secara dinamik menyesuaikan kehilangan berhenti dari masa ke masa.

Kesimpulan

Ini adalah strategi perdagangan dua arah yang cekap yang dibina di atas penunjuk saluran. Ia memasuki pasaran melalui prinsip pecah, mengambil keuntungan berganda untuk mengunci ganjaran, menghentikan kerugian untuk mengawal risiko. Pengoptimuman lanjut dapat mencapai hasil yang lebih baik. Tetapi peniaga masih perlu berhati-hati terhadap risiko seperti pecah 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 lanjut