Динамическая стратегия «Тейк-профит» на полосах Боллинджера

SMA
Дата создания: 2024-05-24 17:54:47 Последнее изменение: 2024-05-24 17:54:47
Копировать: 0 Количество просмотров: 599
1
Подписаться
1617
Подписчики

Динамическая стратегия «Тейк-профит» на полосах Боллинджера

Обзор

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

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

  1. Вычисление скользящих средних и стандартного разрыва: используйте простое скользящее среднее (SMA) для вычисления скользящего среднего закроя цены (basis), затем вычислите стандартное разрыв закроя цены относительно скользящего среднего (dev).
  2. Вычислить верхний и нижний рельсы: верхний рельс (upper) как basis + dev *multiplier, нижняя строка ((lower) является basis - dev *multiplier, где multiplier является кратным величине колебаний.
  3. Появление торговых сигналов: появление многосигналов, когда цена закрытия переходит вниз и текущая цена закрытия меньше, чем цена открытия; появление сигналов обратной связи, когда цена закрытия переходит вниз и текущая цена закрытия больше, чем цена открытия.
  4. Динамическая остановка: после открытия позиции, цена остановки рассчитывается в соответствии с ценой открытия позиции и процентом остановки (takeProfitPercentage), а цена остановки - при достижении цены остановки.
  5. Визуализация: на графике изображены полярные полосы, движущиеся средние и торговые сигналы.

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

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

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

  1. Плохая динамика в условиях волатильности: при широких колебаниях рынка, когда цены неоднократно прорываются в пределах полос, эта стратегия может вызвать частые торговые сигналы, что приводит к избыточному количеству сделок и росту стоимости просроченных платежей.
  2. Глубокий отступ в тренде: если тренд длится долго и цена отклоняется от средней линии в течение длительного времени, то отступ может быть глубоким из-за противоположности стратегии.
  3. Трудность выбора параметров: параметры пояса Болинга (например, длина, умножение) имеют большое влияние на эффективность стратегии, но не являются оптимальными параметрами, которые можно было бы использовать повсюду.

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

  1. Комбинирование с трендом: в стратегию включается индикатор тренда (например, движущаяся средняя), при котором можно приостановить торговлю в трендовых ситуациях или торговать по ходу.
  2. Оптимизация стоп-стоп: можно динамически корректировать стоп-стоп в зависимости от показателей волатильности, таких как ATR, с целью получения лучшего соотношения прибыли и риска.
  3. Многофакторная комбинация: рассмотреть возможность использования полос Болинга в сочетании с другими техническими показателями (такими как RSI, MACD и т. Д.), чтобы повысить точность сигнала и уменьшить ложный сигнал.
  4. Фундаментальная фильтрация: после получения торгового сигнала может быть проведена повторная подтверждение с помощью фундаментальных данных (например, доходы, отраслевые данные и т. д.), что повышает устойчивость стратегии.

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

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

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

//@version=5
strategy("Future Price Prediction", overlay=true)

// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0

// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)

// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev

// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")

// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]

// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na

if longCondition
    longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
    shortTakeProfit := close * (1 - takeProfitPercentage / 100)

// Strateji Giriş ve Çıkış
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)

// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
    table.cell(data, 0, 0, "Current Price", text_color=color.white)
    table.cell(data, 1, 0, str.tostring(close))
    table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
    table.cell(data, 1, 1, str.tostring(basis))