이치모쿠 균형선 전략

저자:차오장, 날짜: 2023-12-26 16:13:42
태그:

img

전반적인 설명

이치모쿠 밸런스 라인 전략은 낮은 위험 트렌드 거래를 위해 이치모쿠 킨코 히오 지표와 결합한 이동 평균을 계산하여 트렌드 방향을 결정하는 트렌드 다음 전략입니다.

전략 원칙

이 전략은 주로 트렌드 방향을 결정하기 위해 이치모쿠 킨코 히오 지표를 사용합니다. 이치모쿠 킨코 히오 (Ichimoku Kinko Hyo) 는 이치모쿠 클라우드 ( Ichimoku Cloud) 로도 알려져 있으며, 텐칸센 (변환선), 키준센 (Base Line), 센코 스판 A (리딩 스판 A), 센코 스판 B (리딩 스판 B) 으로 구성됩니다. 그것은 쿠모 클라우드 ( Kumo Cloud) 라고 불리는 앞과 뒷 사이의 균형 구역을 형성합니다. 가격이 클라우드 위에있을 때 상승 추세를 나타냅니다. 클라우드 아래의 위반은 하향 추세를 나타냅니다.

이 전략은 트렌드 방향을 결정하기 위해 가격 관계와 이동 평균을 결합합니다. 가격이 베이스 라인과 변환 라인을 넘을 때 구매 신호를 생성합니다. 가격이 클라우드 아래로 넘을 때 판매 신호가 생성됩니다. 이 조합은 잘못된 브레이크를 필터링하고 트렌드 방향을 잠금하는 데 도움이됩니다.

이점 분석

  • 이치모쿠 킨코 히오를 사용하여 트렌드를 결정하고 다양한 시장에서 잘못된 파장을 피합니다.
  • 기간 간 최적화를 위해 사용자 정의 가능한 이동 평균 매개 변수
  • 이동 평균과 결합하면 트렌드 방향을 효과적으로 고정시키는 데 도움이 됩니다.
  • 클라우드 대역은 낮은 위험 트렌드 거래를 허용합니다.

위험 분석

  • 불안정한 시장 조건에서 잘못된 신호를 생성하는 경향이 있습니다.
  • 부적절한 매개 변수 설정으로 인해 너무 빈번하거나 지연된 거래 신호가 발생할 수 있습니다.
  • 트렌드 방향 및 매개 변수 조정에 대한 수동 판단

최적화 방향

전략은 여러 가지 방법으로 최적화 될 수 있습니다.

  1. 더 많은 시간 프레임에 맞게 Ichimoku 매개 변수를 최적화
  2. 거래당 손실을 제한하기 위해 스톱 로스를 포함합니다.
  3. 부진을 피하기 위해 강한 경향과 약한 경향을 측정하는 지표를 추가하십시오.
  4. 극단적인 시장 조건에서 포지션을 열지 않도록 더 많은 입시 조건을 추가합니다.

결론

결론적으로, 이치모쿠 균형 라인 전략은 이치모쿠 클라우드를 사용하여 트렌드 방향을 결정하고, 트렌드를 효과적으로 잠금하고, 이동 평균과 가격 관계를 결합하여 거래 신호를 생성하여 낮은 위험 트렌드 거래를 허용합니다. 이 전략은 매개 변수 조정 및 최적화를 통해 다른 시장 환경에 적응 할 수 있으므로 투자자가 연구하고 활용하는 것이 가치가 있습니다.


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

더 많은