Стратегия Брессерта с двойной сглаженной стохастической стратегией

Автор:Чао Чжан, Дата: 2024-02-05 15:57:37
Тэги:

img

Обзор

Стратегия двойного сглаживания стохастического Брессерта разработана Уильямом Блау. Она пытается объединить методы скользящей средней с принципами осциллятора.

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

Принцип

  1. Вычислить сглаженный стохастический индекс цен xPreCalc периода PDS
  2. Применить экспоненциальную скользящую среднюю EMAlen к xPreCalc для получения xDSS, т.е. двойной сглаженный стохастический индекс
  3. Вычислите триггерную линию xTrigger, которая является еще одной линией EMA xDSS
  4. Создание торговых сигналов:
    • Продолжите, когда xTrigger ниже xDSS и ниже перепроданной линии
    • Сократите, когда xTrigger выше xDSS и выше перекупленной линии
  5. Нарисуйте кривые двойного сглаженного стохастического индекса xDSS и триггерной линии xTrigger

Плюсы

Стратегия объединяет в себе способность скользящих средних следовать тренду и способность выявлять перекупленные/перепроданные стохастические индексы.

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

Риски

Стратегия двойного сглаживания стохастического Брессерта также сопряжена с некоторыми рисками:

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

Контрмеры:

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

Оптимизация

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

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

Заключение

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


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2017
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// 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="DSS Bressert (Double Smoothed Stochastic)", shorttitle="DSS Bressert")
PDS = input(10, minval=1)
EMAlen = input(9, minval=1)
TriggerLen = input(5, minval=1)
Overbought = input(80, minval=1)
Oversold = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(Overbought, color=green, linestyle=line)
hline(Oversold, color=red, linestyle=line)
xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
//xDSS = stoch(xPreCalc, xPreCalc, xPreCalc, PDS)
xTrigger = ema(xDSS, TriggerLen)
pos = iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	     iff(xTrigger > xDSS and xTrigger > Overbought, 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(xDSS, color=blue, title="DSS")
plot(xTrigger, color=red, title="Trigger")

Больше