Стратегия двойного отслеживания тенденций

Автор:Чао Чжан, Дата: 2023-09-27 16:14:25
Тэги:

Обзор

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

Логика стратегии

Стратегия состоит из двух частей:

  1. 123 Стратегия отмены

    Стратегия 123 реверсии сначала оценивает соотношение цены закрытия между предыдущими двумя днями. Если цены закрытия недавно изменились (например, цена закрытия выросла вчера и упала накануне), это указывает на потенциальный поворотный момент.

    Затем он объединяет индикатор Stoch для определения времени покупки и продажи. Когда быстрая линия Stoch ниже определенного уровня (например, 50) и медленная линия выше быстрой линии, она считается перепроданной и генерирует сигнал покупки. Когда быстрая линия Stoch выше определенного уровня (например, 50) и медленная линия ниже быстрой линии, она считается перекупленной и генерирует сигнал продажи.

    Таким образом, стратегия 123 обратного движения требует подтверждения от индикатора Stoch в дополнение к выявлению обратного движения цены для генерации фактических торговых сигналов.

  2. Показатель перекупленности/перепроданности

    Индикатор перекупленности/перепроданности напрямую использует индикатор Stoch. Когда индикатор Stoch превышает определенный уровень (например, 90), он считается перекупленным и генерирует сигнал продажи. Когда индикатор Stoch ниже определенного уровня (например, 20), он считается перепроданным и генерирует сигнал покупки.

    Этот показатель оценивает уровни перекупленности/перепроданности непосредственно с помощью индикатора Stoch для отслеживания тенденций.

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

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

Наибольшее преимущество стратегии Dual Trend Tracking заключается в том, что она может проверять как ценовые тенденции, так и условия перекупки/перепродажи, чтобы избежать неправильных торговых сигналов.

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

  2. Стратегия 123 может своевременно отслеживать возможные точки переворота тренда.

  3. Показатель перекупленности/перепроданности позволяет проверить текущие рыночные условия и избежать погони за максимумами и минимумами продаж.

  4. Обе стратегии могут проверять друг друга, чтобы избежать ошибочных сигналов, улучшая стабильность.

  5. Он сочетает в себе простые и эффективные показатели с ясной логикой, которую легко понять и применить.

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

Хотя стратегия улучшает стабильность посредством комбинированной проверки, некоторые риски все еще существуют:

  1. Стратегия 123 не может точно определить точки обратного движения и может упустить некоторые возможности.

  2. Показатель перекупленности/перепроданности основан исключительно на одном индикаторе Stoch и может генерировать ложные сигналы.

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

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

  5. Параметры нуждаются в независимом тестировании и оптимизации для различных продуктов и торговых периодов.

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

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

  1. Оптимизировать параметры для обеих стратегий для формирования пулов параметров для программ оптимизации для выбора в различных рыночных условиях.

  2. Добавить условия фильтрации на основе MA, полос Боллинджера и т. д., чтобы избежать ошибочных сигналов.

  3. Добавить механизмы остановки потери, такие как отслеживание остановки потери, перемещение остановки потери, время остановки потери и т.д., чтобы контролировать максимальное снижение.

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

  5. Изучайте эволюцию параметров с течением времени и используйте машинное обучение для автоматической оптимизации.

  6. Оптимизировать частоту входа, чтобы избежать переоценки на рынках без тренда.

Заключение

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


/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/03/2021
// 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
// Simple Overbought/Oversold indicator
//
// 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


OO(Length,BuyBand,SellBand) =>
    pos = 0.0
    xOBOS = stoch(close, high, low, Length)
    nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
    pos :=iff(nRes < SellBand, -1,
           iff(nRes > BuyBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Overbought/Oversold", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Overbought/Oversold ----")
LengthOO = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posOO = OO(LengthOO,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posOO == 1 , 1,
	   iff(posReversal123 == -1 and posOO == -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 )

Больше