Стратегия двойного обратного движения высоко-низко

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

img

Обзор

Стратегия Dual Reversal High-Low - это количественная стратегия, которая сочетает в себе двойные сигналы. Она объединяет в себя стратегию внутридневного анализа, основанную на перевороте, и стратегию оценки тренда, которая использует разницу между вчерашней самой высокой ценой и скользящей средней. Стратегия направлена на достижение более стабильных сигналов купли и продажи, чтобы избежать дальнейшего выпуска неправильных сигналов.

Принципы

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

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

Наконец, эта стратегия объединяет оба сигнала. Она принимает buy action, когда оба сигнала показывают buy signal одновременно; она принимает sell action, когда оба сигнала показывают sell signal одновременно.

Преимущества

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

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

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

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

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

Оптимизация

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

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

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

Заключение

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


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/11/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
// This indicator plots the difference between the High (of the previous period)
// and an exponential moving average (13 period) of the Close (of the previous period).
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// It buy if indicator above 0 and sell if below.
//
// 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

    
HEMA(Length) =>
    pos = 0.0
    xPrice = close  // You can use any series
    xEMA = ema(xPrice, Length)
    nRes = high[1] - nz(xEMA[1])
    pos:= iff(nRes > 0, 1,
    	   iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High - EMA Strategy", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_HEMA = input(13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHEMA = HEMA(Length_HEMA)
pos = iff(posReversal123 == 1 and posHEMA == 1 , 1,
	   iff(posReversal123 == -1 and posHEMA == -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 )

Больше