Strategi Kotak Putih Robot Saluran Harga

Penulis:ChaoZhang, Tanggal: 2024-02-28 17:51:14
Tag:

img

Gambaran umum

Strategi Box Putih Robot Saluran Harga adalah strategi perdagangan mekanis sederhana berdasarkan indikator saluran harga. Ini menggunakan batas atas dan bawah saluran harga untuk menentukan titik masuk dan keluar. Strategi ini panjang pada tren naik dan pendek pada tren turun.

Logika Strategi

Logika inti dari Strategi Kotak Putih Harga Robot adalah:

  1. Menggunakan fungsi tertinggi dan terendah untuk menghitung tertinggi tertinggi dan terendah terendah dari bar len terbaru, yang didefinisikan sebagai batas atas dan bawah saluran harga
  2. Menghitung harga tengah dari saluran harga: (tinggi tertinggi + terendah terendah) / 2
  3. Pergi panjang ketika harga melanggar batas atas saluran harga
  4. Pergi short ketika harga melanggar batas bawah saluran harga
  5. Penutupan posisi ketika harga menarik kembali ke harga tengah saluran harga

Strategi ini juga memiliki beberapa parameter yang dapat dikonfigurasi:

  • Panjang saluran harga len: default 50 bar
  • Arah perdagangan: panjang, pendek dapat dikonfigurasi secara terpisah
  • Ukuran perdagangan: default 100% dari ekuitas rekening
  • Stop loss: opsi untuk menggunakan harga tengah sebagai stop loss
  • Jam perdagangan: hanya perdagangan dalam kisaran tanggal yang dikonfigurasi

Dengan menyesuaikan parameter ini, strategi dapat lebih disesuaikan dengan produk dan lingkungan pasar yang berbeda.

Analisis Keuntungan

Strategi Kotak Putih Robot Saluran Harga memiliki keuntungan berikut:

  1. Logika sederhana, mudah dipahami dan diterapkan
  2. Menggunakan indikator saluran harga sepenuhnya untuk menentukan tren dan pembalikan
  3. Parameter yang sangat dapat dikonfigurasi untuk fleksibilitas yang lebih baik
  4. Mekanisme stop loss built-in untuk membatasi kerugian
  5. Dukungan waktu filter untuk menghindari dampak dari peristiwa besar

Singkatnya, ini adalah strategi tren yang sederhana namun praktis, yang dapat mencapai hasil yang layak setelah penyesuaian parameter.

Analisis Risiko

Strategi Kotak Putih Robot Saluran Harga juga memiliki beberapa risiko:

  1. Indikator saluran harga sensitif terhadap parameter len, pengujian independen dan optimasi yang diperlukan untuk jangka waktu dan produk yang berbeda
  2. Pelacakan stop loss berisiko dihentikan lebih awal, jarak stop loss perlu disesuaikan berdasarkan volatilitas pasar
  3. Perdagangan yang berlebihan dan tidak berarti selama pasar rangebound dan sideways, meningkatkan biaya transaksi dan slip

Untuk mengurangi risiko ini, optimasi perlu dilakukan dalam aspek berikut:

  1. Gunakan Walk Forward Analysis untuk mengoptimalkan parameter secara otomatis
  2. Tambahkan zona penyangga untuk menghentikan harga kerugian untuk menghindari berhenti keluar
  3. Tambahkan filter tren untuk menghindari perdagangan di pasar sampingan

Arahan Optimasi

Ada ruang untuk optimasi lebih lanjut dari Strategi Kotak Putih Robot Saluran Harga:

  1. Tambahkan penilaian tren jangka waktu yang lebih tinggi untuk menghindari perdagangan kontra-tren
  2. Menggunakan perbedaan harga antara produk korelasi untuk menetapkan parameter dan memanfaatkan peluang arbitrase
  3. Tambahkan buffer acak untuk harga stop loss untuk mengurangi kemungkinan berhenti keluar
  4. Sesuaikan parameter saluran harga len secara dinamis berdasarkan volatilitas pasar
  5. Pelatih agen dengan metode pembelajaran mendalam untuk mengoptimalkan strategi untuk produk tertentu

Teknik optimasi ini dapat membantu meningkatkan stabilitas dan profitabilitas strategi.

Ringkasan

Strategi Box Putih Robot Saluran Harga adalah strategi yang sederhana namun praktis mengikuti tren. Ini mengidentifikasi arah tren dan titik pembalikan menggunakan indikator saluran harga untuk membuat keputusan perdagangan. Strategi ini mudah dipahami dan diimplementasikan, dan dapat mencapai pengembalian yang layak setelah penyesuaian parameter.


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

//Noro

//@version=4
strategy(title = "Robot WhiteBox Channel", shorttitle = "Robot WhiteBox Channel", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstop = input(true, defval = true, title = "Stop-loss")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
len = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Price Channel
h = highest(high, len)
l = lowest(low, len)
center = (h + l) / 2

//Lines
pccol = showll ? color.black : na
slcol = showll ? color.red : na
plot(h, offset = 1, color = pccol)
plot(center, offset = 1, color = slcol)
plot(l, offset = 1, color = pccol)

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if h > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = h, when = strategy.position_size <= 0 and truetime)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = l, when = strategy.position_size >= 0 and truetime)
    strategy.entry("S Stop", strategy.long, 0, stop = center, when = strategy.position_size[1] <= 0 and needstop)
    strategy.entry("L Stop", strategy.short, 0, stop = center, when = strategy.position_size[1] >= 0 and needstop)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")

Lebih banyak