Динамическая стратегия торговли по ценовому каналу

Автор:Чао Чжан, Дата: 2023-09-16 19:01:26
Тэги:

Обзор

В статье представлена краткосрочная стратегия торговли, основанная на динамических ценовых каналах.

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

Стратегия основана на следующей логике:

  1. Вычислить динамические ценовые каналы с использованием самых высоких и самых низких цен. Верхняя полоса - это среднее значение наивысшей цены и средней точки канала. Нижняя полоса - это средняя точка минус разница между самой низкой ценой и средней точкой.

  2. Когда цена проходит выше верхней полосы, начинается восходящий тренд. Когда цена проходит ниже нижней полосы, начинается нисходящий тренд.

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

  4. Рассмотрим контра-тенденционные записи, чтобы преследовать рыночный импульс.

  5. Установите процентные ставки прибыли, например, x% от входной цены, чтобы зафиксировать прибыль.

Анализ преимуществ

Преимущества этой стратегии включают:

  1. Динамические каналы отражают изменения рынка в режиме реального времени для лучшего определения тренда.

  2. Сочетание трендов и прорывов фильтрует ложные прорывы.

  3. Противотендентные вложения используют рыночную динамику для получения избыточной доходности.

  4. Снижение прибыли эффективно контролирует риски.

  5. Логика проста и понятна для легкой реализации.

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

Также следует учитывать некоторые риски:

  1. Канал может выйти из строя в период волатильности рынка.

  2. Противотенденционные сделки подвержены убыткам.

  3. Фальшивые прорывы могут привести к плохим сделкам.

  4. Избегайте чрезмерной торговли, чтобы контролировать расходы.

Заключение

Эта стратегия объединяет динамические каналы, прорывы и получение прибыли. При правильной настройке она может быть эффективным инструментом краткосрочной торговли.


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


//@version=2
strategy("Noro's Bands Scalper Strategy v1.1", shorttitle = "Scalper str 1.1", 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")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

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

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

//Trend
sma = sma(close, 20)
smatrend = close > sma ? 1 : close < sma ? -1 : smatrend[1]
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
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")

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

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0

if up7 == 1 or up8 == 1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Больше