유동 가격 오시레이터 양적 거래 전략

저자:차오장, 날짜: 2023-11-24 11:22:30
태그:

전략 개요

이 전략은 "Detrended Price Oscillator Quantitative Trading Strategy"라고 불립니다. 이는 전형적인 기술 지표 전략인 "Detrended Price Oscillator" 지표에 기반한 거래 신호를 생성합니다.

전략 논리

이 전략의 핵심은 디트렌드 프라이스 오시레이터 (DPO) 지표이다. DPO는 이동 평균과 유사하며, 주기적인 변동을 더 두드러지게 만들기 위해 가격의 장기 트렌드를 필터링할 수 있다. 구체적으로, DPO는 가격을 N 일간 단순한 이동 평균과 비교한다. 가격이 이동 평균보다 높을 때 DPO는 긍정적이며, 가격이 이동 평균보다 낮을 때 DPO는 부정적이다. 이것은 0 축을 중심으로 변동하는 오시레이터를 초래한다. 우리는 DPO의 긍정/부작용을 사용하여 트렌드에 대한 가격 상승/하락을 판단할 수 있다.

이 전략은 매개 변수 N를 14로 설정하고 14일 DPO 지표를 구성합니다. DPO가 긍정적 인 경우 긴 신호가 발산됩니다. DPO가 부정적인 경우 짧은 신호가 발산됩니다.

장점

  • DPO는 본질적으로 필터링 지표로 중장기 가격 주기를 효과적으로 식별 할 수 있습니다. 이것은 상대적으로 숨겨진 거래 기회를 발견하는 데 매우 유용합니다.
  • DPO는 단순한 구조와 이해하기 쉬운 것으로 매개 변수 선택 또한 상대적으로 유연합니다.
  • 가격 자체에 비해, DPO 지표 패턴은 더 표준화되고 더 쉽게 판단 될 수 있으므로 규칙을 작성하기에 적합합니다.

위험성

  • 대부분의 기술 지표 전략과 마찬가지로 DPO 전략은 불필요한 거래 신호를 자주 생성하는 경향이 있습니다. 이것은 불필요한 미끄러짐과 거래 비용을 가져올 수 있습니다.
  • DPO는 매개 변수 N에 매우 민감합니다. 다른 매개 변수 선택은 매우 다른 전략 효과로 이어질 수 있습니다. 최적 매개 변수를 찾기 위해 광범위한 테스트가 필요합니다.
  • 트렌딩 시장에서, DPO 전략의 보유 기간은 손실을 제 시간에 막기에는 너무 길어질 수 있으며, 약간의 혈액 손실 위험이 있습니다.

위험을 줄이기 위해 최적화는 다음 측면으로 고려될 수 있습니다.

  1. 단일 손실을 제어하기 위해 스톱 손실 메커니즘을 추가합니다.

  2. 최적의 매개 변수를 찾기 위해 매개 변수 N의 값을 조정합니다.

  3. 트렌드 인디케이터를 포함하여 중요한 트렌드에 대한 거래를 피합니다.

결론

이 전략은 디트렌드 가격 오시레이터 지표에 기반하여 거래 신호를 생성합니다. 이동 평균과 비교하여 이 지표는 가격의 장기 트렌드를 필터하여 가격 순환적 특성을 더 두드러지게합니다. 이것은 숨겨진 거래 기회를 발견하는 데 도움이됩니다. 동시에 매개 변수 민감성, 필터링 등과 같은 문제에 직면합니다. 지속적인 최적화를 통해 효율성 향상을 위해 여전히 많은 공간이 있습니다.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/03/2017
// The Detrend Price Osc indicator is similar to a moving average, 
// in that it filters out trends in prices to more easily identify 
// cycles. The indicator is an attempt to define cycles in a trend 
// by drawing a moving average as a horizontal straight line and 
// placing prices along the line according to their relation to a 
// moving average. It provides a means of identifying underlying 
// cycles not apparent when the moving average is viewed within a 
// price chart. Cycles of a longer duration than the Length (number 
// of bars used to calculate the Detrend Price Osc) are effectively 
// filtered or removed by the oscillator.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Detrended Price Oscillator", shorttitle="DPO")
Length = input(14, minval=1)
Series = input(title="Price",  defval="close")
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice = close
xsma = sma(xPrice, Length)
nRes = xPrice - xsma
pos = iff(nRes > 0, 1,
	     iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=red, title="Detrended Price Oscillator")

더 많은