Strategi panjang dan pendek berdasarkan entitas K-line


Tanggal Pembuatan: 2023-11-16 17:14:48 Akhirnya memodifikasi: 2023-11-16 17:14:48
menyalin: 0 Jumlah klik: 649
1
fokus pada
1617
Pengikut

Strategi panjang dan pendek berdasarkan entitas K-line

Ringkasan

Strategi ini didasarkan pada panjang entitas dari garis K untuk menilai arah polygon. Ini menghitung panjang entitas rata-rata dari 30 garis K terbaru, dengan lebih banyak jika panjang entitas sinar matahari lebih besar dari panjang entitas rata-rata, dan kosong jika panjang entitas sinar matahari lebih besar dari panjang entitas rata-rata.

Prinsip Strategi

Strategi ini pertama-tama menghitung panjang badan entitas dari garis K, dan rata-rata panjang badan entitas dari 30 garis K terakhir.

Jika K hari ini adalah bar ==-1), dan panjang entitasnya lebih besar dari panjang entitas rata-rata, buka polynomial ((up1) ).

Buka formulir kosong bila hari ini garis K adalah garis bujur ((bar==1), dan panjang entitas lebih besar dari panjang entitas rata-rata.

Setelah membuka banyak opsi, jika hari ini K garis adalah garis lurus ((bar==1), dan posisi saat ini adalah profitabilitas, maka posisi kosong banyak opsi。

Setelah kartu kosong dibuka, jika hari ini garis K adalah garis negatif ((bar==-1), dan posisi saat ini dalam keadaan menguntungkan, maka kartu kosong kosong akan kosong.

Strategi ini secara sederhana dan efektif menggunakan panjang entitas garis K untuk menilai tren pasar, semakin panjang entitas menunjukkan semakin kuat tren, sehingga menggunakan panjang entitas sebagai dasar untuk menilai polygon.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Strategi ini sederhana, mudah dipahami, dan mudah diterapkan.

  2. Menggunakan panjang entitas garis K untuk menilai tren dan menghindari gangguan suara.

  3. Menggunakan perhitungan rata-rata dinamis, dapat beradaptasi dengan perubahan pasar.

  4. Dengan menetapkan kondisi posisi terdepan yang menguntungkan, strategi ini dapat meningkatkan tingkat pengembalian.

  5. Parameter kebijakan yang dapat dikonfigurasi untuk berbagai lingkungan pasar.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Entitas yang lebih panjang tidak selalu mewakili tren yang kuat, tetapi mungkin fluktuasi normal.

  2. Penetapan jendela waktu dengan panjang entitas rata-rata yang tidak tepat dapat menyebabkan kehilangan peluang perdagangan.

  3. Kejadian tak terduga dapat menyebabkan kerugian strategis.

  4. Berpegang pada posisi kosong terlalu lama dapat menyebabkan kerugian yang lebih besar.

Solusi untuk menghadapi risiko:

  1. Ini adalah salah satu indikator yang digunakan untuk mengevaluasi tren dan menghindari salah trading.

  2. Uji nilai dari parameter yang berbeda untuk mengoptimalkan perhitungan panjang entitas rata-rata.

  3. Tetapkan kondisi stop loss dan kendalikan kerugian tunggal.

  4. Mengoptimalkan logika pembukaan dan penutupan untuk menghindari jangka waktu yang terlalu lama.

Arah optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Menggabungkan indikator MACD, RSI dan lain-lain untuk menilai tren, untuk menghindari kesalahan sinyal karena fluktuasi rutin.

  2. Uji parameter jendela waktu dengan panjang entitas rata-rata yang berbeda untuk mencari kombinasi optimal.

  3. Tambahkan logika pengendalian volume posisi terbuka, mengurangi volume posisi terbuka secara bertahap seiring dengan peningkatan jumlah kerugian.

  4. Setting mobile stop loss or profit rate stop loss withdrawal condition, untuk mengontrol rasio kerugian tunggal.

  5. Mengoptimalkan kondisi posisi terbuka dan aman, menghindari transaksi yang tidak valid. Misalnya, 3 entitas K-line berturut-turut yang lebih panjang kemudian membuka posisi.

  6. Menghindari perdagangan pada periode tertentu atau sebelum dan sesudah terbitnya data penting untuk mengendalikan kerugian akibat kejutan nilai tukar.

Meringkaskan

Strategi ini memiliki konsep yang jelas dan mudah dimengerti, dengan membandingkan entitas K-line dengan panjang rata-rata untuk menentukan waktu masuk. Strategi ini memiliki ruang yang lebih besar untuk dioptimalkan, dan dapat disesuaikan secara optimal dari berbagai sisi, sehingga parameter strategi lebih sesuai dengan lingkungan pasar yang berbeda. Secara keseluruhan, strategi ini cukup sederhana dan dapat diandalkan sebagai strategi awal perdagangan kuantitatif yang cocok untuk digunakan dan dipelajari oleh pedagang pemula.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
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")

//Signals
bar = close > open ? 1 : close < open ? - 1 : 0
body = abs(close - open)
sbody = ema(body, 30)

up1 = bar == -1 and (body > sbody or usebody == false)
dn1 = bar == 1 and (body > sbody or usebody == false)

plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0)
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()