Количественная торговая стратегия, основанная на ценовом детрендовом осцилляторе


Дата создания: 2023-11-24 11:22:30 Последнее изменение: 2023-11-24 11:22:30
Копировать: 2 Количество просмотров: 697
1
Подписаться
1617
Подписчики

Обзор стратегии

Эта стратегия называется количественной торговой стратегией, основанной на ценовом отклонении от трендового осциллятора. Эта стратегия относится к типичной стратегии технических индикаторов путем построения индикатора ценового отклонения от трендового осциллятора и выпуска торговых сигналов на его основе.

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

В основе этой стратегии лежит индикатор DPO, похожий на скользящие средние, который отсеивает тенденции более длительного цикла в ценах, что делает более заметными их периодические колебания. В частности, индикатор DPO - это сравнение цены с ее Н-дневным простой скользящей средней. Когда цена выше скользящей средней, DPO является положительным, а когда цена ниже скользящей средней, DPO является отрицательным. Таким образом, получается индикатор, который колеблется вокруг 0-й оси.

В этой стратегии параметр N устанавливается на 14, чтобы построить 14-дневный индикатор DPO. Когда индикатор DPO является положительным, посылается многосигнал; когда индикатор DPO является отрицательным, посылается пустой сигнал.

Стратегические преимущества

  • Индекс DPO по сути является индикатором колебаний, который позволяет эффективно идентифицировать короткие промежуточные циклы в ценах. Это очень полезно для обнаружения более скрытых торговых возможностей.
  • Индекс DPO построен просто, легко понятен, а параметры более гибкие.
  • По сравнению с ценой, формат показателя DPO является более стандартным, легко оцениваемым и подходит для разработки правил.

Стратегический риск

  • Как и большинство стратегий технических показателей, стратегии DPO легко генерируют многочисленные бесполезные торговые сигналы. Это может привести к ненужным скольжениям и торговым затратам.
  • Показатель DPO чувствителен к параметрам N. Различные параметры могут привести к значительным различиям в эффективности стратегии. Оптимистичный параметр должен быть найден после большого количества тестов.
  • В условиях тренда DPO-стратегия может держать позиции слишком долго, не может своевременно остановить убытки, существует определенный риск потери крови.

Для снижения риска можно рассмотреть оптимизацию в следующих аспектах:

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

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

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

Исходный код стратегии
/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/03/2017
// The Detrend Price Osc indicator is similar to a moving average, 
// in that it filters out trends in prices to more easily identify 
// cycles. The indicator is an attempt to define cycles in a trend 
// by drawing a moving average as a horizontal straight line and 
// placing prices along the line according to their relation to a 
// moving average. It provides a means of identifying underlying 
// cycles not apparent when the moving average is viewed within a 
// price chart. Cycles of a longer duration than the Length (number 
// of bars used to calculate the Detrend Price Osc) are effectively 
// filtered or removed by the oscillator.
//
// 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="Detrended Price Oscillator", shorttitle="DPO")
Length = input(14, minval=1)
Series = input(title="Price",  defval="close")
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice = close
xsma = sma(xPrice, Length)
nRes = xPrice - xsma
pos = iff(nRes > 0, 1,
	     iff(nRes < 0, -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=red, title="Detrended Price Oscillator")