Торговая стратегия с динамическим импульсным осциллятором


Дата создания: 2024-01-22 17:28:39 Последнее изменение: 2024-01-22 17:28:39
Копировать: 0 Количество просмотров: 603
1
Подписаться
1617
Подписчики

Торговая стратегия с динамическим импульсным осциллятором

Обзор

Динамическая динамическая осцилляторная торговая стратегия основана на динамическом динамическом осцилляторе (Dynamo) показателя, предложенном Э. Маршалом Уоллом в статье, опубликованной в журнале “Форткорт” в июле 1996 года, с нормализацией стандартного осциллятора для устранения влияния тенденции.

Стратегический принцип

Эта стратегия сначала вычисляет случайный 10-дневный индекс (стохастический осциллятор), затем вычисляет 10-дневную простую скользящую среднюю этого индекса, а затем на основе этой скользящей средней вычисляет 20-дневную скользящую среднюю. Это составляет основу для вычислений динамического динамического осциллятора.

Затем Strategy рассчитывает максимальные и минимальные значения индекса, а затем рассчитывает среднее значение. Она делает 20-дневную среднюю линию разной от исходного индекса, а затем вычитает это разница из среднего значения, образуя стандартизированный волатильный инструмент.

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

Основные преимущества этой стратегии:

  1. Использование динамического динамического показателя устраняет влияние тренда, что делает торговые сигналы более надежными.

  2. В сочетании с зонами перекупа и перепродажи можно получить более точный торговый сигнал на переломных точках.

  3. Правила просты, понятны и легко применяются.

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

Основные риски этой стратегии:

  1. При рыночных волнениях, индикаторы могут дать ошибочный сигнал. Можно установить стоп-лосс, чтобы контролировать риск.

  2. В условиях рыночной нестабильности часто возникают ложные сигналы. Параметры могут быть скорректированы, чтобы отфильтровать некоторый шум.

  3. Частота сделок может быть высокой, а стоимость сделок может иметь определенное влияние на прибыль.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Проверка данных на различных рынках для поиска оптимальных контрактов и оптимальных комбинаций параметров.

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

  3. Увеличение механизма сдерживания убытков. Выбор сдерживания убытков для выхода, когда цена прорывает определенную отметку в неблагоприятном направлении.

  4. На основе этой стратегии могут быть разработаны более сложные торговые системы для принятия решений в сочетании с несколькими другими показателями.

Подвести итог

Динамическая динамическая стратегия торговли с помощью воздействия тренда, которая дает более точные торговые сигналы в зонах перепродажи. Эта стратегия проста и проста в использовании, но также сопряжена с определенными рисками. С помощью оптимизации параметров и правил можно еще больше улучшить стабильность системы и ее прибыльность.

Исходный код стратегии
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/04/2017
// In July 1996 Futures magazine, E. Marshall Wall introduces the 
// Dynamic Momentum Oscillator (Dynamo). Please refer to this article 
// for interpretation.
// The Dynamo oscillator is a normalizing function which adjusts the 
// values of a standard oscillator for trendiness by taking the difference 
// between the value of the oscillator and a moving average of the oscillator 
// and then subtracting that value from the oscillator midpoint.
//
// 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="Dynamo", shorttitle="Dynamo")
OscLen = input(10, minval=1)
MALen = input(20, minval=1)
HiBand = input(77, minval=1)
LowBand = input(23)
reverse = input(false, title="Trade reverse")
hline(HiBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xOscK = stoch(close, high, low, OscLen)
xOscAvg = sma(xOscK, OscLen)
xMAVal = sma(xOscAvg, MALen)
maxNum = 9999999
LowestSoFar = iff(xOscAvg < nz(LowestSoFar[1], maxNum), xOscAvg, nz(LowestSoFar[1], maxNum))
HighestSoFar = iff(xOscAvg > nz(HighestSoFar[1]), xOscAvg, nz(HighestSoFar[1]))
MidPnt = (LowestSoFar + HighestSoFar) / 2
nRes = MidPnt - (xMAVal - xOscAvg)
pos = iff(nRes > HiBand, 1,
	     iff(nRes < LowBand, -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=blue, title="Dynamo")