Стратегия пересечения полос Боллинджера с одной скользящей средней


Дата создания: 2023-12-22 14:10:14 Последнее изменение: 2023-12-22 14:10:14
Копировать: 1 Количество просмотров: 495
1
Подписаться
1237
Подписчики

Стратегия пересечения полос Боллинджера с одной скользящей средней

Обзор

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

Стратегический принцип

Эта стратегия основана на следующих показателях:

  1. Средняя линия ((SMA): рассчитывается как простая скользящая средняя цены закрытия CLOSE, которая представляет тенденцию цены.
  2. Брин на рельсе: представляет собой линию углового сопротивления, прорыв которой обозначает сильный прорыв.
  3. Брин-пояса вниз от рельса: означают поддержку, а падение от нее означает вероятность обратного тренда.

Конкретные торговые сигналы:

  1. Сигнал покупать: покупать, когда цена закрытия прорывает границу Бринна и находится на подъеме.
  2. Сигнал продажи: Продажа осуществляется, когда цена закрытия падает ниже отметки Бринского пояса, а средняя линия находится в состоянии падения.

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

Стратегические преимущества

  1. Правила простые, понятные и легко применяемые.
  2. Используйте среднюю линию, чтобы определить направление тенденции, избегайте курса быков и медведей.
  3. Брин, находясь на нижней полосе, определил локальную точку прорыва и точно выловил сигнал прорыва.
  4. В результате, по мнению экспертов, в этом году будет произведено меньше выводов, что соответствует предпочтениям большинства людей в отношении риска.

Стратегический риск

  1. Одиночные показатели могут создавать ошибочные сигналы, которые можно уменьшить, оптимизируя параметры.
  2. Стоп-пойнты могут быть скорректированы в зависимости от того, насколько сильны они будут в случае крупных рыночных потрясений.
  3. Если вы не можете получить больше прибыли в условиях значительной тенденции, вы можете рассмотреть возможность увеличения позиции.

Оптимизация стратегии

  1. Оптимизация среднелинейных циклов для большего количества сортов.
  2. Добавление фильтров для других показателей, таких как MACD, уменьшает ошибочный сигнал.
  3. Динамическая коррекция стоп-пойнтов, ограничение максимального вывода.
  4. Вместе с идеями управления капиталом, они делают прибыль и убыток более устойчивыми.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="single sma cross", shorttitle="single sma cross",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,overlay=true,currency="USD")
s=input(title="s",defval=90)
p=input(title="p",type=float,defval=.9,step=.1)

sa=sma(close,s)
plot(sa,color=red,linewidth=3)
band=stdev(close,s)*p
plot(band+sa,color=lime,title="")
plot(-band+sa,color=lime,title="")

// ===Strategy Orders============================================= ========
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

longCondition = crossover(close,sa+band) and rising(sa,5)
shortCondition = crossunder(close,sa-band) and falling(sa,5)
crossmid = cross(close,sa)


strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = shortCondition)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = longCondition)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)