Стратегия трансформации индекса осциллятора

Автор:Чао Чжан, Дата: 2023-12-22 14:21:28
Тэги:

img

Обзор

Стратегия трансформации индекса осциллятора использует перекрестки между индексом осциллятора Bressert 3-10 и его 16-дневной простой скользящей средней для генерации торговых сигналов.

Логика стратегии

Стратегия основана на индексе осциллятора 3-10 Брессерта, который представляет собой разницу между 3-дневными и 10-дневными экспоненциальными скользящими средними.

В частности, стратегия сначала рассчитывает 3-дневную EMA, 10-дневную EMA и их разницу в качестве индекса осциллятора. Затем она рассчитывает 16-дневную простую скользящую среднюю величину индекса осциллятора в качестве сигнальной линии.

Анализ преимуществ

  1. Использует классический Bressert осцилляторный индекс который довольно эффективен
  2. Формирует четкие торговые сигналы с быстрыми и медленными пересечениями линий
  3. Позволяет приспосабливаться к различным рыночным режимам
  4. Может использоваться как для внутридневного, так и для однодневного трейдинга

Анализ рисков

  1. Уровень стабильности осциллятора Брессерта при колебаниях прибыли/убытка
  2. Быстрые и медленные пересечения линий могут генерировать ложные сигналы
  3. Обратные сделки имеют более высокий риск и должны использоваться осторожно
  4. Требует стоп-лосса для внутридневных операций и размещения позиций для сделок на ночь

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

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

Заключение

Стратегия трансформации индекса осциллятора является краткосрочной торговой стратегией, генерирующей сигналы от 3-10 осцилляторов и перекрестных линий сигналов. Она проста и практична как для внутридневного, так и для ночного использования, но имеет присущие флуктуации PnL и риски ложных сигналов. Для уточнения стратегии необходимы дополнительные фильтры, стоп-лосс и размещение позиций. При правильной оптимизации она может достичь последовательной альфы.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/03/2017
// TradeStation does not allow the user to make a Multi Data Chart with 
// a Tick Bar Chart and any other type a chart. This indicator allows the 
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived 
// from subtracting a 10 day moving average from a 3 day moving average. 
// The second plot is an 16 day simple moving average of the 3-10 Oscillator. 
// The 16 period moving average is the slow line and the 3/10 oscillator is 
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book 
// "The Power of Oscillator/Cycle Combinations" 
//
// 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="D_Three Ten Osc", shorttitle="D_Three Ten Osc")
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice =  request.security(syminfo.tickerid,"D", hl2)
xfastMA = ema(xPrice, Length1)
xslowMA = ema(xPrice, Length2)
xMACD = xfastMA - xslowMA
xSignal = sma(xMACD, Length3)
pos = iff(xSignal > xMACD, -1,
	     iff(xSignal < xMACD, 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(request.security(syminfo.tickerid, "D", xMACD), color=blue, title="D_Three Ten Osc")
plot(request.security(syminfo.tickerid, "D", xSignal), color=red, title="D_Three Ave")

Больше