Strategi Perdagangan Ichimoku Kumo


Tarikh penciptaan: 2024-05-29 17:23:36 Akhirnya diubah suai: 2024-05-29 17:23:36
Salin: 3 Bilangan klik: 581
1
fokus pada
1617
Pengikut

Strategi Perdagangan Ichimoku Kumo

Gambaran keseluruhan

Strategi ini menggunakan indikator Ichimoku Kumo untuk menilai trend pasaran dan isyarat perdagangan. Strategi ini melakukan lebih banyak di bawah awan Kumo dan melakukan lebih banyak di atas awan Kumo. Strategi ini menggunakan indikator ATR sebagai stop loss, sambil menggunakan garis Kijun-sen dan garis Span Senkou sebagai pengesahan isyarat masuk. Strategi ini cuba menangkap peluang perdagangan dalam trend yang kuat sambil mengawal risiko.

Prinsip Strategi

  1. Garis Kijun-sen, Tenkan-sen dan Senkou Span dalam Indeks Ichimoku digunakan untuk menilai trend pasaran.
  2. Apabila harga penutupan berada di bawah garis Senkou Span dan garis Kijun-sen berada di atas awan Kumo, ia menghasilkan isyarat berganda.
  3. Apabila harga penutupan berada di atas garis Senkou Span dan garis Kijun-sen berada di bawah awan Kumo, ia menghasilkan isyarat shorting.
  4. Menggunakan penunjuk ATR untuk mengira kedudukan hentian, kedudukan hentian adalah 5 garis K yang paling dekat dengan ATR maksimum / minimum / 3 kali ganda.
  5. Apabila harga melepasi titik henti, anda akan keluar dari kedudukan kosong.

Kelebihan Strategik

  1. Strategi ini adalah berdasarkan kepada indikator Ichimoku, yang boleh menganalisis trend pasaran secara menyeluruh.
  2. Strategi ini juga mempertimbangkan hubungan harga dengan Kisjun-sen dan Senkou Span untuk meningkatkan kebolehpercayaan isyarat masuk.
  3. Dengan menggunakan ATR sebagai stop loss, anda dapat menyesuaikan kedudukan stop loss secara dinamik untuk mengawal risiko dengan lebih baik.
  4. Tetapan kedudukan henti rugi mengambil kira turun naik pasaran dan dapat menyesuaikan diri dengan keadaan pasaran yang berbeza.

Risiko Strategik

  1. Strategi ini mungkin menghasilkan lebih banyak isyarat palsu dalam pasaran yang bergolak, menyebabkan perdagangan yang kerap dan kehilangan dana.
  2. Prestasi strategi bergantung pada pilihan parameter indikator Ichimoku, dengan parameter yang berbeza mungkin menghasilkan hasil dagangan yang berbeza.
  3. Dalam keadaan yang melampau, harga mungkin melangkaui kedudukan berhenti dengan cepat, menyebabkan penurunan dan kerugian yang lebih besar.

Arah pengoptimuman strategi

  1. Pengenalan petunjuk teknikal lain atau analisis kuantitatif untuk membantu menilai trend dan masa masuk, meningkatkan ketepatan isyarat.
  2. Mengoptimumkan tetapan kedudukan hentian, seperti mempertimbangkan untuk menggunakan hentian pengesanan atau hentian bergerak untuk lebih melindungi keselamatan akaun.
  3. Menambah pengurusan kedudukan dalam strategi, menyesuaikan saiz kedudukan setiap perdagangan mengikut turun naik pasaran dan risiko akaun.
  4. Mengoptimumkan parameter strategi untuk mencari kombinasi parameter yang paling sesuai dengan keadaan pasaran semasa.

ringkaskan

Strategi ini menggunakan beberapa komponen indikator Ichimoku untuk menganalisis trend pasaran secara menyeluruh. Pada masa yang sama, strategi menggunakan ATR untuk mengawal risiko dan meningkatkan kestabilan strategi. Walau bagaimanapun, strategi ini mungkin tidak berfungsi dengan baik di pasaran yang bergolak dan bergantung pada pilihan parameter.

