Strategi Ichimoku Kinko Hyo


Tarikh penciptaan: 2023-10-13 16:48:22 Akhirnya diubah suai: 2023-10-13 16:48:22
Salin: 0 Bilangan klik: 764
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi keseimbangan satu mata menggunakan konsep garis rata, menggunakan garis rata satu mata dan hubungan harga untuk menilai arah trend, termasuk strategi mengikuti trend. Apabila harga di atas merentasi garis rata, lakukan lebih banyak, ketika di bawah melakukan kosong, ikuti tren berjalan.

Pembahasan asal

Strategi ini adalah berasaskan kepada idea garis semak-semak, dan ia digunakandonchian()Fungsi ini mengira nilai purata harga tertinggi dan terendah dalam tempoh tertentu, sebagai garis purata. Kemudian menilai sama ada harga menembusi garis purata itu, dan menghasilkan isyarat perdagangan.

Secara khusus, strategi ini bermula dengan mengiraTenGaris purata satu mataTS, sebagai garis rujukan 。 apabila harga di atas melintasi garis rata-rata, dianggap memasuki keadaan trend, menghasilkan banyak isyarat; apabila harga di bawah melintasi garis rata-rata, dianggap trend berbalik, menghasilkan isyarat melakukan shorting 。

Selain itu, strategi ini juga mengiraKijGaris purata kitaranKSdanTSGaris bersatu, membentuk syarat penapisan, mengelakkan isyarat salah.TSPakai dalam talianKSIa akan mencetuskan isyarat berganda apabila ia dihubungkan.

Kod ini juga memetakan peta awan, menentukan hubungan kedudukan peta awan, membantu menentukan arah trend.ChikouGaris, menilai hubungannya dengan harga, sebagai syarat tambahan.

Analisis kelebihan

  • Menggunakan garis purata untuk menilai trend, asasnya mudah difahami
  • Menambah kepastian dan ketepatan dengan menggunakan grafik awan
  • PeningkatanChikouTalian sebagai syarat tambahan untuk menapis lebih lanjut
  • Menggunakan kombinasi linear parameter yang berbeza, boleh disesuaikan secara fleksibel

Analisis risiko

  • Strategi garis rata sensitif terhadap parameter, kesan parameter yang berbeza-beza dalam tempoh yang berbeza
  • Mengikut garis purata, tidak dapat menilai trend dan julat, ada risiko kerugian
  • Tidak dapat menangani kitaran pengiraan, mudah untuk menghantar isyarat yang salah
  • Penghakiman Pembantu Cloud Map Tidak Tetap dan Mungkin Membuat Kesilapan

Anda boleh mempertimbangkan untuk menggabungkan indikator trend seperti penilaian MACD, dan kemudian menghasilkan isyarat; menggunakan sistem kombinasi berganda linear, meningkatkan kestabilan; atau menambah strategi kawalan risiko berhenti.

Arah pengoptimuman

  • Menambah portfolio indikator momentum untuk menilai trend yang lemah
  • Pertimbangkan untuk menggunakan sistem linear seperti Gold Cross Linear
  • Menambah saluran dan indikator kadar turun naik untuk menilai selang penyesuaian
  • Parameter pengoptimuman untuk mencari kombinasi kitaran terbaik
  • Menyertai strategi stop loss untuk mengawal kerugian tunggal

ringkaskan

Strategi keseimbangan satu pandangan secara keseluruhan lebih mudah dan langsung, sesuai untuk pemula, memahami trend melalui garis rata; dan juga boleh melakukan kombinasi pelbagai indikator, memperkaya kesan sistem. Tetapi kesan strategi ini masih belum disahkan, masih perlu terus mengoptimumkan ujian, untuk digunakan dalam perdagangan sebenar. Kunci adalah untuk mengawal risiko, tidak boleh mengikuti garis rata secara buta, memerlukan masa pengauditan dalam operasi sebenar.

Kod sumber strategi
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Ichimoku Crypto Breakout", shorttitle="Ichimoku Breakout", overlay=true)

Ten = input(18, minval=1, title="Tenkan")
Kij = input(52, minval=1, title="Kijun")
LeadSpan = input(104, minval=1, title="Senkou B")
Displace = input(52, minval=1, title="Senkou A")
SpanOffset = input(52, minval=1, title="Span Offset")

sts = input(true, title="Show Tenkan")
sks = input(true, title="Show Kijun")
ssa = input(true, title="Show Span A")
ssb = input(true, title="Show Span B")

source = close

//Script for Ichimoku Indicator
donchian(len) => avg(lowest(len), highest(len))
TS = donchian(Ten)
KS = donchian(Kij)
SpanA = avg(TS, KS)
SpanB = donchian(LeadSpan)

CloudTop = max(TS, KS)

Chikou = source[Displace]
SpanAA = avg(TS, KS)[SpanOffset]
SpanBB = donchian(LeadSpan)[SpanOffset]

//Kumo Breakout (Long)
SpanA_Top = SpanAA >= SpanBB ? 1 : 0
SpanB_Top = SpanBB >= SpanAA ? 1 : 0

SpanA_Top2 = SpanA >= SpanB ? 1 : 0
SpanB_Top2 = SpanB >= SpanA ? 1 : 0

SpanA1 = SpanA_Top2 ? SpanA : na
SpanA2 = SpanA_Top2 ? SpanB : na

