Strategi Ichimoku Kinko Hyo


Tanggal Pembuatan: 2023-10-13 16:48:22 Akhirnya memodifikasi: 2023-10-13 16:48:22
menyalin: 0 Jumlah klik: 764
1
fokus pada
1617
Pengikut

Ringkasan

Strategi kesetimbangan pertama menggunakan konsep garis rata-rata, menggunakan garis rata-rata pertama dan hubungan harga untuk menilai arah tren, termasuk strategi pelacakan tren. Ketika harga di atas melewati garis rata-rata, lakukan lebih banyak, ketika di bawah melewati kosong, ikuti tren berjalan.

Pengertian

Strategi ini didasarkan pada konsep garis pandang, dan penggunaan intidonchian()Fungsi menghitung rata-rata harga tertinggi dan terendah dalam periode tertentu, sebagai garis rata-rata. Kemudian menilai apakah harga menembus garis rata-rata, sehingga menghasilkan sinyal perdagangan.

Secara khusus, strategi pertama adalah menghitungTenGaris rata-rata siklusTS, sebagai garis referensi 。 Ketika harga di atas melewati garis rata-rata, dianggap memasuki situasi tren, menghasilkan sinyal melakukan lebih banyak; Ketika harga di bawah melewati garis rata-rata, dianggap bahwa tren berbalik, menghasilkan sinyal melakukan shorting 。

Selain itu, strategi juga menghitungKijGaris rata-rata siklusKS, danTSGaris gabungan, membentuk kondisi penyaringan, menghindari sinyal salah.TSPakai secara onlineKSJika ada sinyal, maka akan terjadi sinyal multipel.

Kode ini juga memetakan peta awan untuk menentukan hubungan posisi awan, membantu menentukan arah tren.ChikouGaris, menilai hubungannya dengan harga, sebagai kondisi tambahan.

Analisis Keunggulan

  • Menggunakan garis rata-rata untuk menilai tren, prinsipnya sederhana dan mudah dipahami
  • Menggabungkan Cloud Map untuk Meningkatkan Keakuratan dan Penghakiman
  • PeningkatanChikouKabel sebagai kondisi tambahan untuk memfilter sinyal lebih lanjut
  • Kombinasi linear dengan parameter yang berbeda, dapat disesuaikan secara fleksibel

Analisis risiko

  • Strategi garis rata-rata sensitif terhadap parameter, dengan efek yang berbeda pada parameter periode yang berbeda
  • Tidak dapat melihat tren dan kisaran, ada risiko kerugian
  • Tidak dapat menangani siklus perhitungan, mudah untuk mengirimkan sinyal yang salah
  • Cloud Map Assisted Judgment tidak stabil dan dapat menimbulkan kesalahan

Anda dapat mempertimbangkan untuk menggabungkan indikator tren seperti penilaian MACD dan kemudian menghasilkan sinyal; menggunakan sistem multi-kombinasi linier untuk meningkatkan stabilitas; atau menambahkan strategi pengendalian risiko stop loss.

Arah optimasi

  • Meningkatkan portofolio indikator momentum untuk menilai kekuatan tren
  • Pertimbangkan sistem multi-mean line, seperti multi-mean line golden cross
  • Meningkatkan saluran dan indikator volatilitas untuk menilai rentang konsolidasi
  • Parameter optimasi, mencari kombinasi siklus optimal
  • Menambahkan strategi stop loss untuk mengendalikan kerugian tunggal

Meringkaskan

Strategi keseimbangan pertama kali secara keseluruhan relatif sederhana dan langsung, cocok untuk pemula, memahami tren melalui kesetaraan garis; juga dapat melakukan kombinasi multi-indikator, menghasilkan efek sistem yang kaya. Namun, efek nyata dari strategi ini masih harus diverifikasi, masih perlu pengujian yang terus dioptimalkan, untuk dapat digunakan dalam perdagangan nyata. Kuncinya adalah untuk mengendalikan risiko, tidak dapat mengikuti kesetaraan garis secara membabi buta, dalam operasi real-time diperlukan waktu auditing.

Kode 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)