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


Дата создания: 2023-12-15 16:56:20 Последнее изменение: 2023-12-15 16:56:20
Копировать: 1 Количество просмотров: 673
1
Подписаться
1621
Подписчики

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

Обзор

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

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

123 обратная система

123 система обратного отсчета происходит от Ульфа Дженсена в книге “Как я могу получить три раза больше прибыли на фьючерсном рынке”. Эта часть стратегии относится к стратегии обратного типа. Когда цена закрытия 2 дня подряд выше цены закрытия предыдущего дня, и 9 дней медленная K-линия ниже 50 - это больше; когда цена закрытия 2 дня подряд ниже цены закрытия предыдущего дня, и 9 дней быстрая K-линия выше 50 - это пусто.

Расщепление моделей опыта (EMD)

Экспериментальная модель дифференциации (EMD) - это адаптивный метод анализа данных. Он эффективно выделяет различные частотные компоненты данных и извлекает долгосрочные тенденции данных. Здесь мы устанавливаем длину 20, дельту 0,5, фракцию 0,1, чтобы генерировать торговые сигналы в зависимости от различных частотных компонентов цены.

Синтез сигналов

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. Оптимизация управления капиталом и определение оптимального размера сделки

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/06/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 related article is copyrighted material from Stocks & Commodities Mar 2010
//
// 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

Empirical(Length,Delta,Fraction) =>
    pos = 0
    xBandpassFilter = 0.0
    xPeak = 0.0
    xValley =0.0
    xPrice = hl2
    beta = cos(3.1415 * (360 / Length) / 180)
    gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
    alpha = gamma - sqrt(gamma * gamma - 1)
    xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
    xMean = sma(xBandpassFilter, 2 * Length)
    xPeak :=  iff (xBandpassFilter[1] > xBandpassFilter and xBandpassFilter[1] > xBandpassFilter[2], xBandpassFilter[1], nz(xPeak[1])) 
    xValley :=  iff (xBandpassFilter[1] < xBandpassFilter and xBandpassFilter[1] < xBandpassFilter[2], xBandpassFilter[1], nz(xValley[1])) 
    xAvrPeak = sma(xPeak, 50)
    xAvrValley = sma(xValley, 50)
    nAvrPeak = Fraction * xAvrPeak
    nAvrValley = Fraction * xAvrValley
    pos := iff(xMean > nAvrPeak and xMean > nAvrValley, 1,
    	   iff(xMean < nAvrPeak and xMean < nAvrValley, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Empirical Mode Decomposition", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthEMD = input(20, minval=1)
Delta = input(0.5)
Fraction = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEmpirical = Empirical(LengthEMD,Delta,Fraction)
pos = iff(posReversal123 == 1 and posEmpirical == 1 , 1,
	   iff(posReversal123 == -1 and posEmpirical == -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 )