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


Дата создания: 2024-01-08 14:43:48 Последнее изменение: 2024-01-08 15:51:13
Копировать: 0 Количество просмотров: 570
1
Подписаться
1617
Подписчики

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

Обзор

Двойная среднелинейная взрывная стратегия - это стратегия короткой торговли, использующая систему двойной среднелинейной системы. Эта стратегия строит торговый сигнал на основе ценового канала и двойной бурин-полосы, дополненный быстрым показателем 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)