Стратегия прорыва двойной скользящей средней колебания

Автор:Чао Чжан, Дата: 2024-01-08 14:43:48
Тэги:

img

Обзор

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

Логика стратегии

Стратегия двойного движущегося среднего колебания использует 20-периодные ценовые каналы и полосы Боллинджера в качестве основных торговых индикаторов. Ценовой канал состоит из движущихся средних самых высоких и самых низких цен, представляющих текущий диапазон колебаний цен. Полосы Боллинджера образуются из средней линии ценового канала и стандартных отклонений, которые интуитивно описывают колебания цен. Когда цены приближаются к верхним и нижним рельсам канала, это указывает на то, что цены могут прорваться через диапазон колебаний и сформировать новый тренд.

В частности, когда быстрый RSI ниже 5, он считается перепроданной зоной, а когда быстрый RSI превышает 99, он считается перекупленной зоной. Кроме того, такие факторы, как направление K-линейных объектов и новые максимумы (низкие) цены, также должны быть рассмотрены, чтобы избежать ложных прорывов.

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

Наибольшее преимущество стратегии двойного колебания колебаний колебаний заключается в том, что она отслеживает точки перегиба среднесрочных ценовых тенденций для получения прибыли. По сравнению с одиночными скользящими средними и каналами двойные полосы Боллинджера более интуитивно отражают колебания цен и объемы. А по сравнению с более длинными циклическими индикаторами, такими как 20-дневные и 60-дневные скользящие средние, она быстрее реагирует на изменения цен и имеет более высокий уровень успеха в захвате поворотов. Кроме того, комбинирование быстрого индикатора RSI может эффективно отфильтровать ложные прорывы. Поэтому эта стратегия может максимизировать вероятность прибыли.

Риски

Стратегия двойного колебания колебаний имеет некоторые риски. Во-первых, среднесрочная торговля сама по себе имеет более высокие риски стоп-лосса. В сильной тенденции ложные прорывы могут происходить несколько раз на среднесрочных показателях, вызывая остановки. Во-вторых, эффективность быстрых индикаторов RSI в оценке зон перекупления и перепродажи будет зависеть от настроения на рынке. Когда на рынке происходят структурные изменения, полезность таких вспомогательных индикаторов уменьшится. Наконец, включение других факторов, таких как цены закрытия, объем и оборот, может улучшить точность решений.

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

Руководство по оптимизации

Есть еще много возможностей для дальнейшей оптимизации стратегии двойной колебающейся средней колебания. Во-первых, оптимизация параметров. Можно протестировать больше параметров цикла, чтобы найти оптимальную комбинацию параметров. Во-вторых, оптимизация модели. Внедрение моделей машинного обучения для более точного определения площадей перекупленных и перепроданных. В-третьих, оптимизация временных рамок. Тест в разных временных рамках, таких как ежедневный и 60 минут отдельно, чтобы определить лучший сценарий применения. В-четвертых, оптимизация состояния. Добавление большего количества показателей объема и цены к сигналам фильтра, таким как тенденция расширения объема и индекс DMI.

Заключение

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


/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.4", shorttitle = "NoroBands str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Use ColorBar")
usecb = input(true, "Use CryptoBottom")
usersi = input(true, "Use RSI")
usemm = input(true, "Use min/max")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
needlo = input(false, defval = false, title = "Show Locomotive")
src = close

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) and (min < min[1] or usemm == false) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 ? 1 : 0
//dn3 = fastrsi > 99 ? 1 : 0

//Locomotive
uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0
plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 0)

longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true)
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Больше