Интегрированная торговая стратегия с обратным движением и центром тяжести на основе многостратегии

Автор:Чао Чжан, Дата: 2024-01-03 16:51:03
Тэги:

img

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Резюме

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


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/07/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
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// 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

CenterOfGravity(Length, m,Percent, SignalLine) =>
    pos = 0
    xLG = linreg(close, Length, m)
    xLG1r = xLG + ((close * Percent) / 100)
    xLG1s = xLG - ((close * Percent) / 100)
    xLG2r = xLG + ((close * Percent) / 100) * 2
    xLG2s = xLG - ((close * Percent) / 100) * 2
    xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
    xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
    pos :=  iff(close > xSignalR, 1,
             iff(close < xSignalS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Center Of Gravity", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCoF = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(LengthCoF, KSmoothing, DLength, Level)
posCenterOfGravity = CenterOfGravity(Length, m,Percent, SignalLine)
pos = iff(posReversal123 == 1 and posCenterOfGravity == 1 , 1,
	   iff(posReversal123 == -1 and posCenterOfGravity == -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 )

Больше