SpanB1 = SpanB_Top2 ? SpanA : na
SpanB2 = SpanB_Top2 ? SpanB : na

//plot for Tenkan and Kijun (Current Timeframe)
p1= plot(sts and TS ? TS : na, title="Tenkan", linewidth = 2, color = gray)
p2 = plot(sks and KS ? KS : na, title="Kijun", linewidth = 2, color = black)
p5 = plot(close, title="Chikou", linewidth = 2, offset=-Displace, color = orange)

//Plot for Kumo Cloud (Dynamic Color)
p3 = plot(ssa and SpanA ? SpanA : na, title="SpanA", linewidth=2, offset=Displace, color=green)
p4 = plot(ssb and SpanB ? SpanB : na, title="SpanB", linewidth=2, offset=Displace, color=red)

p8 = plot(ssa and SpanA1 ? SpanA1 : na, title="Span A1 above", style=linebr, linewidth=1, offset=Displace, color=green)
p9 = plot(ssa and SpanA2 ? SpanA2 : na, title="Span A2 above", style=linebr, linewidth=1, offset=Displace, color=green)
p10 = plot(ssb and SpanB1 ? SpanB1 : na, title="Span B1 above", style=linebr, linewidth=1, offset=Displace, color=red)
p11 = plot(ssb and SpanB2 ? SpanB2 : na, title="Span B2 above", style=linebr, linewidth=1, offset=Displace, color=red)

fill(p8, p9, color = lime, transp=70, title="Kumo Cloud Up")
fill (p10, p11, color=red, transp=70, title="Kumo Cloud Down")

LongSpan = (SpanA_Top and source[1] < SpanAA[1] and source > SpanAA) or (SpanB_Top and source[1] < SpanBB[1] and source > SpanBB) ? 1 : 0
cupSpan = LongSpan  == 1 ? LongSpan : 0

//Kumo Breakout (Long)
//plotarrow(cupSpan, title="Kumo Breakout Long", colorup=green, maxheight=50)

//Kumo Breakout (Long) Alerts
Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))
//Long_Breakout = ((SpanA_Top ==1 and crossover(KS, SpanAA)) or (SpanB_Top ==1 and crossover(KS, SpanBB))) and TS >= KS
//alertcondition(Long_Breakout, title="Kumo Breakout Long", message="Kumo Long")

//Kumo Breakout (Short)
ShortSpan = (SpanB_Top and source[1] > SpanAA[1] and source < SpanAA) or (SpanA_Top and source[1] > SpanBB[1] and source < SpanBB) ? 1 : 0
cdnSpan = ShortSpan == 1 ? ShortSpan : 0

//Kumo Breakout (Short)
//plotarrow(cdnSpan*-1, title="Kumo Breakout Short", colordown=red, maxheight=50)

//Kumo Breakout (Short) Alerts
Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))
//alertcondition(Short_Breakout, title="Kumo Breakout Short", message="Kumo Short")

//Kumo Twist
Kumo_Twist_Long = SpanA[1] < SpanB[1] and SpanA > SpanB ? 1 : 0
Kumo_Twist_Short = SpanA[1] > SpanB[1] and SpanA < SpanB ? 1 : 0

cupD = Kumo_Twist_Long == 1 ? Kumo_Twist_Long : 0
cdnD = Kumo_Twist_Short == 1 ? Kumo_Twist_Short : 0

//Kumo Twist (Long/Short)
//plotarrow(cupD, title="Kumo Twist Long", colorup=green, maxheight=50)
//plotarrow(cdnD*-1, title="Kumo Twist Short", colordown=red, maxheight=50)

//Kumo Twist (Long/Short) Alerts
KumoTwistLong_Cross = crossover(SpanA, SpanB)
//alertcondition(KumoTwistLong_Cross, title="Kumo Twist Long", message="Kumo Twist Long")
KumoTwistShort_Cross = crossunder(SpanA, SpanB)
//alertcondition(KumoTwistShort_Cross, title="Kumo Twist Short", message="Kumo Twist Short")

//Kumo Twist (Long/Short) - Bar Color
BarColor = Kumo_Twist_Long ? green : Kumo_Twist_Short ? red : na
barcolor(BarColor)

//Chikou above/below Price
Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

//Kumo Twist (Long/Short) - Plot Character on location of Chikou to Price & Price to Kumo
//plotchar(Kumo_Twist_Long and Chikou_Above, title="Kumo Twist Long and Chikou above Price", char="A", location=location.abovebar, color=green)
//plotchar(Kumo_Twist_Long and Chikou_Below, title="Kumo Twist Long and Chikou below Price", char="B", location=location.abovebar, color=red)
//plotchar(Kumo_Twist_Short and Chikou_Above, title="Kumo Twist Short and Chikou above Price", char="A", location=location.belowbar, color=green)
//plotchar(Kumo_Twist_Short and Chikou_Below, title="Kumo Twist Short and Chikou below Price", char="B", location=location.belowbar, color=red)

//Base and Conversion Line Cross
//long = cross(TS, KS) and TS>KS

long = (cross(TS, SpanA) or cross(TS, SpanB)) and TS>SpanA and TS>SpanB and TS>=KS
short = cross(TS, KS) and KS >= TS

strategy.entry("long", strategy.long, when=Long_Breakout)
strategy.entry("short", strategy.short, when=Short_Breakout)
//strategy.exit("bracket", when=short)