Эта стратегия реализует высокочастотную торговую стратегию, основанную на индикаторе полос Боллинджера. Она определяет верхние и нижние полосы Боллинджера, рассчитывая стандартное отклонение и скользящую среднюю цены. Когда цена касается средней полосы, выполняются длинные или короткие сделки. Каждая сделка инвестирует весь капитал с диапазоном получения прибыли 0,5%. Эта стратегия подходит для высоковолатильных торговых пар и бирж без сборов.
Стратегия использует индикатор полос Боллинджера, чтобы определить, достигли ли цены перекупленного или перепроданного уровня. Полосы состоят из верхней полосы, нижней полосы и средней полосы. Средняя полоса представляет собой простое движущееся среднее числа цен на n дней. Верхняя полоса представляет собой среднюю полосу плюс k раз стандартного отклонения цен на n дней. Нижняя полоса представляет собой среднюю полосу минус k раз стандартного отклонения. k обычно устанавливается на 2. Когда цены приближаются к верхней полосе, это указывает на перекуп. Когда цены приближаются к нижней полосе, это указывает на перепродажу.
Эта стратегия устанавливает период Боллинджера на 20 дней и k на 2. Когда цены касаются среднего диапазона, он сигнализирует о том, что цены возвращаются из экстремальных районов, генерируя торговые сигналы. Длинный сигнал запускается, когда цены пересекают средний диапазон. Короткий сигнал запускается, когда цены падают ниже среднего диапазона.
При вхождении в позиции, весь капитал инвестируется (включая собственный капитал и плавающую прибыль/убыток). Затем устанавливается диапазон прибыли 0,5%. Когда цены движутся выше 0,5%, позиции закрываются на прибыль.
Преимущества этой стратегии:
Использование полос Боллинджера для идентификации торговых сигналов более эффективно для обнаружения экстремалов, чем простые скользящие средние.
Высокочастотный подход быстро достигает прибыли в коротких торговых циклах.
Инвестирование всего капитала максимизирует потенциал прибыли.
Установка диапазона получения прибыли эффективно управляет риском и блокирует прибыль.
Существуют также некоторые риски:
Болинджерские диапазоны чувствительны к параметрам ввода.
Высокочастотная торговля требует обмена с нулевой комиссией, в противном случае комиссионные снижают прибыль.
Вложение всего капитала рискованно, а черные лебеди могут привести к большим потерям.
Сжатый диапазон получения прибыли увеличивает частоту торговли и сложность операций.
Решения:
Оптимизируйте параметры Боллинджера для поиска идеальных настроек.
Используйте биржи с нулевой платой, как Binance Spot.
Установите стоп-потери, чтобы ограничить максимальные потери.
Расширить диапазон получения прибыли, чтобы уменьшить частоту торговли.
Эта стратегия может быть улучшена путем:
Добавление показателей объема, таких как "На балансе объема", для фильтрации подделок.
Оптимизирую параметры Боллинджера, чтобы найти лучшие комбинации.
Использование адаптивных диапазонов стоп-лосса и прибыли, например, расширение диапазонов по мере накопления сделок или выигрышей.
Включение моделей машинного обучения для прогнозирования сигналов покупки/продажи.
Избегайте торгов вокруг крупных событий, таких как отчеты о прибыли, основанные на фундаментальных данных.
Это высокочастотная стратегия, использующая полосы Боллинджера для генерации сигналов, полного размещения позиций и небольших прибылей. Она имеет преимущества в рентабельности, но также и недостатки, такие как чувствительность параметров и контроль рисков. Дальнейшие улучшения могут произойти от улучшения индикаторов, адаптивных остановок, машинного обучения и многого другого, чтобы сделать стратегию более надежной.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia Bollinger Bands", shorttitle="BB Strategy", overlay=true) // Parámetros de las Bandas de Bollinger length = input(20, title="Longitud") mult = input(2.0, title="Multiplicador") // Calcula las Bandas de Bollinger basis = ta.sma(close, length) upper_band = basis + mult * ta.stdev(close, length) lower_band = basis - mult * ta.stdev(close, length) // Condiciones para realizar operaciones price_touches_basis_up = ta.crossover(close, basis) price_touches_basis_down = ta.crossunder(close, basis) // Monto inicial de inversión monto_inicial = 10 // Lógica de la estrategia if (price_touches_basis_up) qty = strategy.equity + strategy.netprofit // Invertir el total del capital más las ganancias en cada operación direction = close > basis ? strategy.long : strategy.short strategy.entry("Operacion", direction, qty = 1) // Lógica para cerrar la operación con un movimiento del 0.5% (take profit) target_profit = 0.005 // Actualizado a 0.5% if (strategy.position_size != 0) direction = strategy.position_size > 0 ? strategy.long : strategy.short strategy.exit("Take Profit/Close", from_entry = "Operacion", profit = close * (1 + target_profit)) // Dibuja las Bandas de Bollinger en el gráfico plot(upper_band, color=color.blue, title="Upper Band") plot(lower_band, color=color.red, title="Lower Band") plot(basis, color=color.green, title="Basis") // Muestra el monto inicial de inversión en la barra del título var label lbl = label.new(na, na, "") label.set_text(lbl, "Monto Inicial: $" + str.tostring(monto_inicial, "#.########")) label.set_xy(lbl, bar_index, low) label.set_color(lbl, color.new(color.blue, 0))