
Эта стратегия основана на принципе динамического отслеживания тенденций в каналах и равномерных линиях. Она рассчитывает динамические каналы цен, определяет направление тенденции цены через восходящие и нисходящие каналы, в сочетании с дисперсией цены на равномерных волнах, и генерирует торговый сигнал.
Эта стратегия основана на следующих принципах:
Расчет динамического ценового канала. Средняя линия канала рассчитывается с помощью максимальной и минимальной цены, верхняя линия канала - средняя линия + средняя линия ценовой дисперсии, нижняя линия - средняя линия ценовой дисперсии.
Определение направления тренда. Определяется как bullish, когда цена выходит на траекторию; как bearish, когда цена выходит из траектории.
Шум от случайных колебаний цены на фибровых волнах с использованием средней степени дисперсии цены за определенный период времени.
Позитивный сигнал - это сигнал к покупке, когда цена закрытия цикла ниже цены открытия, и позитивный сигнал - это сигнал к продаже, когда цена закрытия цикла выше цены открытия.
Эта стратегия имеет следующие преимущества:
Также существуют следующие риски:
Решение проблемы:
Эта стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия, объединяющая идеи динамического канала и равномерного трендового суждения, хорошо работает в уловии трендового направления на средних и коротких линиях. Однако существуют определенные ограничения, которые требуют дальнейшего тестирования и оптимизации для адаптации к более широким рыночным условиям.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", 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, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close
//PriceChannel 1
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
//Trend
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 = 90)
//up = and trend == 1 ? 1 : 0
//dn = and trend == -1 ? 1 : 0
up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0
longCondition = up == 1
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)