Ichimoku Strategy Barisan Keseimbangan

Penulis:ChaoZhang, Tarikh: 2023-12-26 16:13:42
Tag:

img

Ringkasan

Strategi Garis Imbangan Ichimoku adalah strategi trend berikut yang menentukan arah trend dengan mengira purata bergerak digabungkan dengan penunjuk Ichimoku Kinko Hyo untuk perdagangan trend berisiko rendah.

Prinsip Strategi

Strategi ini terutamanya menggunakan indikator Ichimoku Kinko Hyo untuk menentukan arah trend. Ichimoku Kinko Hyo, juga dikenali sebagai Ichimoku Cloud, terdiri daripada Tenkan-sen (Garis Penukaran), Kijun-sen (Garis Asas), Senkou Span A (Leading Span A), dan Senkou Span B (Leading Span B). Ia membentuk zon keseimbangan antara depan dan belakang yang dipanggil Kumo Cloud. Apabila harga berada di atas awan, ia menandakan trend menaik. Pelanggaran di bawah awan menandakan trend menurun.

Strategi ini menggabungkan hubungan harga dengan purata bergerak untuk menentukan arah trend. Ia menghasilkan isyarat beli apabila harga melintasi di atas Garis Asas dan Garis Penukaran. Isyarat jual dihasilkan apabila harga pecah di bawah awan. Gabungan ini membantu menapis pecah palsu dan mengunci arah trend.

Analisis Kelebihan

  • Menggunakan Ichimoku Kinko Hyo untuk menentukan trend dan mengelakkan pecah palsu di pasaran pelbagai
  • Parameter purata bergerak yang boleh disesuaikan untuk pengoptimuman sepanjang tempoh
  • Gabungan dengan purata bergerak membantu mengunci arah trend dengan berkesan
  • Band awan membolehkan perdagangan trend berisiko rendah

Analisis Risiko

  • Rendah untuk menghasilkan isyarat palsu dalam keadaan pasaran yang bergolak
  • Tetapan parameter yang tidak betul boleh menyebabkan isyarat perdagangan yang terlalu kerap atau tertunda
  • Penghakiman manual arah trend dan pelarasan parameter diperlukan

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dengan beberapa cara:

  1. Mengoptimumkan parameter Ichimoku untuk memenuhi lebih banyak jangka masa
  2. Menggabungkan stop loss untuk mengehadkan kerugian setiap dagangan
  3. Tambah penunjuk untuk mengukur trend yang kuat dan lemah untuk mengelakkan whipsaws
  4. Tambah lebih banyak syarat kemasukan untuk mengelakkan pembukaan kedudukan dalam keadaan pasaran yang melampau

Kesimpulan

Kesimpulannya, Strategi Garis Imbangan Ichimoku menggunakan Awan Ichimoku untuk menentukan arah trend, mengunci trend dengan berkesan, dan menghasilkan isyarat perdagangan dengan menggabungkan hubungan harga dengan purata bergerak, yang membolehkan perdagangan trend berisiko rendah.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit for the initial code to nathanhoffer - I simply added the ability to select a time period
//
strategy("Cloud Breakout", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Component Code Start ///////////////
testStartYear = input(2016, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

Ten = input(18, minval=1, title="Tenkan")
Kij = input(60, minval=1, title="Kijun")
LeadSpan = input(30, 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")
sc = input(true, title="Show Chikou")

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(sc and KS ? KS : na, title="Chikou", linewidth = 2, color = orange)
p5 = plot(sc and Displace ? close: na, 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

Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))

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

Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))

//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

Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

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

if testPeriod()
    strategy.entry("long", strategy.long, when=Long_Breakout)
    strategy.entry("short", strategy.short, when=Short_Breakout)

Lebih lanjut