Strategi beli stop profit dan stop loss terarah dengan volatilitas rendah


Tanggal Pembuatan: 2023-12-18 12:00:07 Akhirnya memodifikasi: 2023-12-18 12:00:07
menyalin: 1 Jumlah klik: 573
1
fokus pada
1621
Pengikut

Strategi beli stop profit dan stop loss terarah dengan volatilitas rendah

Ringkasan

Strategi ini disebut strategi stop loss berorientasi beli dengan volatilitas rendah. Ini menggunakan crossover rata-rata bergerak sebagai sinyal beli, digabungkan dengan stop loss untuk mengunci keuntungan, dan berlaku untuk mata uang di kisaran volatilitas rendah.

Prinsip Strategi

Strategi ini menggunakan moving average dari 3 periode yang berbeda: 50 periode, 100 periode, dan 200 periode. Logika pembelian adalah: ketika 50 periode melintasi 100 periode, dan 200 periode melintasi 100 periode, masuk lebih banyak.

Sinyal ini menunjukkan bahwa pasar sedang menembus dari zona fluktuasi rendah dan mulai memasuki keadaan tren. 50 siklus naik cepat mewakili kekuatan internal dalam jangka pendek yang tiba-tiba meningkat dan mulai mendorong garis panjang menengah ke atas; 100 siklus garis juga mulai naik untuk menunjukkan kekuatan menengah bergabung dan tren stabil naik.

Setelah masuk, strategi menggunakan stop loss untuk mengunci keuntungan. Stop loss target adalah 8% dari harga masuk, dan stop loss line adalah 4% dari harga masuk. Pengaturan stop loss lebih besar dari stop loss, menguntungkan untuk mendapatkan keuntungan lebih dari kerugian, dan memastikan bahwa strategi secara keseluruhan menguntungkan.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Pada saat itu, ada kemungkinan bahwa mereka akan dapat menangkap peluang tren yang dihasilkan oleh terobosan di zona rendah.
  2. Moving average mudah dihitung dan diukur kembali, logikanya sederhana dan jelas.
  3. Pengaturan Stop Loss yang masuk akal untuk mendapatkan keuntungan yang stabil.
  4. Parameter yang dapat dikonfigurasi fleksibel dan mudah dioptimalkan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Salah satu sinyal penembusan dapat menyebabkan kerugian.
  2. Ini adalah salah satu dari beberapa hal yang dapat Anda lakukan untuk mengurangi risiko kerugian.
  3. Stop loss parameter yang tidak tepat dapat mempengaruhi keuntungan.

Tanggapan:

  1. Dalam kombinasi dengan indikator lain, sinyal penyaringan memastikan efektivitas penembusan.
  2. Kurangi periode stop loss dengan tepat untuk mengurangi kerugian akibat reversal.
  3. Uji berbagai stop loss ratio untuk mencari parameter optimal.

Arah optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Uji berbagai parameter rata-rata bergerak untuk menemukan kombinasi yang optimal.
  2. Menambahkan indikator seperti volume transaksi untuk mengkonfirmasi terobosan tren.
  3. Mengatur stop loss secara dinamis.
  4. Menggabungkan metode pembelajaran mesin untuk memprediksi tingkat keberhasilan penembusan.
  5. Menyesuaikan parameter untuk kondisi pasar dan mata uang yang berbeda

Secara keseluruhan, strategi ini berjalan dengan logika yang jelas, dengan mengkonfigurasi siklus moving average dan stop loss stop loss untuk mendapatkan keuntungan dengan risiko rendah, dapat diterapkan secara fleksibel untuk perdagangan kuantitatif. Selanjutnya dapat dioptimalkan dari sisi sinyal masuk, cara stop loss, dan lain-lain, dengan penyesuaian parameter untuk mencari efek terbaik.

Kode Sumber Strategi
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))



//Entry 
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)

//Exit
longStopPrice  = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())

//PLOT

plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)