На основе стратегии двойного встречного импульса


Дата создания: 2024-02-20 15:27:02 Последнее изменение: 2024-02-20 15:27:02
Копировать: 0 Количество просмотров: 559
1
Подписаться
1617
Подписчики

На основе стратегии двойного встречного импульса

Обзор

Стратегия двойного обратного волатильности позволяет торговать по тренду, объединяя в себе сигнал обратного движения цены и сигнал обратного движения волатильности. Она основывается на 123 формах, которые определяют обратные точки цены, а также используют Donchian channel волатильности, чтобы отфильтровать ложные сигналы.

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

Часть ценового поворота использует 123 формы суждения. Эта форма означает, что первые две линии K являются обратными (вверх или вниз), а третья линия K снова поворачивает (вверх или вниз), поэтому она называется 123 формой. Когда цена поворачивает три линии K, это обычно указывает на предстоящий поворот краткосрочной тенденции.

Возвратная часть использует Donchian channel volatility. Donchian channel в основном отражает диапазон колебаний цены. Когда ценовые колебания увеличиваются, Donchian channel width также расширяется; когда ценовые колебания уменьшаются, Donchian channel width также сужается.

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

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

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

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

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

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

  • Добавление адаптивного модуля остановки может значительно снизить максимальный отказ
  • Добавление показателя объема сделок, обеспечивающего доступ к рынку при высоких объемах сделок
  • Оптимизация параметров для оптимальной стабильности
  • Попробуйте разные сорта и временные циклы, чтобы найти наиболее подходящую среду.
  • Попробуйте комбинировать с другими показателями или стратегиями, чтобы получить синхронный эффект 1 + 1 > 2

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )