
В этой стратегии используются преимущества двухуровневых показателей, используются 123 формы для определения обратного сигнала, дополненные положительным индексом для определения количественного сигнала, для захвата коротких обратных движений.
123 Форма решения обратного сигнала
Строительство быстрой и медленной линий с использованием 9-дневного показателя Стоха
Сигнал покупать возникает, когда цена закрытия падает два дня подряд, цена закрытия повышается на третий день, и скоростная линия Stoch ниже 50
Сигнал продажи возникает, когда цена закрытия повышается два дня подряд, а на третий день цена закрытия падает, и скоростная линия Stoch превышает 50.
Сигнал определения величины
Индекс пропорционального объема (PVI) определяется путем сравнения изменения объема сделки за день до и сегодня
При прохождении N-дневной скользящей средней по PVI, показатель увеличивается, создавая сигнал к покупке
Когда PVI пересекает свою N-дневную скользящую среднюю, показатель может сократиться, создавая сигнал продажи
Объединение двух сигналов
В целом, эта стратегия использует преимущества двухместных индикаторов, чтобы эффективно идентифицировать короткие возможности для изменения цены.
123 Формово-разведочные приборы, способные улавливать ключевые переломные точки короткой линии
PVI - показатель количественной мощности, который помогает определить соотношение количества и цены, чтобы избежать ложных прорывов
Оптимизация параметров Stoch, отфильтрованная от большинства неактивных сигналов
Двойной сигнал более надежен, чем одиночный
Использование суждения в течение дня, избежание риска ночного, подходит для коротких операций
Риск неудачи в реверсии
Риск неудачи
Риск пропуска двойного сигнала
Риск частоты торгов
Оптимизация параметров
Можно включить стоп-стратегии
Подумайте о добавлении фильтров
Оптимизация двойных сигналов
Эта стратегия, используя комбинацию показателей Stoch и PVI, образует стратегию реверсивной торговли с высокой надежностью. По сравнению с отдельными показателями, она имеет более высокую победоспособность и положительные ожидания.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 22/04/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 theory behind the indexes is as follows: On days of increasing volume,
// you can expect prices to increase, and on days of decreasing volume, you can
// expect prices to decrease. This goes with the idea of the market being in-gear
// and out-of-gear. Both PVI and NVI work in similar fashions: Both are a running
// cumulative of values, which means you either keep adding or subtracting price
// rate of change each day to the previous day`s sum. In the case of PVI, if today`s
// volume is less than yesterday`s, don`t add anything; if today`s volume is greater,
// then add today`s price rate of change. For NVI, add today`s price rate of change
// only if today`s volume is less than yesterday`s.
//
// 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
PVI(EMA_Len) =>
pos = 0.0
xROC = roc(close, 1)
nRes = 0.0
nResEMA = 0.0
nRes := iff(volume > volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
nResEMA := ema(nRes, EMA_Len)
pos := iff(nRes > nResEMA, 1,
iff(nRes < nResEMA, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Positive Volume 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, "---- Positive Volume Index ----")
EMA_Len = input(255, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPVI = PVI(EMA_Len)
pos = iff(posReversal123 == 1 and posPVI == 1 , 1,
iff(posReversal123 == -1 and posPVI == -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 )