이치모쿠 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-12-19 15:40:53
태그:

img

전반적인 설명

이치모쿠 이동 평균 크로스오버 전략은 일련의 이동 평균을 계산하고 가격 교차를 감지함으로써 긴 신호와 짧은 신호를 식별합니다. 이 전략은 여러 기술적 지표를 결합하고 중장기 거래에 대해 견고하고 신뢰할 수있는 거래를 제공합니다.

전략 논리

이치모쿠 전략은 전환선, 기본선, 선두 스펜 1, 선두 스펜 2, 뒤떨어진 스펜 등 5개의 이동 평균선으로 구성된 특화된 시스템을 활용한다. 구체적으로, 전환선은 최근의 가격 동력을 묘사하고, 기본선은 중장기 트렌드를 나타내고, 선두 라인은 미래 움직임을 예측하기 위해 전환과 기반을 결합하고, 뒤떨어진 스펜은 참조를 위해 과거의 가격을 표시한다. 거래 신호는 가격이 기본선을 통과할 때 생성된다. 전략은 또한 몸 필터와 촛불 색상을 통합하여 잘못된 브레이크를 피한다.

장점

이치모쿠 전략은 다양한 기술 지표의 강점을 하나의 시스템으로 통합합니다. 이동 평균, 가격 채널, 볼륨 확인 등의 개념을 통합하여 체계적인 방법론을 형성합니다. 이것은 거래 신호의 정확성과 방향성을 보장합니다. 단일 지표 전략과 비교하여 잘못된 신호를 크게 줄이고 수익 인수를 증가시킵니다. 이치모쿠 전략은 다양한 기술 지표의 강점을 하나의 시스템으로 결합합니다. 이치모쿠 전략은 다양한 기술 지표의 강점을 통합합니다. 이치모쿠 전략은 다양한 기술 지표의 강점을 하나의 시스템으로 통합합니다. 이치모쿠 전략은 이동 평균, 가격 채널, 볼륨 확인 등을 통합하여 체계적인 방법론을 형성합니다. 이것은 거래 신호의 정확성과 방향성을 보장합니다.

위험성

트렌드를 따르는 시스템으로서 이치모쿠 전략은 상대적으로 긴 거래 간격을 가지고 있습니다. 이것은 단기 가격 변동이 포착 될 수 없다는 것을 의미합니다. 또한, 이동 평균은 가격이 격렬하게 변동 할 때 실패합니다. 그러한 상황은 잘못된 신호와 손실 트레이드를 초래할 수 있습니다. 위험을 제어하기 위해 스톱을 사용하는 것이 좋습니다.

더 나은 기회

이치모쿠 전략은 다음과 같은 영역에서 개선 될 수 있습니다. 1) 다른 기간과 제품에 대한 평균 매개 변수를 조정하는 것; 2) 가격-용량 관계를 확인하기 위해 볼륨 지표를 통합하는 것; 3) 신호 결정을 정제하기 위해 기계 학습 모델을 도입하는 것; 4) 잘못된 거래 확률을 낮추기 위해 더 많은 필터를 추가하는 것.

결론

안정적이고 신뢰할 수있는 이치모쿠 이동 평균 크로스오버 전략은 다른 알고리즘과 결합한 핵심 전략으로 적합합니다. 파라미터 조정 및 멀티 지표 최적화로 인한 명확한 트렌드 안내 및 유연성은 양자 거래자에 의해 심층 연구 및 장기 적용에 가치가 있습니다.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Ichimoku Strategy v1.0", shorttitle = "Ichimoku str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
conversionPeriods = input(9, minval = 1, title = "Conversion Periods")
basePeriods = input(26, minval = 1, title = "Base Periods")
laggingSpan2Periods = input(52, minval = 1, title = "Lagging Span")
usebf = input(true, defval = true, title = "Use body filter")
usecf = input(true, defval = true, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Ichimoku
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

//Lines
plot(conversionLine, color=red, title="Conversion Line")
plot(baseLine, color=blue, title="Base Line")
plot(close, offset = -basePeriods, color=green, title="Lagging Span")
p1 = plot(leadLine1, offset = basePeriods, color=green, title="Lead 1")
p2 = plot(leadLine2, offset = basePeriods, color=red, title="Lead 2")
fill(p1, p2)

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebf == false

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//Signals
up = low > baseLine and rb and body
dn = high < baseLine and gb and body

//Trading
if up
    //if strategy.position_size < 0
    //    strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    //if strategy.position_size > 0
    //    strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

더 많은