
Strategi ini adalah sistem perdagangan mengikut aliran berdasarkan penunjuk Awan Ichimoku. Strategi ini menggunakan persilangan garisan penukaran dan garis asas untuk menjana isyarat dagangan, dan menggabungkan kawasan sokongan dan rintangan carta awan untuk mengesahkan arah aliran, dengan itu mencapai pemahaman arah aliran pasaran dan peluang dagangan. Idea teras strategi ini adalah untuk mengenal pasti titik perubahan arah aliran melalui persilangan dinamik purata bergerak berbilang tempoh, dan untuk membuat urus niaga yang sepadan apabila arah aliran itu ditetapkan.
Strategi ini berdasarkan komponen utama berikut:
Keadaan pencetus isyarat dagangan:
Strategi ini menyediakan rangka kerja yang sistematik untuk keputusan perdagangan melalui analisis berbilang dimensi Awan Ichimoku. Kelebihan strategi ini ialah ia dapat memahami sepenuhnya arah aliran pasaran, tetapi pada masa yang sama ia juga mempunyai ketinggalan dan pergantungan tertentu pada persekitaran pasaran. Dengan memperkenalkan penunjuk tambahan dan mengoptimumkan mekanisme pengesahan isyarat, kepraktisan dan kebolehpercayaan strategi boleh dipertingkatkan lagi. Dalam aplikasi praktikal, adalah disyorkan untuk mengoptimumkan dan melaraskan parameter mengikut ciri pasaran tertentu, dan menggabungkan penunjuk teknikal lain untuk meningkatkan kestabilan strategi.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud Strategy", overlay=true)
// Ichimoku Settings
conversionPeriods = input(9, title="Conversion Line Period")
basePeriods = input(26, title="Base Line Period")
laggingSpan2Periods = input(52, title="Lagging Span 2 Period")
displacement = input(26, title="Displacement")
// Ichimoku Calculation
conversionLine = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2
baseLine = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2
leadLine1 = (conversionLine + baseLine) / 2
leadLine2 = (ta.highest(high, laggingSpan2Periods) + ta.lowest(low, laggingSpan2Periods)) / 2
laggingSpan = ta.valuewhen(close, close, 0)[displacement]
// Plot Ichimoku Cloud
plot(conversionLine, title="Conversion Line", color=color.blue)
plot(baseLine, title="Base Line", color=color.red)
plot(leadLine1, title="Lead Line 1", color=color.green)
plot(leadLine2, title="Lead Line 2", color=color.orange)
plot(laggingSpan, title="Lagging Span", color=color.purple)
// Cloud Fill
plot(leadLine1, color=color.new(color.green, 90))
plot(leadLine2, color=color.new(color.red, 90))
// Signals
buySignal = ta.crossover(conversionLine, baseLine)
sellSignal = ta.crossunder(conversionLine, baseLine)
// Execute Trades
if buySignal
strategy.entry("Long", strategy.long)
if sellSignal
strategy.entry("Short", strategy.short)
// Debugging Plots
plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)