Strategi kuantitatif Multifactor Great Delight

Penulis:ChaoZhang, Tarikh: 2023-12-04 13:04:03
Tag:

img

Ringkasan

Strategi kuantitatif pelbagai faktor Great Delight menggabungkan beberapa penunjuk teknikal, termasuk purata bergerak, MACD, dan awan Ichimoku, sebagai strategi jangka panjang yang mengikuti trend. Ia terutamanya menggunakan purata bergerak mudah 200 hari untuk menentukan trend keseluruhan, dan butiran tambahan dari purata bergerak eksponensial 20 hari, indeks MACD, dan awan Ichimoku untuk menentukan titik masuk dan keluar tertentu.

Dengan mempertimbangkan kedua-dua trend jangka panjang dan jangka pendek, serta pengesahan pelbagai faktor, strategi ini dapat menapis dengan berkesan perdagangan bising yang disebabkan oleh pecah palsu.

Prinsip Strategi

Apabila harga di atas MA 200 hari, strategi percaya pasaran berada dalam trend bull. Selagi penunjuk MA dan MACD 20 hari menghasilkan isyarat beli pada masa yang sama, dan harga lebih tinggi daripada harga awan Ichimoku tertinggi atau di dalam awan, isyarat beli dihasilkan.

Apabila harga memecahkan di bawah MA 200 hari, strategi menentukan trend bear telah bermula. Keperluan isyarat menjadi lebih ketat sekarang: selain isyarat beli MA dan MACD 20 hari, awan Ichimoku juga mesti memberikan isyarat beli (awan hijau atau harga di atas awan) sebelum mencetuskan pembelian.

Logik isyarat jual adalah sama tetapi terbalik: dalam pasaran lembu, lilin ditutup di bawah bawah awan atau awan flip pemicu menjual; dalam pasaran beruang, masukkan awan merah atau 20 hari MA dan MACD isyarat jual pemicu menjual.

Analisis Kelebihan

Kelebihan terbesar strategi ini terletak pada menggabungkan beberapa penunjuk jangka panjang dan jangka pendek untuk menentukan keadaan pasaran, yang dapat menapis isyarat palsu dengan berkesan.

  1. MA 200 hari menentukan trend keseluruhan untuk mengelakkan perdagangan yang bertentangan dengan trend.
  2. MA 20 hari memberi tumpuan kepada dinamik jangka pendek untuk menangkap pembalikan.
  3. MACD mengesahkan perubahan trend.
  4. Awan Ichimoku memeriksa semula untuk mengelakkan isyarat yang salah.

Melalui pengesahan pelbagai lapisan, kadar keuntungan dapat ditingkatkan dengan ketara.

Analisis Risiko

Risiko utama strategi ini adalah kebarangkalian beberapa penunjuk memberikan isyarat yang salah pada masa yang sama. Walaupun sangat tidak mungkin dalam keadaan yang melampau, ia masih boleh berlaku dengan penggunaan yang berpanjangan.

  1. Sesuaikan parameter dengan betul untuk mencari kombinasi yang optimum.
  2. Stop loss yang ketat untuk segera membalikkan arah selepas isyarat yang salah.
  3. Gunakan kaedah lindung nilai niaga hadapan untuk mengunci keuntungan.
  4. Sesuaikan saiz kedudukan mengikut kawasan sokongan utama.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Uji kombinasi parameter yang berbeza untuk mencari yang optimum.
  2. Tambah modul stop loss untuk kawalan risiko yang lebih baik.
  3. Sertakan penunjuk korelasi seperti kadar perubahan untuk mengelakkan mengejar puncak dan bawah.
  4. Memperkenalkan kaedah pembelajaran mesin seperti rangkaian saraf untuk melatih berat indikator.
  5. Memastikan ketahanan di pasaran yang berbeza.

Kesimpulan

Strategi Great Delight menapis bunyi bising melalui kombinasi indikator saintifik, membolehkan keuntungan berterusan sambil mengawal risiko. Dengan mempertimbangkan kedua-dua trend jangka panjang dan peluang jangka pendek, ia digunakan secara meluas dalam pelaburan jangka menengah dan panjang. Penambahbaikan prestasi yang lebih lanjut dapat dijangkakan melalui pengoptimuman seperti penyesuaian parameter, penambahan kerugian berhenti, dan pengenalan pembelajaran mesin.


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="MACD/EMA/SMA/Ichimoku Long Strategy",overlay=true)




// Ichimoku

conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)


p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color(green,50) : color(red,50))



bottomcloud=leadLine2[displacement-1]
uppercloud=leadLine1[displacement-1]




// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
SMA200 = sma(close, input(200))
EMA = ema(close,input(20))


//MACD Indicator - Is the MACD bullish or bearish?

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions

[main,signal,histo]=macd(close,fastLength,slowlength,MACDLength)

buy_entry = if ((uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)) and close>EMA and (delta>0 and close>min(uppercloud,bottomcloud))) or (close<SMA200 and delta>0 and close>EMA and (uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)))
    true
if close<EMA and ((delta<0 and close<min(uppercloud,bottomcloud)) or (uppercloud<bottomcloud and close>max(uppercloud,bottomcloud)))
    buy_entry = false


strategy.entry("Buy",true , when=buy_entry)
alertcondition(buy_entry, title='Long', message='Chart Bullish')


sell_entry = if ((uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)) and close<EMA and (delta<0 and close<max(uppercloud,bottomcloud))) or (close>SMA200 and delta<0 and close<EMA and (uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)))
    true
if close>EMA and ((delta>0 and close>max(uppercloud,bottomcloud)) or (uppercloud>bottomcloud and close<min(uppercloud,bottomcloud)))
    sell_entry = false



strategy.close("Buy",when= sell_entry)


alertcondition(sell_entry, title='Short', message='Chart Bearish')

//plot(delta, title="Delta", style=cross, color=delta>=0 ? green : red )

Lebih lanjut