모멘텀 반전 전략


생성 날짜: 2023-12-12 17:25:08 마지막으로 수정됨: 2023-12-12 17:25:08
복사: 1 클릭수: 639
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

모멘텀 반전 전략

개요

이 전략은 가격의 동력 지표를 계산하여 가격 이동 추세가 반전되는지 판단하여 가격 반전의 기회를 잡습니다. 가격 상승 추세가 느려지거나 하락 추세가 느려지면 가격 동력이 반전되는 것을 나타냅니다. 이 전략은 상장 또는 상장합니다.

전략 원칙

이 전략은 주로 동력 지표의 계산에 기초한다. 동력 지표는 가격 변화의 속도와 강도를 반영한다. 전략은 두 가지 동력 지표인 MOM과 MOM1을 계산한다.

MOM 계산 공식:

MOM = 당일 종료 가격 - N일 전 종료 가격

MOM1 계산 공식:

MOM1 = MOM 오늘 - MOM 어제

MOM과 MOM1의 값에 따라 가격이 반전되는지 판단한다. MOM>0과 MOM1 <0이면 가격 상승 추세가 느려지고 반전 신호가 발생하면 더 많이 한다. MOM>0과 MOM1>0이면 가격 하락 추세가 느려지고 반전 신호가 발생하면 공백한다.

전략적 이점

  1. 가격 전환점을 포착하고 시장에 진입하는 방법
  2. “그렇게 되면, 우리는 더 이상 전쟁에서 벗어나지 못할 것입니다”.
  3. 자동으로 손실을 멈추고 위험을 줄입니다.

전략적 위험

  1. 가격 변동이 있을 때, 거래소에서 거래소 개시와 매각이 빈번하게 발생할 수 있습니다.
  2. 변수 설정이 잘못되어 가격 전환점을 정확하게 판단할 수 없습니다.
  3. 시장의 갑작스러운 현상이 잘못된 신호로 이어집니다.

주요 위험 완화 방법:

  1. 변수를 최적화하여 판단의 정확도를 높여줍니다.
  2. 다른 지표와 결합하여 필터링 신호
  3. 인적 개입, 시장 이상으로 인한 손실을 방지하는 방법

전략 최적화 방향

  1. 동력 지표 매개 변수를 최적화하여 회전 시기를 더 잘 잡을 수 있습니다.
  2. 거래량 증가와 같은 지표를 필터링하여 잘못된 신호를 방지합니다.
  3. 단편적 손실을 줄이기 위해 Stop Loss Strategies에 가입하십시오.

요약하다

이 전략은 가격 운동 지표를 계산하여 가격 이동 추세가 역전되는지 판단하여 자동으로 더 많은 공백을 구현한다. 회고가 보여준 바에 따르면, 이 전략은 전반적으로 원활하게 작동하며 가격 역전점을 효과적으로 포착한다. 최적화 파라미터 설정, 신호 필터링을 추가하는 등의 방법을 통해 전략의 안정성과 수익률을 더욱 향상시킬 수 있다.

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

//@version=4
strategy("Momentum - Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_type = strategy.commission.percent, commission_value = 0.2 )

i_len           =       input(defval = 12,      title = "Length",       minval = 1)
i_src           =       input(defval = close,   title = "Source")
i_percent       =       input(defval = true,    title = "Percent?")
i_mom           =       input(defval = "MOM2",  title = "MOM Choice",   options = ["MOM1", "MOM2"])

momentum(seria, length, percent) =>
	_mom        =       percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length]
	_mom

mom0        =       momentum(i_src, i_len, i_percent)
mom1        =       momentum(mom0, 1, i_percent)
mom2        =       momentum(i_src, 1, i_percent)

momX        =       mom1

if i_mom == "MOM2"
    momX    :=     mom2

if (mom0 > 0 and momX > 0)
    strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE")
else
	strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0)
	strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE")
else
	strategy.cancel("MomSE")

plot(mom0, color = #0000FF, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")