이치모쿠 클라우드 오시레이터 거래 전략

저자:차오장, 날짜: 2024-02-20 11:12:44
태그:

img

전반적인 설명

이치는 이치모쿠 클라우드 지표와 볼링거 밴드 지표를 결합한 양적 거래 전략이다. 이 전략은 이치모쿠 클라우드의 전환선, 기본선, 선도 스펜 A, 선도 스펜 B를 활용하여 거래 신호를 생성하고 볼링거 밴드를 사용하여 시장의 변동성을 판단하고 적절한 입시 시기를 결정합니다.

전략 논리

이치모쿠 구름 표시기

이치모쿠 클라우드 지표는 변환선, 기본선, 선도 스펜 A, 선도 스펜 B 등 4개의 라인으로 구성되어 있다. 변환선은 단기 기간 (9일) 의 평균 종료 가격이다. 기본선은 26일 기간의 평균 종료 가격이다. 선도 스펜 A는 전환선과 기본선 사이의 평균이며, 가격 액션을 주도한다. 선도 스펜 B는 가격보다 더 긴 52일 기간의 평균 종료 가격이며, 가격에 뒤떨어진다. 단기 이동 평균이 장기 평균을 넘거나 밑을 넘을 때 구매 및 판매 신호가 생성된다.

볼링거 밴드

볼링거 대역은 중간선, 상위 대역, 하위 대역의 세 개의 선을 포함한다. 중간선은 n일 기간 동안의 폐쇄 가격의 간단한 이동 평균이다. 상위 대역은 중간선 더하기 k배 (여기 2배로 설정) 표준편차이다. 하위 대역은 중간선 빼기 k배 표준편차이다. 가격은 정상적인 변동 범위 내에 있는지 판단하고 시장의 변동 수준을 결정한다.

이 전략은 거래 신호를 구성하기 위해 선도 스펜 B의 금 십자가와 죽음의 십자가를 사용합니다. 또한 가격 변동성을 결정하기 위해 볼링거 밴드를 통합하고 변동성이 낮을 때 시장에 진입하기로 결정합니다.

이점 분석

이 전략은 이치모쿠 클라우드 지표와 볼링거 밴드를 결합하여 시장 추세와 변동성을 포괄적으로 결정하여 거래 신호를 찾기 위해 시장 변화 정보를 효과적으로 캡처 할 수 있습니다. 이치모쿠 클라우드는 시장의 주요 트렌드 방향을 결정할 수 있으며 볼링거 밴드는 특정 입시 시기를 파악 할 수 있습니다.

이 전략의 매개 변수는 다른 제품과 시장 환경에 최적화 할 수 있으며 매우 적응력이 있습니다. 이치모쿠 클라우드의 다른 매개 변수 조합을 사용하여 주기에 걸쳐 거래 기회를 식별 할 수 있습니다.

위험 분석

이 전략은 주로 시장 변동성을 결정하기 위해 볼링거 밴드에 의존합니다. 블랙 스완 이벤트로 인해 극심한 변동성이 발생하면 밴드가 실패 할 수 있습니다. 그 경우 이치모쿠 클라우드를 기반으로 구성된 거래 신호는 잘못된 신호를 생성 할 수 있습니다.

또한 이치모쿠 클라우드 라인 자체는 급격한 시장 변동에도 민감합니다. 전환 및 기본 라인은 가격이 격렬하게 변동할 때 잘못된 신호를 제공할 수 있습니다. 이러한 상황에서 위치 출출 또는 거래를 중단하는 것이 아마도 가장 좋은 선택입니다.

최적화 방향

다른 지표는 시장에 진입 시기를 결정하기 위해 결합하여 고려 될 수 있습니다. 예를 들어 KDJ는 시장이 과소매 / 과소매인지 확인하고 MACD는 장기 / 단기 이동 평균 관계를 확인합니다. 이것은 극심한 변동성 중에 시장에 진입하는 것을 피할 수 있습니다.

또한 기계 학습은 이치모쿠 클라우드의 매개 변수를 최적화 할 수 있습니다. 다른 매개 변수는 주기와 제품에 걸쳐 중요한 영향을 미칩니다. 최적의 매개 변수 조합을 찾는 것은 전략의 수익성을 크게 향상시킬 수 있습니다.

결론

이 전략은 이치모쿠 클라우드 지표와 볼링거 밴드를 결합하여 시장 추세와 변동성을 모두 고려합니다. 적응 가능한 양적 거래 전략입니다. 이 전략은 매개 변수를 조정하고 입시 규칙을 최적화하여 라이브 거래에서 좋은 이익을 얻을 수 있습니다.


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

//@version=5
strategy("一目均衡表シグナル + ボリンジャーバンド", overlay=true)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2.0, title="Bollinger Bands Multiplier")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// ボリンジャーバンドの計算
basis = ta.sma(close, bbLength)
bbUpper = basis + bbMultiplier * ta.stdev(close, bbLength)
bbLower = basis - bbMultiplier * ta.stdev(close, bbLength)

// 1σ、2σ、3σのライン
bbUpper1 = basis + ta.stdev(close, bbLength)
bbLower1 = basis - ta.stdev(close, bbLength)

bbUpper2 = basis + 2 * ta.stdev(close, bbLength)
bbLower2 = basis - 2 * ta.stdev(close, bbLength)

bbUpper3 = basis + 3 * ta.stdev(close, bbLength)
bbLower3 = basis - 3 * ta.stdev(close, bbLength)

// 遅行スパンがローソクに交差した際のBuyとSellシグナル
buySignalLeadLine = ta.crossover(close, leadLine2)
sellSignalLeadLine = ta.crossunder(close, leadLine2)

// Strategy Entry and Exit Conditions for Lead Line
strategy.entry("BuyLeadLine", strategy.long, when = buySignalLeadLine)
strategy.close("BuyLeadLine", when = sellSignalLeadLine)

strategy.entry("SellLeadLine", strategy.short, when = sellSignalLeadLine)
strategy.close("SellLeadLine", when = buySignalLeadLine)

// Plotting Ichimoku Cloud
plot(conversionLine, color=color.new(color.blue, 0), title="Conversion Line")
plot(baseLine, color=color.new(color.red, 0), title="Base Line")
plot(close, offset = -displacement + 1, color=color.new(color.green, 0), title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=color.new(color.green, 0),
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=color.new(#cdf80d, 0),
     title="Leading Span B")

fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))



// 2σ、3σのラインをプロット

plot(bbUpper2, color=color.rgb(100, 96, 100), title="BB Upper 2σ")
plot(bbLower2, color=color.rgb(100, 96, 100), title="BB Lower 2σ")

plot(bbUpper3, color=color.rgb(67, 61, 68), title="BB Upper 3σ")
plot(bbLower3, color=color.rgb(67, 61, 68), title="BB Lower 3σ")

// Plotting Entry and Exit Signals
plotshape(series=buySignalLeadLine, title="Buy Signal (Lead Line)", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignalLeadLine, title="Sell Signal (Lead Line)", color=color.rgb(255, 115, 0), style=shape.triangledown, location=location.abovebar, size=size.small)


더 많은