📈 Как создать индикатор боллинджера в трейдинге на Python
Индикатор полосы боллинджера (волны боллинджера, боллинджер бандс) — один из самых популярных индикаторов для технического анализа. Он помогает трейдерам определять потенциальные движения цены, вовремя входить и выходить из сделок. В этой статье мы рассмотрим, как создать индикатор боллинджера на языке Python и использовать его для анализа финансовых данных.
Что такое индикатор линии боллинджера в трейдинге и как он используется
Это технический индикатор, созданный аналитиком Джоном Боллинджером в 1980-х годах. Он измеряет волатильность рынка и отклонение цен акций, валют или товаров. Полосы Боллинджера можно использовать для самых разных активов, от опционов до криптовалют.
Индикатор выглядит как полоса из трех линий:
- линия посередине — это простая скользящая средняя (SMA) с периодом 20, рассчитанная на дневной график;
- верхняя и нижняя линии — построены на основе SMА, но здесь добавлено стандартное отклонение.
Подписывайтесь на наш телеграм-канал
Мы поможем вам разобраться в торговых инструментах и научим применять их для успешных сделок. На канале мы рассказываем:
📊 О лучших индикаторах. Как использовать RSI, MACD, Moving Averages и другие для точного анализа рынка.
⚙️ О полезных инструментах. От платформ для технического анализа до автоматизированных решений.
🛠️ О создании и кастомизации стратегий. Подбирайте настройки под свои цели и стиль торговли.
💡 О секретах работы с графиками. Учимся читать и интерпретировать данные, чтобы быть на шаг впереди.
Наш контент поможет трейдерам любого уровня разобраться в инструментах, которые делают торговлю проще и эффективнее.
Полосы боллинджера: стратегия для анализа рынка
В торговле боллинджер бэнд помогает точнее определять, когда заходить и выходить из сделок. Например, можно отследить, что закрытие цен почти всегда происходит на уровне, не выходящем за пределы обеих полос индикатора.
Как определять волатильность и тренды на рынке с индикатором боллинджер бандс
Когда полосы расширяются, волатильность увеличивается, сужаются — уменьшается. Эти изменения могут указывать на изменения цен активов. Также Боллинджер считал, что изменение волатильности всегда происходит циклично — на смену высокой приходит низкая, и наоборот.
Линии боллинджера в трейдинге для определения перекупленности и перепроданности
Когда цена достигает верхней линии, это может указывать на перекупленность и говорить о том, что цена будет падать. Когда цена опускается к нижней линии, это может указывать на перепроданность и говорить о том, что цена будет расти.
То есть, если отсутствует явный тренд, мы можем:
- покупать, когда цена уходит ниже полосы индикатора;
- продавать, когда цена уходит выше полосы индикатора.
Как пользоваться индикатором боллинджера для определения тренда и отскока
Трейдеры могут отслеживать, как взаимодействует цена актива с полосами и на основе этого определять смену тренда или отскок цены от полос.
Полосы боллинджера: как пользоваться для определения фигур
С помощью индикатора проще находить M- и W-образные фигуры. М-фигуры появляются на пике, W-фигуры — на дне. Эти фигуры помогают определять паттерны на рынке и вовремя открывать/закрывать сделки.
Как сделать полосы боллинджера в python
Алгоритмический трейдинг позволяет автоматизировать торговлю и увеличивает вероятность заключения прибыльных сделок. С python торговля на бирже становится проще, а настройка полос боллинджера упрощает анализ и помогает глубже понимать, что происходит на рынке. Вот как Как сделать торгового робота на питоне для биржи bybit пошагово, как создать Bollinger Bands на python.
Шаг 1. Подготавливаем данные
Вот какие библиотеки нам понадобятся:
import numpy as np
import pandas as pd
#plotly
import plotly.graph_objects as go
Также чтобы применять индикатор, нам нужны исторические данные по движению цены: акции, валюты и прочее в файле CSV. Поэтому сначала прописываем путь к CSV файлу с данными, которые будем использовать для анализа с помощью Bollinger Bands. В файле должен быть столбец с временными метками и столбец с ценами. В нашем случае данные загружаются с помощью библиотеки pandas из файла на Google Диске.
Также мы проводим предварительную обработку данных: удаляем дубликаты индексов и все данные, которые нам не нужны — например, лишние столбцы.
#path to csv with data
path_6e = ‘path_to_your.csv’
#load data from Gdrive
data_6e = pd.read_csv(path_6e, sep = ‘;’)
data_6e[‘date_time’] = data_6e[‘OPEN_DATE’] + ‘ ‘ + data_6e[‘OPEN_TIME’]
data_6e[‘date_time’] = pd.to_datetime(data_6e[‘date_time’])
#remove all index duplicates
data_6e = data_6e[~data_6e.index.duplicated(keep=’last’)]
#remove not important features (optional)
data_6e.drop([‘OPEN_DATE’, ‘OPEN_TIME’, ‘CLOSE_DATE’, ‘CLOSE_TIME’], axis =1, inplace = True)
data_6e.columns = map(str.lower, data_6e.columns)
data = data_6e
data.head()
Шаг 2. Настройка параметров для эффективного расчета Bollinger Bands в Python
Теперь устанавливаем параметры Bollinger Bands:
- определяем скользящую среднюю (moving average) — в нашем случае считаем ее за последние 21 периода;
- определяем число стандартных отклонений для построения верхней и нижней полос BB — в нашем случае это 2;
- вводим название столбца, в котором будет указана цена закрытия.
# Define the parameters for the Bollinger Band calculation
ma_size = 21 #moving avarage
bol_size = 2
column_name = ‘close’
Шаг 3. Как рассчитать скользящую среднюю Bollinger Bands с помощью Python
Затем считаем скользящую среднюю( Simple Moving Average — SMA) для столбца данных column_name. Данные будут добавляться в новый столбец moving_average.
# Calculate the SMA
data.insert(0, ‘moving_average’, data[column_name].rolling(ma_size).mean())
Шаг 4. Как рассчитать полосы Bollinger Bands с помощью Python
Также рассчитываем верхние и нижние линии BB, добавляя два новых столбца в DataFrame: bol_upper и bol_lower.
# Calculate the upper and lower Bollinger Bands
data.insert(0, ‘bol_upper’, data[‘moving_average’] + data[column_name].rolling(ma_size).std() * bol_size)
data.insert(0, ‘bol_lower’, data[‘moving_average’] — data[column_name].rolling(ma_size).std() * bol_size)
Шаг 5. Удаляем лишние значения
Часто при применении SMA могут возникать пропущенные значения NaN (Not a Number). Поэтому мы добавляем код, который удаляет все строки, содержащее NaN-значения. Этот шаг необязателен — его использование зависит от конкретной ситуации и данных.
# Remove the NaNs -> consequence of using a non-centered moving average (Optional)
if inplace_status == True:
data.dropna(inplace=True)
Шаг 6. Упаковываем код в функцию
После того как мы прописали код, мы упаковываем его в класс и функцию, чтобы в дальнейшем повторно его использовать или импортировать в другие программы.
Внутри функции выполняются следующие действия:
- расчет скользящей средней (moving_average);
- расчет верхней (bol_upper) и нижней (bol_lower) полос Боллинджера;
- вставка столбцов с результатами расчетов в DataFrame data;
- удаление строк с пропущенными значениями NaN.
#Create class with Bollinger bands method
class Indicators():
def getBollingerBands(
data: pd.DataFrame,
ma_size : int,
bol_size : int,
column_name : str,
inplace_status : bool ):
»’
Add Bollinger Band values to dataframe
»’
# Define the parameters for the Bollinger Band calculation
ma_size = 21
bol_size = 2
column_name = ‘close’
# Calculate the SMA
data.insert(0, ‘moving_average’, data[column_name].rolling(ma_size).mean())
# Calculate the upper and lower Bollinger Bands
data.insert(0, ‘bol_upper’, data[‘moving_average’] + data[column_name].rolling(ma_size).std() * bol_size)
data.insert(0, ‘bol_lower’, data[‘moving_average’] — data[column_name].rolling(ma_size).std() * bol_size)
if inplace_status == True:
# Remove the NaNs -> consequence of using a non-centered moving average (Optional)
data.dropna(inplace=True)
return data
data = Indicators.getBollingerBands(data = data,
ma_size = 21,
bol_size = 2,
column_name = ‘close’,
inplace_status = False )
В результате мы получаем готовый индикатор — DataFrame с полосами Боллинджера. Его мы можем использовать для дальнейшего анализа данных, визуализации и принятия торговых решений.
Шаг 7. Визуализация индикатора Bollinger Bands в Python с использованием Plotly
Используем библиотеку Plotly для визуализации Bollinger Bands:
- go.Candlestick — создает график свечей на базе данных о ценах;
- moving_average, bol_lower, bol_upper — строят полосы Боллинджера;
- fig.show — отображает созданный график с ценами свечей и полосами Боллинджера.
#visualization
#plotly
fig = go.Figure(data=[go.Candlestick(x=data.index,
open=data[‘open’],
high=data[‘high’],
low=data[‘low’],
close=data[‘close’])])
# Plot the three lines of the Bollinger Bands indicator
for parameter in [‘moving_average’, ‘bol_lower’, ‘bol_upper’]:
fig.add_trace(go.Scatter(
x = data.index,
y = data[parameter],
showlegend = False,
line_color = ‘gray’,
mode=’lines’,
line={‘dash’: ‘dash’},
marker_line_width=2,
marker_size=10,
opacity = 0.8))
fig.show()
В результате мы визуализируем график свечей с ценами и добавленные полосы Боллинджера на одном графике. А значит — можем анализировать данные, выявлять тренды и потенциальные сигналы на покупку/продажу на основе полос Боллинджера.
Почему трейдерам важно использовать Bollinger Bands и Python
Bollinger Bands на Python может дать трейдеру ценную информацию о состоянии рынка и возможных изменениях цен активов. Используйте BB, чтобы анализировать данные, выявлять тренды и потенциальные сигналы покупки или продажи. Учитывайте, что этот индикатор лучше всего использовать совместно с другими, чтобы получать более точные сигналы и глубже понимать рынок.
Коротко: создаем Bollinger Bands на Python
- Подготавливаем данные. Загружаем и предварительно обрабатываем исторические данные о цене активов из CSV файла.
- Определяем параметры индикатора. Устанавливаем параметры для индикатора Bollinger Bands, такие как период скользящей средней и количество стандартных отклонений для верхней и нижней полос.
- Вычисляем скользящую среднюю (SMA). Рассчитываем простую скользящую среднюю для столбца данных, содержащего цены активов.
- Вычисляем верхние и нижние полосы Bollinger Bands, Рассчитываем верхние и нижние полосы Bollinger Bands на основе скользящей средней и стандартного отклонения.
- Удаляем лишние значения, Очищаем данные от строк, содержащих пропущенные значения NaN.
- Упаковываем код в функцию. Объединяем все шаги в функцию, которую можно повторно использовать или импортировать в другие программы.
- Визуализируем график и индикатор. Используем библиотеку Plotly для визуализации графика свечей с ценами активов и добавленных полос Bollinger Bands на одном графике.