Strategi keuntungan stop-loss berbasis tren


Tanggal Pembuatan: 2024-02-21 14:55:41 Akhirnya memodifikasi: 2024-02-21 14:55:41
menyalin: 0 Jumlah klik: 629
1
fokus pada
1617
Pengikut

Strategi keuntungan stop-loss berbasis tren

Ringkasan

Gagasan utama dari strategi ini adalah untuk menentukan arah bullish berdasarkan tren harga mingguan, dalam kasus bullish, masuk ke bullish setelah munculnya bentuk garis matahari; berhenti ketika harga naik ke stop loss yang ditentukan, dan berhenti jika turun ke stop loss yang ditentukan.

Prinsip Strategi

Strategi ini pertama-tama mendefinisikan kriteria untuk menilai tren mingguan:

isUptrend = close > close[1] 

isDowntrend = close < close[1]

Jika harga penutupan saat ini lebih besar dari harga penutupan hari sebelumnya, maka akan dianggap sebagai tren bullish, sebaliknya, akan menjadi bearish.

Kemudian, tentukan sinyal intraday:

buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

Harga penutupan hari sebelumnya lebih besar dari harga penutupan hari sebelumnya, dan harga penutupan hari sebelumnya lebih besar dari harga penutupan hari sebelumnya, dan berada dalam tren bullish, memenuhi syarat masuk multihead.

Setelah masuk, stop loss ditetapkan sebagai harga penutupan hari sebelumnya dikurangi 1.382 kali panjang garis fisik hari sebelumnya:

stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) 

Stop loss ditetapkan sebagai harga penutupan hari sebelumnya ditambah dua kali perbedaan antara stop loss dan harga penutupan:

takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

Hal ini dilakukan untuk mencapai stop loss recovery.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Perdagangan Berdasarkan Tren, Menghindari Risiko Depresi
  2. Menggunakan sinar matahari di siang hari dan sinyal gabungan dari celah, untuk menghindari masuknya orang-orang terlalu dini
  3. Stop Loss Berorientasi Rasional dan Mengontrol Kerugian Tunggal
  4. Ruang berhenti lebih besar, potensi keuntungan lebih tinggi

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Tidak dapat menentukan titik balik tren, mungkin kehilangan kesempatan 100000000000000000000 untuk berbalik
  2. Stop loss terlalu dekat, lebih mungkin untuk ditembak
  3. Tidak mempertimbangkan pengendalian biaya, frekuensi transaksi yang terlalu tinggi dapat menurunkan pendapatan

Untuk mengendalikan risiko ini, pertimbangkan untuk menambahkan optimasi berikut:

  1. Trailer yang ditempatkan di dekat titik stop loss untuk melacak stop loss
  2. Menambahkan modul pengendalian biaya untuk membatasi frekuensi pembukaan
  3. Meningkatkan penilaian terhadap SUPPORT/RESISTANCE

Arah optimasi

Strategi ini juga dapat dioptimalkan dengan cara:

  1. Perhitungan tren berdasarkan lebih banyak faktor, seperti arah rata-rata bergerak, perubahan volume transaksi, dan lain-lain.
  2. Optimalkan sinyal masuk, menggabungkan lebih banyak bentuk K-line
  3. Tracking Stop Loss Stop Loss, otomatis menyesuaikan dengan fluktuasi harga
  4. Menambahkan modul kuantitatif untuk mengontrol ukuran posisi
  5. Kombinasi multi-periode, menggunakan penyaringan tren tingkat lebih tinggi

Meringkaskan

Strategi ini secara keseluruhan relatif praktis, ide inti menonjolkan perdagangan tren, sekaligus mengendalikan risiko. Dapat digunakan sebagai strategi dasar untuk perdagangan short-line dalam sehari, atau dapat dioptimalkan secara modular sesuai dengan berbagai pasar dan varietas, untuk mencapai portofolio perdagangan yang beragam. Dalam penerapan praktis, tetap perlu memperhatikan pengendalian biaya dan pencegahan risiko, menjaga pola pikir yang tepat sangat penting.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)

// Function to get previous day's close and open
getPrevDayClose() =>
    request.security(syminfo.tickerid, "D", close[1])

getPrevDayOpen() =>
    request.security(syminfo.tickerid, "D", open[1])

// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]

// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

// Strategy logic
if (isUptrend)
    strategy.entry("Buy", strategy.long, when = buyCondition)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
    
if (isDowntrend)
    strategy.entry("Sell", strategy.short)

// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)

// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)