코드 트레이딩 일일 평균 가격 편차 전략


생성 날짜: 2023-12-15 15:44:18 마지막으로 수정됨: 2023-12-15 15:44:18
복사: 0 클릭수: 611
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

코드 트레이딩 일일 평균 가격 편차 전략

개요

이 전략은 그래프 지표 Ichimoku Kinko Hyo 에 기반하여 거래 신호를 생성한다. 한눈에 균형 . 이치모쿠 Kinko Hyo는 이동 평균과 파급 지표의 장점을 결합하여 트렌드 방향을 식별하고 저항 지점을 지원하는 동시에 통합 지표로 간주됩니다.

이 전략은 Ichimoku Kinko Hyo의 구성선을 사용하여 트렌드 방향과 강점을 판단한다. 가격이 클라우드 그래프를 상향 하향으로 돌파 할 때 거래 신호가 발생한다. 동시에, 이 전략은 Ichimoku 특유의 거래 기회 인 인접한 인접한 인접한 진입 기회를 이용한다.

전략 원칙

이 전략은 Ichimoku Kinko Hyo의 다섯 가지 구성 요소를 사용합니다.

  1. 텐칸 라인 (Tenkan Line) 은 9일간의 평균으로 가장 높은 가격과 가장 낮은 가격을 나타냅니다.
  2. 키 선 (基線): 최고 가격과 최저 가격의 26일 평균
  3. 센코우 스팬 A (이전 1): 텐칸 선과 키 선의 평균
  4. Senkou Span B ((전선 2): 최고 가격과 최저 가격의 52일 평균
  5. 치코우 선 (Chikou line) 은 26일 지연 평균으로 상쇄된 가격이다.

이치모쿠의 구름 지도는 센쿠 스판 A와 센쿠 스판 B로 구성되어 있으며, 현재의 경향 영역을 대체로 나타냅니다.

이 전략의 거래 신호는 다음과 같은 상황으로부터 나옵니다.

  1. 가격 하향 상승: 더 많은 신호
  2. 위쪽에서 하향 궤도를 돌파한 가격: 하위 신호
  3. 클라우드 그래프 아래에서 클라우드 그래프로 들어가는 가격: 가장자리에 가장자리를 가장자리로 가장자리로 가장자리를 가장자리로 가장자리에 가장자리로
  4. 클라우드 그래프 위쪽에서 가격으로 클라우드 그래프로 들어갑니다.

또한, 전략은 텐칸 선과 키 선의 골드 포크 사다리들을 정지 및 손실의 시간으로 판단한다.

전략적 이점

이 전략의 가장 큰 장점은 Ichimoku Kinko Hyo 지표를 사용하여 트렌드 방향을 판단하고 저항을 지원하는 능력이 강하다는 것입니다.

  1. 클라우드 그래프로 주요 트렌드 방향을 판단하고 역동적인 조작을 피하십시오.
  2. 컴포넌트 라인을 사용하여 지원 저항 지점을 식별하여 돌파 할 수있는 거래 기회를 찾습니다.
  3. 변변의 변의 입기 기회를 늘리고, 수익의 공간을 넓혀라.

또한, 이 전략은 금포크 중지 및 사포크 중지 모듈을 추가하여 수익의 일부를 잠금하고 위험을 제어 할 수 있습니다.

위험과 해결

이 전략의 주요 위험은 이치모쿠 컴포넌트 라인 알고리즘으로 인한 잠재적인 폭파이다. 이것은 가짜 돌파구를 초래할 위험이 있다.

해결 방법은 알고리즘 파라미터를 적절하게 조정하여 구성 요소 라인 사이의 거리를 줄이거나, 필터 조건을 추가하여 진동 영역에 들어가는 것을 피하는 것입니다.

전략 최적화

이 전략에는 몇 가지 개선방안이 있습니다.

  1. 이치모쿠 성분 라인의 매개 변수를 최적화하고, 평균 라인 주기를 조정하여 더 많은 품종과 주기를 적용한다.

  2. “이런 일이 벌어진다면, 우리는 더 많은 정보를 얻을 수 있을 것이다”.

  3. MACD, RSI 등과 같은 다른 지표 필터링과 결합하여 트렌드 및 오버 바이 오버 셀 영역을 식별합니다.

  4. 이동 상쇄, 축소 등의 방법으로 상쇄 상쇄 논리를 최적화한다.

요약하다

요약하자면 이 전략은 이치모쿠 킨코 히오의 클라우드 그래프와 컴포넌트 라인을 활용하여 트렌드 방향과 거래 기회를 판단한다. 전략의 장점은 트렌드 판단이 명확하고, 진입 시기가 정확하다는 것이다. 파라미터를 최적화하고 필터 조건을 추가함으로써 거짓 신호 비율을 더 낮추어 더 나은 전략 성능을 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud", shorttitle="Ichimoku", overlay=true)

previous_close = close[1]

conversionPeriods = input.int(20, minval=1, title="Conversion Line Periods"),
basePeriods = input.int(60, minval=1, title="Base Line Periods")
laggingSpan2Periods = input.int(120, minval=1, title="Lagging Span 2 Periods"),
displacement = input.int(30, minval=1, title="Displacement")

long_entry = input.bool(true, title="Long Entry")
short_entry = input.bool(true, title="Short Entry")
e2e_entry = input.bool(true, title="E2E Entry")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))

tenkan = donchian(conversionPeriods)
kijun = donchian(basePeriods)
spanA = math.avg(tenkan, kijun)
spanB = donchian(laggingSpan2Periods)

plot(tenkan, color=#0496ff, title="Conversion Line")
plot(kijun, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(spanA, offset = displacement, color=#459915, title="Lead 1")
p2 = plot(spanB, offset = displacement, color=#991515, title="Lead 2")
fill(p1, p2, color = spanA > spanB ? #459915 : #991515)

ss_high = math.max(spanA[displacement - 1], spanB[displacement - 1])
ss_low = math.min(spanA[displacement - 1], spanB[displacement - 1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
kumo_twist_bull = ta.mom(close, displacement) > 0
kumo_twist_bear = ta.mom(close, displacement) < 0

price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

price_enters_kumo_top = previous_close > ss_high[1] and close < ss_high
price_enters_kumo_bottom = previous_close < ss_low[1] and close > ss_low

bullish = tk_cross_bull and kumo_twist_bull and price_above_kumo
bearish = tk_cross_bear and kumo_twist_bear and price_below_kumo

bullishe2e = price_enters_kumo_bottom // and tk_cross_bull
bearishe2e = price_enters_kumo_top // and tk_cross_bear

price_touches_kumo_top = ta.cross(close, ss_high)
price_touches_kumo_bottom = ta.cross(close, ss_low)

strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.close("Long", when=tk_cross_bear)
strategy.close("Long", when=price_enters_kumo_top)

strategy.entry("Long e2e", strategy.long, when=bullishe2e and e2e_entry)
strategy.close("Long e2e", when=price_touches_kumo_top)
strategy.close("Long e2e", when=price_below_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)

strategy.entry("Short", strategy.short, when=bearish and short_entry)
strategy.close("Short", when=tk_cross_bull)
strategy.close("Short", when=price_enters_kumo_bottom)

strategy.entry("Short e2e", strategy.short, when=bearishe2e and e2e_entry)
strategy.close("Short e2e", when=price_touches_kumo_bottom)
strategy.close("Short e2e", when=price_above_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)