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

윌리엄스 지표의 AC 백테스트 전략

저자:차오장, 날짜: 2023-12-18 12:03:38
태그:

img

전반적인 설명

이 전략은 유명한 트레이더 빌 윌리엄스가 설계한 윌리엄스 지표에 있는 Awesome Oscillator (AO) 를 기반으로 합니다. 다른 기간의 중간 가격 SMA 사이의 차이를 계산함으로써, 트렌드와 시장 추진력을 진단하고, 긴 및 짧은 것을 안내하기 위해 대응하는 거래 신호를 설계하는 오시일레이션 지표를 형성합니다.

원칙

이 전략의 핵심 지표는 Awesome Oscillator (AO) 입니다. AO = SMA (평균 가격, 5일) - SMA (평균 가격, 34일) 이 공식은 서로 다른 기간 동안의 중간 가격의 두 개의 SMA에서 가격 동력을 추출합니다. 빠른 SMA (5 일) 이 느린 SMA (34 일) 보다 높을 때 구매 신호가 생성되며 빠른 SMA가 느린 SMA보다 낮을 때 판매 신호가 생성됩니다.

오류 신호를 필터하기 위해, 이 전략은 AO에 5일 SMA 연산을 적용한다. 긴/단 신호를 역전하면 다른 거래 방향을 실현하는 역모드가 제공됩니다. AO가 이전 값보다 높을 때, 그것은 구매 기회로 간주되고 파란색 막대기로 표시됩니다. AO가 이전 값보다 높지 않을 때, 그것은 판매 기회로 간주되고 빨간색 막대기로 표시됩니다.

장점

  1. 닫는 가격 대신 중간 가격을 사용하는 것은 SMA에 대한 거짓 파업의 영향을 줄이고 안정성을 향상시킵니다.
  2. 빠른 및 느린 SMA 조합은 시장 변화를 민감하게 포착합니다.
  3. 이중 SMA 필터링은 고주파 잡음을 제거하고 신호 품질을 향상시킵니다.
  4. 유연한 매개 변수 조정
  5. 거래점의 직관적인 바 디스플레이를 통해 거래에 대한 판단을 쉽게 할 수 있습니다.

위험 과 해결책

  1. 매개 변수를 조정하여 과잉 조정을 방지하기 위해 시장 변동 빈도를 신중하게 평가합니다.
  2. 오시일레이션 시장에서 여러 가지 오류가 발생할 수 있습니다. 적절한 스톱 로스 범위를 느슨하게 하거나 포지션 규모를 줄일 수 있습니다.
  3. 신뢰할 수 없는 백테스트 데이터, 실제 성능은 시뮬레이션과 다를 수 있습니다. 여러 다리 실제 거래와 분할 팩 포지션을 결합하는 것을 제안합니다.

최적화 방향

  1. 신호 품질을 향상시키기 위해 거래량과 같은 필터를 증가
  2. 개별 운영 손실을 제어하기 위한 스톱 로스 전략을 포함
  3. 포지션 관리를 최적화하고 시장 변동성에 따라 포지션을 추가하거나 줄이십시오.
  4. 다른 지표를 결합하여 변동 반전을 방지하기 위해 트렌드 방향을 결정합니다.

결론

이 전략은 직관적이고 명확한 거래 신호로 시장 추진력 변화를 진단하기 위해 빠르고 느린 중간 가격 SMA 구조로 설계된 멋진 오시일레이터를 사용합니다. 그러나 오시일레이션 및 역전의 영향에 노출되어 안정성을 향상시키기 위해 적절한 매개 변수 조정 및 스톱 로스 전략을 필요로합니다. 효과적인 위험 통제로,이 전략은 간단하고 실용적이며 추가 최적화 및 적용 가치가 있습니다.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/12/2016
//    This indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// 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("Bill Williams. Awesome Oscillator (AC)")
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
nRes =  xSMA1_SMA2 - xSMA_hl2
cClr = nRes > nRes[1] ? blue : red
pos = iff(nRes > nRes[1], 1,
	   iff(nRes < nRes[1], -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, style=histogram, linewidth=1, color=cClr)

더 많은