이치모쿠 킨코 효 전략


생성 날짜: 2023-10-13 16:48:22 마지막으로 수정됨: 2023-10-13 16:48:22
복사: 0 클릭수: 858
avatar of ChaoZhang ChaoZhang
1
집중하다
1702
수행원

개요

한눈 균형 전략은 평평선 (均線) 의 개념을 사용하며, 한눈 평균선과 가격의 관계를 사용하여 트렌드 방향을 판단하며, 트렌드 추적 전략에 속한다. 가격 상단에서 평평선을 통과할 때 더 많이 하고, 하단에서 공백을 만들고, 트렌드 운행을 따른다.

원해해석

이 전략의 핵심은 ‘눈에 보이는 것’이라는 개념에 기반을 두고 있습니다.donchian()이 함수는 일정 주기 동안의 최고 가격과 최저 가격의 평균값을 평균선으로 계산한다. 그리고 가격이 이 평균선을 돌파했는지 판단하여 거래 신호를 생성한다.

이 전략은 먼저 계산합니다.Ten순환의 한눈의 평균선TS기준선으로 . 가격 상위 평균선을 통과할 때, 트렌드 현장에 들어간다고 여겨져, 다중 신호를 생성한다. 가격 하위 평균선을 통과할 때, 트렌드 반전이라고 여겨져, 하위 신호를 생성한다.

이 전략은 또한Kij주기의 평균선KS그리고TS선 결합, 필터링 조건을 형성, 잘못된 신호를 피하십시오.TS온라인에서KS이 신호는 () 로 연결될 때만 발사된다.

이 코드에는 구름 지도가 그려져 있고, 구름 지도의 위치 관계를 판단하고, 트렌드 방향을 판단하는 데 도움을 줍니다.Chikou선, 가격과의 관계를 판단하는 보조 조건으로.

우위 분석

  • 평균선을 이용해서 추세를 판단하는 것, 원칙은 간단하고 이해하기 쉽습니다.
  • 클라우드 지도와 결합하여 판단력을 높이고 정확도를 높여줍니다.
  • 증가Chikou선은 추가 필터링을 위해 보조 조건으로 사용된다.
  • 다양한 변수들의 일직선 조합을 사용하여 유연하게 조정할 수 있다.

위험 분석

  • 평균선 전략은 매개 변수에 민감하며, 다른 주기 매개 변수의 효과는 크게 다르다
  • 순전히 평균을 따라가며, 추세와 범위를 판단할 수 없으며, 손실 위험이 있습니다.
  • 회수주기를 처리할 수 없고, 잘못된 신호를 발산할 수 있다.
  • 클라우드 그래프 보조 판단이 불안정하여 오해가 발생할 수 있습니다.

MACD 판단과 같은 트렌드 지표와 결합하여 신호를 생성하는 것을 고려할 수 있습니다. 일률적인 다중 조합 시스템을 사용하여 안정성을 향상시킬 수 있습니다.

최적화 방향

  • 동력 지표 포트폴리오를 늘리고, 추세가 강하다는 것을 판단하라
  • 다평선 시스템, 다평선 골드 크로스 같은 것을 고려하십시오.
  • 통로와 변동률 지표를 추가하여 평형 범위를 판단합니다.
  • 최적화 변수, 최적의 주기 조합
  • 단독 손실을 통제하기 위한 HAL 전략에 참여하세요.

요약하다

일목 균형 전략은 전체적으로 비교적 간단하고 직설적이며, 초보자 입문자에게 적합하며, 평평선을 통해 트렌드를 이해한다. 동시에 다중 지표 조합을 수행 할 수 있으며, 시스템 효과를 풍부하게 한다. 그러나 이 전략의 실장 효과는 검증되지 않았으며, 실장 거래에 사용할 수 있도록 지속적인 최적화 테스트가 필요합니다.

전략 소스 코드
/*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)