Kod sumber strategi
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © muratatilay

//@version=5
strategy(
     "Kumo Trade Concept", 
     overlay=true,
     initial_capital=10000,
     currency=currency.USDT,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=30,
     commission_type=strategy.commission.percent,
     commission_value=0.1,
     margin_long=10, 
     margin_short=10)


// ICHIMOKU Lines 
//  INPUTS
tenkanSenPeriods = input.int(9, minval=1, title="Tenkan-sen")
kijunSenPeriods = input.int(26, minval=1, title="Kijun-sen")
senkouBPeriod = input.int(52, minval=1, title="Senkou span B")
displacement = input.int(26, minval=1, title="Chikou span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkanSen = donchian(tenkanSenPeriods)
kijunSen = donchian(kijunSenPeriods)
senkouA = math.avg(tenkanSen, kijunSen)
senkouB = donchian(senkouBPeriod)

// Other Indicators
float   atrValue    = ta.atr(5)

// Calculate Senkou Span A 25 bars back
senkouA_current = math.avg(tenkanSen[25], kijunSen[25])
// Calculate Senkou Span B 25 bars back
senkouB_current = math.avg(ta.highest(senkouBPeriod)[25], ta.lowest(senkouBPeriod)[25])

// Kumo top bottom 
senkou_max = (senkouA_current >= senkouB_current) ? senkouA_current : senkouB_current
senkou_min = (senkouB_current >= senkouA_current) ? senkouA_current : senkouB_current

// Trade Setups
long_setup = (kijunSen > senkou_max) and (close < senkou_min) 
short_setup = (kijunSen < senkou_min ) and ( close > senkou_max ) 

// Check long_setup for the last 10 bars
long_setup_last_10 = false
for i = 0 to 50
    if long_setup[i]
        long_setup_last_10 := true
short_setup_last_10 = false
for i = 0 to 50
    if short_setup[i]
        short_setup_last_10 := true


closeSenkouCross = (close > senkou_max) and barstate.isconfirmed 
closeKijunCross = (close > kijunSen ) 

senkouCloseCross = close < senkou_min
kijunCloseCross = close < kijunSen


// Handle Trades
// Enter Trade
var float trailStopLong = na
var float trailStopShort = na
if ( closeSenkouCross and long_setup_last_10 and closeKijunCross ) 
    strategy.entry(id="Buy", direction = strategy.long)
    trailStopLong := na
if senkouCloseCross and short_setup_last_10 and kijunCloseCross
    strategy.entry(id="Sell", direction = strategy.short)
    trailStopShort := na


// Update trailing stop
float temp_trailStop_long = ta.highest(high, 5) - (atrValue * 3)
float temp_trailStop_short = ta.lowest(low, 5) + (atrValue * 3)
if strategy.position_size > 0
    if temp_trailStop_long > trailStopLong or na(trailStopLong)
        trailStopLong := temp_trailStop_long
if strategy.position_size < 0
    if temp_trailStop_short < trailStopShort or na(trailStopShort)
        trailStopShort := temp_trailStop_short

// Handle strategy exit
if close < trailStopLong and barstate.isconfirmed
    strategy.close("Buy", comment="Stop Long")
if close > trailStopShort and barstate.isconfirmed
    strategy.close("Sell", comment="Stop Short")


// PRINT ON CHART
plot(kijunSen, color=color.rgb(214, 58, 30), title="Kijun-sen", linewidth=2)
p1 = plot(senkouA, offset=displacement - 1, color=#A5D6A7, title="Senkou span A")
p2 = plot(senkouB, offset=displacement - 1, color=#EF9A9A, title="Senkou Span B")
fill(p1, p2, color=senkouA > senkouB ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
// PRINT SETUPS
plotshape(long_setup , style=shape.circle, color=color.green, location=location.belowbar, size=size.small)
plotshape(short_setup, style=shape.circle, color=color.red, location=location.abovebar, size=size.small)

// Trail Stop
plot(strategy.position_size[1] > 0 ? trailStopLong : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")
plot(strategy.position_size[1] < 0 ? trailStopShort : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")