Стратегия двойного разворота


Дата создания: 2023-11-22 17:42:23 Последнее изменение: 2023-11-22 17:42:23
Копировать: 0 Количество просмотров: 563
1
Подписаться
1617
Подписчики

Стратегия двойного разворота

Обзор

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

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

Эта стратегия состоит из двух подстратегий. Первая подстратегия, 123 обратная стратегия, имеет следующую логику:

  1. Если сегодняшние и вчерашние конечные цены были выше предыдущих дней, а быстрый стох был ниже медленного стоха, а быстрая линия была ниже 50;

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

Вторая подстратегия, ключевая стратегия обратного падения, имеет простую логику:

Если в нисходящем тренде появятся новые низкие точки, пустовать.

Торговые сигналы всей стратегии появляются только тогда, когда сигналы двух подстратегий совпадают.

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

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

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

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

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

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

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

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

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

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

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

  2. Внедрение вспомогательных показателей, таких как объем и волатильность, для повышения точности принятия решений;

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

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/12/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
// A key reversal is a one-day trading pattern that may signal the reversal of a trend. 
// Other frequently-used names for key reversal include "one-day reversal" and "reversal day."
// How Does a Key Reversal Work?
// Depending on which way the stock is trending, a key reversal day occurs when:
// In an uptrend -- prices hit a new high and then close near the previous day's lows.
// In a downtrend -- prices hit a new low, but close near the previous day's highs
//
// 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

KRD(nLength) =>
    pos = 0.0
    xHH = highest(high[1], nLength)
    C1 = iff(high > xHH and close < close[1], true, false)
    pos := iff(C1, -1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & Key Reversal Down", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLength = input(1, minval=1, title="Enter the number of bars over which to look for a new high in prices.")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKRD = KRD(nLength)
pos = iff(posReversal123 == 1 and posKRD == 1 , 1,
	   iff(posReversal123 == -1 and posKRD == -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 )