Strategi Dagangan Ichimoku Cloud Oscillator

Penulis:ChaoZhang, Tarikh: 2024-02-20 11:12:44
Tag:

img

Ringkasan

Ini adalah strategi dagangan kuantitatif yang menggabungkan penunjuk Awan Ichimoku dan penunjuk Bollinger Bands. Strategi ini menggunakan garis penukaran, garis asas, rentang utama A, dan rentang utama B Awan Ichimoku untuk menjana isyarat dagangan, sambil menggunakan Bollinger Bands untuk menilai turun naik pasaran dan memutuskan masa kemasukan yang sesuai.

Logika Strategi

Indikator Awan Ichimoku

Indikator Awan Ichimoku terdiri daripada empat garis: garisan penukaran, garis asas, rentang utama A, dan rentang utama B. Garis penukaran adalah harga penutupan purata dalam tempoh jangka pendek (9 hari). Garis asas adalah harga penutupan purata dalam tempoh 26 hari yang lebih lama. Rentang utama A adalah purata antara garisan penukaran dan garis asas, yang memimpin tindakan harga. Rentang utama B adalah harga penutupan purata dalam tempoh 52 hari yang lebih lama, yang tertinggal dari harga. Isyarat beli dan jual dihasilkan apabila purata bergerak jangka pendek melintasi atau di bawah jangka panjang.

Bollinger Bands

Band Bollinger terdiri daripada tiga garis: garis tengah, band atas, dan band bawah. Garis tengah adalah purata bergerak mudah harga penutupan dalam tempoh n hari (ditentukan kepada 20 hari di sini). Garis atas adalah garis tengah ditambah k kali (ditentukan kepada 2 kali di sini) penyimpangan standard. Garis bawah adalah garis tengah dikurangkan k kali penyimpangan standard. Ia menilai sama ada harga berada dalam julat turun naik normal dan menentukan tahap turun naik pasaran.

Strategi ini menggunakan salib emas dan salib kematian rentang utama B untuk membina isyarat perdagangan. Ia juga menggabungkan Bollinger Bands untuk menentukan turun naik harga dan memutuskan untuk memasuki pasaran apabila turun naiknya rendah.

Analisis Kelebihan

Strategi ini menggabungkan penunjuk Ichimoku Cloud dan Bollinger Bands untuk menentukan secara komprehensif trend dan turun naik pasaran, yang dapat menangkap maklumat perubahan pasaran dengan berkesan untuk mencari isyarat perdagangan.

Parameter strategi ini boleh diselaraskan untuk mengoptimumkan untuk produk dan persekitaran pasaran yang berbeza, menjadikannya sangat mudah disesuaikan.

Analisis Risiko

Strategi ini terutamanya bergantung kepada Bollinger Bands untuk menentukan turun naik pasaran. Band mungkin gagal apabila turun naik yang melampau disebabkan oleh peristiwa angsa hitam. Dalam kes itu, isyarat perdagangan yang dibina berdasarkan Awan Ichimoku mungkin menghasilkan isyarat palsu.

Di samping itu, garisan Ichimoku Cloud sendiri juga sensitif terhadap turun naik pasaran yang tajam. Penukaran dan garis asas boleh memberikan isyarat yang salah apabila harga berayun liar.

Arahan pengoptimuman

Indikator lain boleh dipertimbangkan dalam kombinasi untuk menentukan masa kemasukan, seperti KDJ untuk melihat sama ada pasaran terlalu banyak dibeli / terlalu banyak dijual, dan MACD untuk memeriksa hubungan purata bergerak jangka panjang / jangka pendek.

Di samping itu, pembelajaran mesin boleh dimanfaatkan untuk mengoptimumkan parameter Ichimoku Cloud. Parameter yang berbeza mempunyai kesan yang signifikan di seluruh kitaran dan produk. Mencari kombinasi parameter yang optimum dapat meningkatkan keuntungan strategi.

Kesimpulan

Strategi ini menggabungkan penunjuk Ichimoku Cloud dan Bollinger Bands untuk mempertimbangkan kedua-dua trend pasaran dan turun naik. Ia adalah strategi perdagangan kuantitatif adaptif. Strategi ini boleh ditingkatkan dengan menyesuaikan parameter dan mengoptimumkan peraturan kemasukan untuk mencapai keuntungan yang baik dalam perdagangan langsung.


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

//@version=5
strategy("一目均衡表シグナル + ボリンジャーバンド", overlay=true)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2.0, title="Bollinger Bands Multiplier")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// ボリンジャーバンドの計算
basis = ta.sma(close, bbLength)
bbUpper = basis + bbMultiplier * ta.stdev(close, bbLength)
bbLower = basis - bbMultiplier * ta.stdev(close, bbLength)

// 1σ、2σ、3σのライン
bbUpper1 = basis + ta.stdev(close, bbLength)
bbLower1 = basis - ta.stdev(close, bbLength)

bbUpper2 = basis + 2 * ta.stdev(close, bbLength)
bbLower2 = basis - 2 * ta.stdev(close, bbLength)

bbUpper3 = basis + 3 * ta.stdev(close, bbLength)
bbLower3 = basis - 3 * ta.stdev(close, bbLength)

// 遅行スパンがローソクに交差した際のBuyとSellシグナル
buySignalLeadLine = ta.crossover(close, leadLine2)
sellSignalLeadLine = ta.crossunder(close, leadLine2)

// Strategy Entry and Exit Conditions for Lead Line
strategy.entry("BuyLeadLine", strategy.long, when = buySignalLeadLine)
strategy.close("BuyLeadLine", when = sellSignalLeadLine)

strategy.entry("SellLeadLine", strategy.short, when = sellSignalLeadLine)
strategy.close("SellLeadLine", when = buySignalLeadLine)

// Plotting Ichimoku Cloud
plot(conversionLine, color=color.new(color.blue, 0), title="Conversion Line")
plot(baseLine, color=color.new(color.red, 0), title="Base Line")
plot(close, offset = -displacement + 1, color=color.new(color.green, 0), title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=color.new(color.green, 0),
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=color.new(#cdf80d, 0),
     title="Leading Span B")

fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))



// 2σ、3σのラインをプロット

plot(bbUpper2, color=color.rgb(100, 96, 100), title="BB Upper 2σ")
plot(bbLower2, color=color.rgb(100, 96, 100), title="BB Lower 2σ")

plot(bbUpper3, color=color.rgb(67, 61, 68), title="BB Upper 3σ")
plot(bbLower3, color=color.rgb(67, 61, 68), title="BB Lower 3σ")

// Plotting Entry and Exit Signals
plotshape(series=buySignalLeadLine, title="Buy Signal (Lead Line)", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignalLeadLine, title="Sell Signal (Lead Line)", color=color.rgb(255, 115, 0), style=shape.triangledown, location=location.abovebar, size=size.small)


Lebih lanjut