리소스 로딩... 로딩...

추진력 역전 전략

저자:차오장, 날짜: 2023-12-12 17:25:08
태그:

img

전반적인 설명

이 전략은 가격 트렌드가 역전되었는지 여부를 결정하기 위해 가격의 동력 지표를 계산하여 가격 역전 기회를 포착합니다. 가격의 상승 추세 또는 하락 추세가 느려지면 가격 동력이 역전되었음을 나타냅니다. 이 시점에서 전략은 긴 또는 짧은 포지션을 열 것입니다.

전략 논리

이 전략은 주로 모멘텀 지표의 계산에 기반합니다. 모멘텀 지표는 가격 변화의 속도와 강도를 반영합니다. 두 개의 모멘텀 지표 MOM 및 MOM1이 전략에서 계산됩니다.

MOM 계산 공식:

MOM = 오늘 종료 가격 - N 일 전 종료 가격

MOM1 계산 공식:

엄마1 = 오늘 엄마 - 어제 엄마

MOM와 MOM1의 값에 따라 가격이 반전되었는지 판단하십시오. MOM > 0과 MOM1 < 0이면 가격 상승 추세가 느려지고 반전 신호가 길어지는 것으로 보입니다. MOM < 0과 MOM1 > 0이면 가격 하락 추세가 느려지고 반전 신호가 짧아지는 것으로 보입니다.

장점

  1. 가격 전환점을 파악하고 시장에 적시에 진출합니다.
  2. 작은 마감, 높은 것을 추구하고 낮은 것을 판매하는 것을 피하십시오
  3. 위험을 줄이기 위해 자동 스톱 손실을 구현하십시오.

위험성

  1. 가격 변동으로 인해 포지션이 자주 열리고 닫힐 수 있습니다.
  2. 매개 변수가 잘못 설정되면 가격 반전 지점을 정확하게 결정할 수 없습니다.
  3. 시장 사건은 잘못된 신호를 일으킬 수 있습니다.

주요 위험 감축 방법:

  1. 판단 정확도를 향상시키기 위해 매개 변수를 최적화
  2. 신호를 필터링하기 위해 다른 지표와 결합
  3. 비정상적인 시장으로 인한 손실을 피하기 위한 수동 개입

최적화 방향

  1. 역전 시기를 더 잘 파악하기 위해 모멘텀 지표 매개 변수를 최적화합니다.
  2. 잘못된 신호를 필터링 하기 위해 볼륨과 같은 지표를 추가
  3. 단일 손실을 줄이기 위해 중지 손실 전략을 추가

요약

이 전략은 가격 동력 지표를 계산하여 가격 트렌드가 반전되었는지, 자동으로 길게 또는 짧게 이동했는지 여부를 결정합니다. 백테스트는이 전략이 전반적으로 원활하게 작동하고 가격 반전 지점을 효과적으로 포착한다는 것을 보여줍니다. 매개 변수 설정을 최적화하고 신호 필터를 추가함으로써 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다.


/*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")

더 많은