이치모쿠 킨코 효 오실레이터 트레이딩 전략


생성 날짜: 2024-02-20 11:12:44 마지막으로 수정됨: 2024-02-20 11:12:44
복사: 0 클릭수: 354
1
집중하다
1166
수행원

이치모쿠 킨코 효 오실레이터 트레이딩 전략

개요

이 전략은 일회성표 지표와 브린 라인 파동대 지표를 결합한 양적 거래 전략이다. 이 전략은 일회성표의 전환선, 기준선, 전향선과 후향선을 사용하여 거래 신호를 구성하고, 동시에 브린 라인 파동대 를 사용하여 시장의 변동성을 판단하여 적절한 시기에 진입한다.

전략 원칙

일회성 평형표 지표

1등 평형표 지표는 전환선, 기준선, 전향선, 후향선 4개의 곡선으로 구성된다. 이 가운데 전환선은 근 (9일) 의 종결 가격 평균값이고, 기준선은 보다 장기 (26일) 의 종결 가격 평균값이다. 전향선은 전환선과 기준선의 평균값이며, 선두성을 갖는다. 후향선은 보다 장기 (52일) 의 종결 가격 평균값이며, 후퇴성을 갖는다. 평균적인 단기선 상을 넘거나 혹은 아래로 긴 선을 넘을 때 모두 구매 및 판매 신호를 발생시킨다.

브린 와이브밴드

브린 선의 파동대는 중앙선, 상단선, 하단선 세 개의 선으로 구성된다. 중앙선은 n일 (여기서 20일로 설정) 의 종전 가격의 간단한 이동 평균이다. 상단선은 중앙선에 k배를 더한 (여기서 2배로 설정) 의 표준차이다. 하단선은 중앙선에서 k배의 표준차를 빼는 것이다. 그것은 가격이 변동 범위 안에 있는지 판단하고, 따라서 시장의 흔들림 정도를 판단한다.

이 전략은 주사선 후의 골드 포크와 데드 포크를 사용하여 구매 및 판매 신호를 형성한다. 또한 부린 와이브 밴드를 결합하여 가격 변동성을 판단하고, 변동성이 거의 없을 때 입시 신호를 판단한다.

우위 분석

이 전략은 1차 균형표 지표와 부린 밴드 지표를 결합하여 시장의 추세와 변동성을 종합적으로 판단하여 시장 변화 정보를 효과적으로 추출하여 매매 지점을 판단할 수 있습니다. 1차 균형표는 시장의 주요 추세 방향을 결정할 수 있으며, 부린 라인 밴드는 특정 진입 시점을 판단 할 수 있습니다.

이 전략의 매개 변수는 조정 가능하며, 다른 품종과 시장 환경에 따라 최적화 될 수 있으며, 적응력이 강하다. 1차 균형표는 다른 주기 내의 거래 기회를 식별할 수 있는 다른 매개 변수 조합을 사용합니다.

위험 분석

이 전략은 시장의 변동성을 판단할 때 주로 브린라인 파동대에 의존한다. 갑작스러운 사건이 큰 변동성을 일으킨다면 브린라인 파동대는 무효가 된다. 이때는 일목요연 균형표에 따라 구성된 거래 신호가 잘못된 신호를 생성할 수 있다.

또한, 일차 균형 시계선 자체는 갑작스러운 사건에 상대적으로 민감하며, 가격이 급격하게 변동할 때 전환선과 기준선도 잘못된 신호를 발생시킨다. 따라서 이 상황에서 출전하거나 거래를 일시 중지하는 것이 가장 좋은 선택일 수 있다.

최적화 방향

다른 지표와 결합하여 진입 시기를 판단할 수 있다. 예를 들어 KDJ 지표가 과매매 영역에 있는지 판단하거나 MACD가 장단 평균선 관계를 판단하는 등이 있다. 이것은 시장이 격렬한 변동시에도 여전히 진입하는 것을 피할 수 있다.

또한 기계 학습과 같은 방법을 통해 첫 번째 균형 표의 파라미터를 최적화 할 수 있습니다. 다른 파라미터는 다른 주기 및 다른 품종에 큰 영향을 미칩니다. 최적의 파라미터 조합을 찾는 것은 전략의 수익률을 크게 향상시킬 수 있습니다.

요약하다

이 전략은 1차 균형표 지표와 부린 띠 지표를 결합하여 시장 추세를 판단하면서 변동성을 동시에 고려하여 적응력이 강한 양적 거래 전략이다. 이 전략은 매개 변수 조정 및 입시 규칙을 최적화하여 개선할 수 있으며 실전에서 좋은 수익을 얻을 수 있다.

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