Strategi dorongan berganda berasaskan badan lilin

Penulis:ChaoZhang, Tarikh: 2023-11-16 17:14:48
Tag:

img

Ringkasan

Strategi ini menggunakan panjang badan lilin untuk menentukan arah panjang dan pendek. Ia mengira panjang badan purata 30 lilin baru-baru ini. Apabila panjang badan lilin bullish lebih besar daripada purata, ia pergi panjang. Apabila panjang badan lilin bearish lebih besar daripada purata, ia pergi pendek.

Logika Strategi

Strategi ini mula-mula mengira panjang badan candlestick dan panjang badan purata 30 candlestick sbody terkini.

Apabila candlestick hari ini menurun (bar==-1) dan panjang badan lebih besar daripada panjang badan purata, ia membuka kedudukan panjang (ke atas1).

Apabila candlestick hari ini bullish (bar==1) dan panjang badan lebih besar daripada panjang badan purata, ia membuka kedudukan pendek (dn1).

Selepas membuka long, jika candlestick hari ini bullish (bar==1) dan kedudukan semasa menguntungkan, ia menutup kedudukan panjang.

Selepas membuka pendek, jika lilin hari ini menurun (bar==-1) dan kedudukan semasa menguntungkan, ia menutup kedudukan pendek.

Strategi ini dengan mudah dan berkesan menggunakan panjang badan candlestick untuk menentukan trend pasaran. semakin lama badan, semakin kuat trend. jadi ia menggunakan panjang badan sebagai kriteria untuk panjang dan pendek.

Analisis Kelebihan

Kelebihan strategi ini:

  1. Logiknya mudah dan jelas, mudah difahami dan dilaksanakan.

  2. Menggunakan panjang badan candlestick untuk menentukan trend, mengelakkan gangguan bunyi.

  3. Mengambil kiraan purata dinamik, boleh menyesuaikan diri dengan perubahan pasaran.

  4. Tetapkan syarat keluar yang menguntungkan untuk meningkatkan keuntungan.

  5. Parameter yang boleh dikonfigurasi, dapat disesuaikan dengan persekitaran pasaran yang berbeza.

Analisis Risiko

Risiko strategi ini:

  1. Badan panjang tidak semestinya mewakili trend yang kuat, boleh menjadi turun naik normal.

  2. Jendela masa panjang badan yang tidak betul boleh kehilangan peluang perdagangan.

  3. Peristiwa Black Swan boleh menyebabkan kerugian.

  4. Menyimpan kedudukan terlalu lama boleh meningkatkan kerugian.

Penyelesaian:

  1. Gabungkan dengan penunjuk lain untuk menentukan trend, elakkan perdagangan yang salah.

  2. Uji nilai parameter yang berbeza, optimumkan pengiraan panjang badan purata.

  3. Tetapkan stop loss untuk mengawal kehilangan tunggal.

  4. Mengoptimumkan masuk dan keluar logik untuk mengelakkan memegang terlalu lama.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Gabungkan MACD, RSI untuk menentukan trend, mengelakkan isyarat yang salah dari turun naik biasa.

  2. Uji parameter tetingkap masa panjang badan purata yang berbeza untuk mencari set parameter optimum.

  3. Tambah logik kawalan saiz kedudukan, secara beransur-ansur mengurangkan saiz kedudukan apabila mengalami kerugian.

  4. Tetapkan sasaran stop loss atau keuntungan untuk mengawal peratusan kerugian tunggal.

  5. Mengoptimumkan syarat masuk dan keluar untuk mengelakkan perdagangan yang tidak berkesan.

  6. Elakkan berdagang pada tempoh tertentu atau sekitar pelepasan data penting untuk mengawal kerugian akibat turun naik.

Kesimpulan

Strategi ini mempunyai logik yang jelas dan mudah difahami untuk membandingkan badan lilin dengan panjang purata untuk masa kemasukan. Ruang yang besar untuk pengoptimuman dari pelbagai dimensi untuk menyesuaikan dengan lebih baik untuk persekitaran pasaran yang berbeza. Secara keseluruhan strategi perdagangan kuant pengenalan yang mudah dan boleh dipercayai yang sesuai untuk digunakan dan dipelajari oleh pedagang pemula. Lebih lanjut menggabungkan lebih banyak penunjuk dan mengoptimumkan untuk meningkatkan keuntungan dan ketahanan.


/*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()

Lebih lanjut