Сжать импульс на стратегии обратного движения

Автор:Чао Чжан, Дата: 2023-09-09 23:56:32
Тэги:

imgСтратегия Squeeze Momentum on Reversal - это техническая стратегия торговли, которая использует индикаторы Bollinger Bands (BB) и Keltner Channel (KC) для выявления потенциальных переворотов на рынке.

Стратегия работает, сначала рассчитывая диапазоны BB и KC для указанной длины. Длина по умолчанию составляет 20 бар. Диапазоны BB затем умножаются на указанный множитель, который по умолчанию равен 2,0. Диапазоны KC затем умножаются на указанный множитель, который по умолчанию равен 1,5.

Следующим шагом является проверка того, сжимаются ли между собой полосы BB и KC. Если это так, то стратегия будет вводить длинную позицию, если цена находится выше полосы KC, и короткую позицию, если цена находится ниже полосы KC. Размер позиции будет определяться указанной силой обратного движения, которая по умолчанию составляет 0,0018.

Стратегия выйдет из позиции, когда диапазоны BB и KC расширятся. Сигнал выхода будет генерироваться, когда цена выйдет за пределы диапазона KC.

Стратегия Squeeze Momentum on Reversal - это относительно простая стратегия для реализации, но она может быть эффективной при выявлении потенциальных переворотов на рынке.

Ниже приведено более подробное объяснение различных компонентов стратегии:

Полосы Боллинджера (BB): индикатор BB - это индикатор волатильности, который использует скользящую среднюю величину и стандартное отклонение для создания полос вокруг цены. Канал Келтнера (KC): индикатор KC похож на индикатор BB, но использует другой скользящий средний и расчет стандартного отклонения. Сила отклонения: Сила отклонения - это параметр, который определяет размер позиции, которая принимается, когда стратегия вступает в торговлю. Стратегия Squeeze Momentum on Reversal - это универсальная стратегия, которая может использоваться на различных временных рамках и рынках.

Вот несколько советов по использованию импульса сжатия при стратегии обратного движения:

Используйте стоп-лосс для защиты прибыли. Используйте стоп-лосс, чтобы получить прибыль, когда рынок движется в вашу пользу. Проверьте стратегию на исторических данных, прежде чем использовать ее в реальном времени. Использование различных других индикаторов для подтверждения сигналов, генерируемых импульсом сжатия при стратегии обратного движения. Squeeze Momentum on Reversal Strategy является мощным инструментом, который можно использовать для выявления потенциальных переломов на рынке. Однако важно использовать стратегию мудро и понимать ее ограничения. Следуя советам выше, вы можете увеличить свои шансы на успех при использовании этой стратегии.


/*backtest
start: 2022-09-02 00:00:00
end: 2023-09-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
// @author Odyssee
// @version=2
//
strategy(shorttitle = "Squeeze MOM", title="Squeeze Momentum on Reversal Strategy", overlay=false)

length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
strength = input(0.0018, title="Reversal Strength")

useTrueRange = input(true, title="Use TrueRange (KC)", type=bool)

// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

highest = highest(high, lengthKC)
lowest = lowest(low, lengthKC)
lastsma = sma(close,lengthKC)

valin = linreg(source  -  avg(avg(highest, lowest), lastsma), lengthKC,0)

bcolor = iff( valin > 0, iff( valin > nz(valin[1]), lime, green), iff( valin < nz(valin[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray 
plot(valin, color=bcolor, style=histogram, linewidth=4)
plot(0, color=scolor, style=cross, linewidth=2)

shortcondition = valin > strength and valin < nz(valin[1]) // line become green
longcondition = valin < (strength*-1) and valin > nz(valin[1]) // line become maroon

if(longcondition)
    strategy.entry("BUY", strategy.long)
if(shortcondition)
    strategy.entry("SELL", strategy.short)


Больше