Стратегия прорывной регрессии на основе канала полос Боллинджера


Дата создания: 2024-01-22 10:47:45 Последнее изменение: 2024-01-22 10:47:45
Копировать: 0 Количество просмотров: 552
1
Подписаться
1617
Подписчики

Стратегия прорывной регрессии на основе канала полос Боллинджера

Обзор

Эта стратегия основана на стратегии обратного прорыва в коридоре бурин. Длинные позиции вводятся, когда цена падает вниз по коридору бурин. Стоп-стоп устанавливается как минимальная цена входного прорыва.

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

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

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

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

Эта стратегия имеет следующие преимущества:

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

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

Однако эта стратегия также несет в себе некоторые риски:

  1. Брин-пояса не могут точно определить ценовые тенденции, и цена не обязательно отскочит от падения
  2. Floating P/L может быть первым, кто начнет сдерживать убытки, если крупные рынки продолжат падать
  3. Стоп-пункт близок к верхней полосе, существует риск чрезмерной стоимости остановки

Направление оптимизации стратегии

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ronsword
//@version=5

strategy("bb 2ND target", overlay=true)
 
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 1997"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Sept 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

// STEP 2. See if the current bar falls inside the date range
inTradeWindow = true

// Bollinger Bands inputs
length = input.int(20, title="Bollinger Bands Length")
mult = input.float(2.0, title="Multiplier")
src = input(close, title="Source")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// EMA Settings
ema20 = ta.ema(close, 20)
plot(ema20, color=color.blue, title="20 EMA")

// Entry condition
longEntryCondition = ta.crossover(close, lower)

// Define stop loss level as the low of the entry bar
var float stopLossPrice = na
if longEntryCondition
    stopLossPrice := low

// Top Bollinger Band itself is set as the target
topBandTarget = upper

// Enter long position when conditions are met
if inTradeWindow and longEntryCondition
    strategy.entry("Long", strategy.long, qty=1)

// Set profit targets
strategy.exit("ProfitTarget2", from_entry="Long", limit=topBandTarget)

// Set stop loss
strategy.exit("StopLoss", stop=stopLossPrice)

// Plot Bollinger Bands with the same gray color
plot(upper, color=color.gray, title="Upper Bollinger Band")
plot(lower, color=color.gray, title="Lower Bollinger Band")