
Strategi ini menggabungkan awan grafik keseimbangan pertama dan jangka pendek (55) dan jangka panjang (200) rata-rata bergerak sederhana (SMA) untuk mengidentifikasi sinyal jual beli potensial. Sinyal beli membutuhkan harga di atas awan dan SMA jangka panjang, dan naik kembali setelah melewati SMA jangka pendek. Sinyal jual membutuhkan harga di bawah awan dan SMA jangka panjang, dan naik kembali setelah melewati SMA jangka pendek.
Strategi ini didasarkan pada prinsip-prinsip berikut:
Program ini pertama-tama menghitung komponen awan pertama yang dibutuhkan (conversion line, baseline, and leading span A and B), serta SMA jangka pendek dan jangka panjang. Kemudian, program ini mendefinisikan beberapa kondisi untuk mengidentifikasi posisi harga relatif terhadap awan dan garis rata.
Strategi “satu awan multi rata-rata perdagangan strategi” dengan menggabungkan grafik keseimbangan pertama awan dan rata-rata bergerak sederhana, mencari peluang masuk berisiko rendah untuk mundur ke rata-rata dalam tren yang telah ditetapkan. Dengan memfilter perdagangan selama pasar horizontal dan peristiwa berita besar, strategi ini dapat mengurangi risiko sinyal palsu, sehingga meningkatkan kinerja secara keseluruhan. Strategi ini terutama cocok untuk pedagang jangka menengah dan panjang, yang berkinerja baik pada kerangka waktu 1 jam dan 2 jam.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud and Moving Average Strategy", shorttitle="ICMA", overlay=true)
// Input parameters
shortMA = input.int(55, title="Short-term Moving Average Length")
longMA = input.int(200, title="Long-term Moving Average Length")
// Calculate moving averages
shortSMA = ta.sma(close, shortMA)
longSMA = ta.sma(close, longMA)
// Ichimoku Cloud settings
conversionPeriod = input.int(9, title="Conversion Line Period")
basePeriod = input.int(26, title="Base Line Period")
spanBPeriod = input.int(52, title="Span B Period")
displacement = input.int(26, title="Displacement")
// Calculate Ichimoku Cloud components
conversionLine = ta.sma(high + low, conversionPeriod) / 2
baseLine = ta.sma(high + low, basePeriod) / 2
leadSpanA = (conversionLine + baseLine) / 2
leadSpanB = ta.sma(high + low, spanBPeriod) / 2
// Plot Ichimoku Cloud components
plot(leadSpanA, color=color.blue, title="Leading Span A")
plot(leadSpanB, color=color.red, title="Leading Span B")
// Entry conditions
aboveCloud = close > leadSpanA and close > leadSpanB
belowCloud = close < leadSpanA and close < leadSpanB
aboveShortMA = close > shortSMA
aboveLongMA = close > longSMA
belowShortMA = close < shortSMA
belowLongMA = close < longSMA
// Buy condition (Price retests 55 moving average after being above it)
buyCondition = aboveCloud and aboveLongMA and close[1] < shortSMA and close > shortSMA
// Sell condition (Price retests 55 moving average after being below it)
sellCondition = belowCloud and belowLongMA and close[1] > shortSMA and close < shortSMA
// Strategy entry and exit
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)
// Plot moving averages
plot(shortSMA, color=color.green, title="Short-term SMA")
plot(longSMA, color=color.red, title="Long-term SMA")
// Plot buy and sell signals
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")