최고 최저 센터 검토 전략


생성 날짜: 2023-12-28 15:42:10 마지막으로 수정됨: 2023-12-28 15:42:10
복사: 0 클릭수: 648
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

최고 최저 센터 검토 전략

개요

최고 최저 중심 회전 전략은 트렌드 추적 전략이다. 그것의 주요 아이디어는 지난 일정 기간 동안의 최고 가격과 최저 가격의 중간 가격을 기준 가격으로 계산하고, 그 기준 가격에 따라 변동률과 결합하여 건설 포지션 및 포지션 영역을 계산한다. 가격이 건설 포지션 영역에 들어갔을 때, 더 많이하고, 가격이 평소 포지션 영역에 들어갔을 때, 평소 포지션한다.

전략 원칙

이 전략은 다음과 같은 몇 가지 단계를 통해 이루어집니다.

  1. 과거 lookback_length 기간의 최고 가격 h와 최저 가격 l을 계산하고 EMA를 평형화합니다.
  2. 가장 높은 가격과 가장 낮은 가격의 중간값을 기준 가격으로 계산합니다.
  3. ATR 및 ATR 복수자에 의해 계산된 변동률vola
  4. 센터와 볼라에 따라 건설 저장 구역 upper과 평화 저장 구역 lower을 계산
  5. 가격이 상향할 때, 더 많이 하고, 가격이 하향할 때, 더 낮게 한다.

이 방법을 통해, 가격이 트렌드 상태에 진입했을 때 트렌드를 실시간으로 추적할 수 있으며, 또한 변동률을 통해 위험을 제어할 수 있다.

우위 분석

이 전략은 다음과 같은 장점이 있습니다.

  1. 트렌드를 효과적으로 추적하고 가격 변화를 실시간으로 포착할 수 있습니다.
  2. 최대 최저값의 중간값을 기준값으로 사용하여 가짜 돌파의 가능성을 줄일 수 있습니다.
  3. 변동률은 자동으로 조정되어 위험을 조절할 수 있습니다.
  4. 짧은 기간을 보유하여 높은 주파수 거래 기회를 얻을 수 있습니다.
  5. 단순하고, 이해하기 쉽고, 최적화할 수 있도록

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 위기 상황에서 더 많은 무관한 거래가 발생할 수 있습니다.
  2. ATR 크기 및 배수의 설정은 전략 성능에 영향을 미치며, 신중한 테스트 및 최적화가 필요합니다.
  3. 중간값을 뚫은 후 회전이 발생할 수 있으며 이로 인해 스톱 손실이 발생할 수 있습니다.
  4. 트렌드가 너무 빨리 변하면 더 큰 손실이 발생할 수 있습니다.

이러한 위험을 통제하기 위해, 다음과 같은 몇 가지 측면에서 최적화할 수 있습니다.

  1. ATR 파라미터를 조정하고, 변동률을 낮추고, 흔들림 필터링
  2. 필터링 조건을 추가하여 무용지물 거래를 피하십시오.
  3. 이윤을 고정하기 위해 이동한 손실을 사용한다.
  4. 트렌드 지표와 함께 실제 트렌드의 시작과 끝을 판단하는 것

최적화 방향

이 전략에는 더 많은 최적화 가능성이 있습니다:

  1. 다른 시장과 다른 주기의 매개 변수 효과를 테스트할 수 있습니다.
  2. 기계 학습 알고리즘과 결합 가능한 자동 최적화 파라미트
  3. 트렌드의 시작과 끝을 알 수 있는 더 많은 지표가 있습니다.
  4. 동적으로 매장 비율을 조정할 수 있습니다.
  5. 감정 지표와 함께 극단적인 감정의 영향을 피할 수 있습니다.

이러한 최적화를 통해 전략의 안정성과 수익성을 더욱 높일 수 있을 것으로 기대된다.

요약하다

최고 최저 중심 회전 전략은 간단한 실용적인 트렌드 추적 전략이다. 가격 변화를 적시에 포착하고 트렌드를 추적하면서도 변동률을 통해 위험을 제어할 수 있다. 이 전략은 구현하기 쉽고, 수량 거래 초보자 학습과 연습에 적합하다. 매개 변수 최적화 및 규칙 최적화를 통해 전략의 효과를 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Highest/Lowest Center Lookback Strategy", overlay=true)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(1.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = price > upper ? true : (price < lower ? false : na)

bull_cross = crossover(price, upper)
bear_cross = crossunder(price, lower)

strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross)

plot(h, title="High", color=color.red, transp=75, linewidth=2)
plot(l, title="Low", color=color.green, transp=75, linewidth=2)

pc = plot(center, title="Center", color=color.black, transp=25, linewidth=2)
pu = plot(upper, title="Upper", color=color.green, transp=75, linewidth=2)
pl = plot(lower, title="Lower", color=color.red, transp=75, linewidth=2)

fill(pu, pc, color=color.green, transp=85)
fill(pl, pc, color=color.red, transp=85)

bgcolor(trend == true ? color.green : (trend == false ? color.red : color.gray), transp=85)