Стратегия TTM для прорыва

Автор:Чао Чжан, Дата: 2023-11-21 15:07:38
Тэги:

img

Обзор

Это стратегия прорыва в торговле бинарными опционами, которая использует индикатор импульса RSI в сочетании с индикатором полос Боллинджера BB. С точки зрения своевременности индикатор TTM используется для определения того, находится ли рынок в состоянии консолидации, тем самым повышая надежность входа.

Принцип

Основная логика стратегии заключается в определении направления прорыва на основе полос Боллинджера и индикатора RSI при условии, что набор индикаторов TTM образует прорыв. В частности, стратегия использует 20 периодов BB и 30 периодов RSI. Когда рынок проходит через сжатие, она определяет направление открытия, когда RSI находится в пределах определенного диапазона колебаний (30-70) и BB имеет большой прорыв (0,15-кратный диапазон колебаний). Кроме того, стратегия также проверяет направление открытия предыдущей K-линии перед открытием позиции, чтобы избежать ненужного повторного открытия.

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

Основными преимуществами этой стратегии являются:

  1. Использование индикатора TTM для оценки состояния торговли на рынке и избежания бессмысленной торговли на консолидирующемся рынке. Сжатие и расширение индикатора TTMS может лучше определить направление основного тренда и обеспечить ориентиры для открытия позиций.

  2. Сочетание RSI и BB может сделать открытие позиций более надежным. Индикатор RSI оценивает, являются ли цены перекупленными или перепроданными; в то время как индикатор BB оценивает, произошел ли крупный прорыв цен. Сочетание этих двух делает стратегию выгодной от сильных направленных тенденций.

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

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

Основными рисками этой стратегии являются:

  1. Риск сбоя. Когда индикатор TTM не оценивает тенденцию точно, RSI и BB все еще могут иметь ложные прорывы. В это время стратегия открывает позиции на основе индикаторов и может в конечном итоге попасть в ловушку. Чтобы контролировать этот риск, подумайте о сокращении размера позиции.

  2. Когда рынок колеблется, легко потерять. Когда рынок находится в колеблющемся состоянии, производительность индикатора TTM не идеальна. Индикаторы RSI и BB также могут давать несколько ложных сигналов. В это время очень легко формировать убытки. Чтобы контролировать этот риск, избегайте использования этой стратегии на очевидных колеблющихся рынках.

Оптимизация

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

  1. Оптимизировать параметры индикатора TTM для корректировки длины и коэффициентов индикатора, что может улучшить суждение TTM о консолидации и прорыве.

  2. Оптимизировать параметры RSI и BB. Соответственно сокращение цикла может получить более своевременные и точные сигналы прорыва. В то же время пропускная способность BB-канала также может тестировать различные значения.

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

  4. Для других видов параметров (например, 5 минут) параметры индикатора могут быть повторно протестированы и оптимизированы для получения лучших комбинаций параметров.

Заключение

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


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

//@version=4
strategy (title="EA_Binary Option Spfrat Strategy", shorttitle="Spyfrate_Binary Option 5min", overlay=false, pyramiding=1999, initial_capital=60000, currency=currency.USD)

// TTM Squeeze code
lengthttm = input(title="Length",  defval=20, minval=0) 
bband(lengthttm, mult) =>
	sma(close, lengthttm) + mult * stdev(close, lengthttm)
keltner(length, mult) =>
	ema(close, lengthttm) + mult * ema(tr, lengthttm)

e1 = (highest(high, lengthttm) + lowest(low, lengthttm)) / 2 + sma(close, lengthttm)
osc = linreg(close - e1 / 2, lengthttm, 0)
diff = bband(lengthttm, 2) - keltner(lengthttm, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? green : red
conso = diff >= 0?1:0

//plot(osc, color=osc_color, style=histogram, linewidth=2)
//plot(0, color=mid_color, style=circles, linewidth=3)

// BB Init
source = close
length = input(50, minval=1)
mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)

//RSI CODE
src = close, 
up = rma(max(change(src), 0), 30)
down = rma(-min(change(src), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1]) 
//Rule
long1 = rsi>50.5 and rsi<70 and  bbi>0.15  and osc>0.00100 and conso>0
short1 = rsi<49.5 and rsi>30 and  bbi<-0.15 and osc<-0.00100 and conso>0
//
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[5] == 1
shortclose = short[5] == 1

//Alert

strategy.entry("short", strategy.short, when=short)
strategy.entry("long", strategy.long, when=long)
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)

//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//strategy.exit(id="Stop", profit = 20, loss = 100)

Больше