
Эта стратегия объединяет динамические показатели разных временных периодов, чтобы определить обратный тренд на рынке в течение нескольких временных масштабов. Стратегия использует стохастический осциллятор для определения краткосрочного обратного тренда и объединяет более длительный период ((высокая цена - низкая цена) / индикатор закрытия цен для определения среднесрочной тенденции, чтобы определить обратный тренд в течение нескольких временных измерений.
Стратегия состоит из двух частей:
Эта часть определяет кратковременный обратный тренд с помощью перекрёстков быстрой и медленной линий стохастического осциллятора. В частности, если цена закрытия была выше, чем она была за день до этого, и быстрая линия стохастического была ниже медленной линии, и быстрая линия была ниже 50, то можно было бы сделать больше; если цена закрытия была ниже, чем она была за день до этого, и быстрая линия стохастического была выше медленной линии, и быстрая линия была выше 50, то можно было бы сделать пустое место.
Этот показатель отражает волатильность текущей K-линии. Большие значения показателя означают, что текущая волатильность увеличивается и может быть обращена вспять; меньшие значения показателя означают, что текущая волатильность ослабевает и тенденция может продолжаться.
Комбинируя два показателя, можно одновременно определить обратный тренд в краткосрочной и среднесрочной перспективе, что позволяет реализовать многовременную торговую стратегию.
Стратегия, использующая одновременно краткосрочные и среднесрочные показатели, может обеспечить надежность обратного сигнала и избежать ложного сигнала, вызванного одним показателем.
Стохастический осциллятор и параметры индекса “высокая цена - низкая цена” / “закрытие цены” могут быть скорректированы в зависимости от рынка, что делает стратегию более гибкой.
Стратегия основана на стохастике, дополненной среднесрочными и долгосрочными тенденциями, имеет простую и четкую структуру, которую легко понять и изменить.
Фреймворк стратегии простой и универсальный, можно легко вводить дополнительные показатели и создавать многофакторные модели.
Стратегия, основанная на реверсии, может плохо работать в условиях продолжающегося трендового рынка. Параметры должны быть соответствующим образом скорректированы для адаптации к трендовому рынку.
В экстраординарных рыночных ситуациях Stochastic и (высокая цена - низкая цена) / закрытие цены могут подавать ошибочные сигналы, необходимо защитить от риска ложных сигналов.
Стохастические и параметры (высокая цена - низкая цена) / закрытие цены должны быть оптимизированы в зависимости от рыночных условий, иначе это может повлиять на эффективность стратегии.
Стратегия является реверсивной, прибыль и убыток могут быть значительными, поэтому необходимо контролировать позиции и риски.
В рамках существующих рамок можно вводить дополнительные факторы, такие как объем сделок, другие показатели обратного отсчета и т. д., для построения многофакторной модели.
Можно установить мобильный или временный стоп, чтобы эффективно контролировать убытки от одной сделки.
Параметры могут быть оптимизированы с помощью более системных методов, таких как генетические алгоритмы.
Применение алгоритмов машинного обучения, обучающих модели, которые определяют обратный тренд, может еще больше повысить их точность.
Внедрение эмоционального анализа неструктурированных данных, таких как социальные данные, для прогнозирования переломных моментов.
Эта стратегия, объединяющая показатели двух временных измерений в краткосрочной и среднесрочной перспективе для определения обратного тренда в течение нескольких временных периодов, является очень хорошей реверсивной стратегической структурой. Она обладает такими преимуществами, как гибкость параметров показателей, простая структура и масштабируемость. Следующий шаг может быть улучшен с помощью введения большего количества факторов, оптимизации параметров, остановки убытков и машинного обучения, что позволяет еще больше повысить рентабельность стратегии и способность контролировать риск.
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 23/05/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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 histogram displays (high-low)/close
// Can be applied to any time frame.
//
// 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
HLCHist(input_barsback, input_percentorprice, input_smalength) =>
xPrice = (high-low)/close
xPriceHL = (high-low)
xPrice1 = iff(input_percentorprice, xPrice * 100, xPriceHL)
xPrice1SMA = sma(abs(xPrice1), input_smalength)
pos = 0.0
pos := iff(xPrice1SMA[input_barsback] > abs(xPrice1), 1,
iff(xPrice1SMA[input_barsback] < abs(xPrice1), -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & (H-L)/C Histogram", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
input_barsback = input(4, title="Look Back")
input_percentorprice = input(false, title="% change")
input_smalength = input(13, title="SMA Length")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLCHist = HLCHist(input_barsback, input_percentorprice, input_smalength)
pos = iff(posReversal123 == 1 and posHLCHist == 1 , 1,
iff(posReversal123 == -1 and posHLCHist == -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 ? red: possig == 1 ? green : blue )