Стратегия обратного движения с двойным подтверждением

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

img

Обзор

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

Принцип стратегии

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

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

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

Преимущества

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

Риски

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

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

  • Увеличить адаптивный модуль остановки потери, чтобы значительно уменьшить максимальное снижение
  • Внедрить индикатор объема торговли для обеспечения выхода на высокие объемы выбытия
  • Оптимизировать параметры для наилучшей стабильности
  • Попробуйте разные продукты и временные рамки, чтобы найти лучшее соответствие
  • Попробуйте комбинировать с другими показателями или стратегиями для 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 )

Больше