Комбо Backtest 123 Индекс реверсии и относительной волатильности

Автор:Чао Чжан, Дата: 2023-09-11 09:01:03
Тэги:торговлятехнический анализотклоненияволатильностьРВИстохастическиеустойчивыйсигналысочетаниесинергииуправление рискамиуправление деньгамидисциплина

Комбинирование стратегий реверсии и волатильности для создания надежных сигналов

Эта комбинированная стратегия синергетически сочетает систему 123 с индексом относительной волатильности (RVI), чтобы генерировать надежные торговые сигналы.

Как это работает

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

RVI измеряет направление волатильности. Он отслеживает, расширяется ли волатильность или сокращается. Стратегия длится до 30 RVI и коротка выше 70 RVI.

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

Преимущества и недостатки

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

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

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


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/06/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
// The RVI is a modified form of the relative strength index (RSI). 
// The original RSI calculation separates one-day net changes into 
// positive closes and negative closes, then smoothes the data and 
// normalizes the ratio on a scale of zero to 100 as the basis for the 
// formula. The RVI uses the same basic formula but substitutes the 
// 10-day standard deviation of the closing prices for either the up 
// close or the down close. The goal is to create an indicator that 
// measures the general direction of volatility. The volatility is 
// being measured by the 10-days standard deviation of the closing prices. 
//
// 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


RVI(Period,BuyZone, SellZone) =>
    pos = 0.0
    nU = 0.0
    nD =0.0
    xPrice = close
    StdDev = stdev(xPrice, Period)
    d = iff(close > close[1], 0, StdDev)
    u = iff(close > close[1], StdDev, 0)
    nU:= (13 * nz(nU[1],0) + u) / 14
    nD:= (13 * nz(nD[1],0) + d) / 14
    nRes = 100 * nU / (nU + nD)
    pos:= iff(nRes < BuyZone, -1,
    	   iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Volatility Index", 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, "---- Relative Volatility Index ----")
Period = input(10, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRVI = RVI(Period,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRVI == 1 , 1,
	   iff(posReversal123 == -1 and posRVI == -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 )

Связанные

Больше