이 전략은 유명한 트레이더 빌 윌리엄스가 설계한 윌리엄스 지표에 있는 Awesome Oscillator (AO) 를 기반으로 합니다. 다른 기간의 중간 가격 SMA 사이의 차이를 계산함으로써, 트렌드와 시장 추진력을 진단하고, 긴 및 짧은 것을 안내하기 위해 대응하는 거래 신호를 설계하는 오시일레이션 지표를 형성합니다.
이 전략의 핵심 지표는 Awesome Oscillator (AO) 입니다. AO = SMA (평균 가격, 5일) - SMA (평균 가격, 34일) 이 공식은 서로 다른 기간 동안의 중간 가격의 두 개의 SMA에서 가격 동력을 추출합니다. 빠른 SMA (5 일) 이 느린 SMA (34 일) 보다 높을 때 구매 신호가 생성되며 빠른 SMA가 느린 SMA보다 낮을 때 판매 신호가 생성됩니다.
오류 신호를 필터하기 위해, 이 전략은 AO에 5일 SMA 연산을 적용한다. 긴/단 신호를 역전하면 다른 거래 방향을 실현하는 역모드가 제공됩니다. AO가 이전 값보다 높을 때, 그것은 구매 기회로 간주되고 파란색 막대기로 표시됩니다. AO가 이전 값보다 높지 않을 때, 그것은 판매 기회로 간주되고 빨간색 막대기로 표시됩니다.
이 전략은 직관적이고 명확한 거래 신호로 시장 추진력 변화를 진단하기 위해 빠르고 느린 중간 가격 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)