Стратегия обратного теста AC показателя Уильямса

Автор:Чао Чжан, Дата: 2023-12-18 12:03:38
Тэги:

img

Обзор

Эта стратегия основана на Awesome Oscillator (AO) в индикаторе Уильямса, разработанном известным трейдером Биллом Уильямсом. Вычисляя разницу между средними ценовыми SMA различных периодов, он формирует колеблющийся индикатор для диагностики тенденций и рыночного импульса и проектирует соответствующие торговые сигналы для руководства длинным и коротким.

Принцип

Основным показателем этой стратегии является Awesome Oscillator (AO), который рассчитывается как: AO = SMA ((Средняя цена, 5 дней) - SMA ((Средняя цена, 34 дня) При этом средняя цена определяется как (высшая цена + самая низкая цена) /2. Эта формула извлекает информацию о динамике цены из двух SMA средней цены за разные периоды. Сигналы покупки генерируются, когда быстрая SMA (5 дней) выше медленной SMA (34 дня), а сигналы продажи генерируются, когда быстрая SMA ниже медленной SMA.

Для фильтрации ошибочных сигналов эта стратегия также применяет 5-дневную операцию SMA на AO. Предоставляется обратный режим, в котором обратные длинные / короткие сигналы реализуют различные торговые направления. Когда AO выше предыдущего значения, он считается возможностью покупки и отмечен синей полосой. Когда AO не выше предыдущего значения, он считается возможностью продажи и отмечен красной полосой.

Преимущества

  1. Использование медианной цены вместо ценовой цены закрытия снижает влияние ложных прорывов на SMA и улучшает стабильность
  2. Комбинация быстрого и медленного SMA чувствительно отражает изменения рынка
  3. Двойная фильтрация SMA устраняет высокочастотный шум и улучшает качество сигнала
  4. Гибкая корректировка параметров адаптируется к различным рыночным условиям
  5. Интуитивное панельное отображение торговых точек для легкой оценки операций

Риски и решения

  1. Осторожно оценивать частоту волатильности рынка для предотвращения перенапряжения путем корректировки параметров
  2. На колеблющихся рынках может возникнуть множество ошибочных операций.
  3. Ненадёжные данные обратного теста, фактическая производительность может отличаться от симуляции.

Руководство по оптимизации

  1. Увеличьте фильтры, такие как объем торговли, чтобы улучшить качество сигнала
  2. Включить стратегии остановки потерь для контроля индивидуальных операционных потерь
  3. Оптимизировать управление позициями, добавлять или уменьшать позиции в зависимости от волатильности рынка
  4. Сочетание других индикаторов для определения направления тренда для предотвращения переворотов колебаний

Заключение

Эта стратегия использует Awesome Oscillator, разработанный с быстрой и медленной структурой средней цены 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)

Больше