Перекрестное изменение тренда в сочетании с тремя десятиколесными двойными стратегиями

Автор:Чао Чжан, Дата: 2024-01-19 14:41:02
Тэги:

img

Обзор

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

Стратегия 1: Стратегия перекрестного изменения тенденции

Эта стратегия возникла на странице 183 книги "Как я утроил свои деньги на фьючерсном рынке". Она относится к типу обратной стратегии. Конкретная логика заключается в следующем: когда цена закрытия выше предыдущей цены закрытия в течение двух дней подряд, а 9-дневная медленная K-линия ниже 50, перейдите на длинный; когда цена закрытия ниже предыдущей цены закрытия в течение двух дней подряд, и 9-дневная быстрая K-линия выше 50, перейдите на короткий.

Стратегия 2: Стратегия трех десятиных осцилляторов

Эта стратегия использует разницу между 3-дневным скользящим средним и 10-дневным скользящим средним для построения индикатора. В частности, это 3-дневная экспоненциальная скользящая средняя минус 10-дневная экспоненциальная скользящая средняя. Разница заключается в быстрой линии. Принятие 16-дневной простой скользящей средней этой быстрой линии дает медленную линию. Когда быстрая линия проходит через медленную линию снизу вверх, идите в длину; когда быстрая линия проходит через медленную линию сверху вниз, идите коротко.

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

  • Сначала вычисляется торговый сигнал после переворота123 стратегии перемены перекрестного тренда;
  • Затем вычислить торговый сигнал posD_Two из трех десятиколесных стратегий;
  • Если оба сигнала находятся в одном направлении (двойной мульти или двойной короткий), выводится комбинированный сигнал;
  • Определить конкретное направление торговли и цену на основе комбинированного сигнала pos;
  • Нарисуйте линии К в разных цветах.

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

Этот комбинированный сигнал многостратегии имеет следующие преимущества:

  1. Профильтруйте поддельные сигналы и улучшайте качество сигнала

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

  2. Интегрировать несколько торговых идей

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

  3. Высокая гибкость

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

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

  1. Противоречивые предположения

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

  2. Несоответствующие сигналы

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

  3. Несоответствие параметров

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

Контрмеры:

  1. Увеличить количество стратегий для большинства голосов

  2. Установка точек остановки потерь для контроля потерь от отдельных сигналов

  3. Оптимизировать параметры для обеспечения нормальной работы стратегии

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

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

  1. Увеличить объединение большего количества стратегий

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

  2. Предыдущие условия фильтрации

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

  3. Динамическое регулирование стратегических весов

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

  4. Оптимизировать параметры

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

Резюме

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


/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-18 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/12/2019
// 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
// TradeStation does not allow the user to make a Multi Data Chart with 
// a Tick Bar Chart and any other type a chart. This indicator allows the 
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived 
// from subtracting a 10 day moving average from a 3 day moving average. 
// The second plot is an 16 day simple moving average of the 3-10 Oscillator. 
// The 16 period moving average is the slow line and the 3/10 oscillator is 
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book 
// "The Power of Oscillator/Cycle Combinations" 
//
// 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

D_Three(Length1, Length2, Length3) =>
    pos = 0.0
    xPrice =  security(syminfo.tickerid,"D", hl2)
    xfastMA = ema(xPrice, Length1)
    xslowMA = ema(xPrice, Length2)
    xMACD = xfastMA - xslowMA
    xSignal = sma(xMACD, Length3)
    pos := iff(xSignal > xMACD, -1,
    	     iff(xSignal < xMACD, 1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & D_Three Ten Osc", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_Three = D_Three(Length1, Length2, Length3)
pos = iff(posReversal123 == 1 and posD_Three == 1 , 1,
	   iff(posReversal123 == -1 and posD_Three == -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 )

Больше