Войти
Главная / Data science в трейдинге / 🤖 ИИ бот для трейдинга Trade2Good: автоматизация торговли на бирже
Хотите зарабатывать на трейдинге?

Подписывайтесь на наш телеграм-канал для трейдеров — с глубокой аналитикой и рабочими стратегиями

Подписаться

Как собрать свой журнал для тестирования стратегии? Заберите бесплатный гайд

Гайд от нашей команды поможет вам систематизировать торговлю и принимать взвешенные решения

Подтвердите согласие

🤖 ИИ бот для трейдинга Trade2Good: автоматизация торговли на бирже

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

Как через торгового бота ИИ автоматически анализировать графики OHLC

График OHLC — это диаграмма изменения цены актива за период времени. 

Диаграмма показывает 4 параметра: 

  • O — open (цена открытия бара); 
  • H — high (максимальная цена бара) 
  • L — low (минимальная цена бара)
  • C — close (цена закрытия бара)
График OHLC
График OHLC

Графики OHLC помогают трейдерам понять, как развивается цена в течение дня и какие основные характеристики движения цен были в этот день: 

  • начальная (open); 
  • максимальная (high); 
  • минимальная (low); 
  • заключительная (close) цена

Обычно трейдеры анализируют графики OHLC вручную, чтобы: 

Выявлять тренды. Например, если цена закрытия выше цены открытия и тело свечи зелёное — цена росла в течение времени и актив находится в восходящем тренде. 

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

Выбирать время для покупки/продажи.  Например, если актив находится в восходящем тренде, это хороший момент для его покупки.

Торговый робот бот анализирует графики OHLC

Определяет восходящий тренд. Бот находит, когда максимумы, минимумы и цены закрытия находятся выше цен открытия. 

Восходящий тренд на графике. Бот Trade2Good. 
Восходящий тренд на графике. Бот Trade2Good. 

 if (data[‘high’][l_idx] > data[‘high’][l_idx — 1]) and \

            (data[‘low’][l_idx] > data[‘low’][l_idx — 1]) and \

            (data[‘close’][l_idx] > data[‘close’][l_idx — 1]):

        return ‘Upward Trend’

Определяет нисходящий тренд. Бот находит, когда максимумы, минимумы и цены закрытия находятся ниже цен открытия.

Нисходящий тренд на графике. Бот Trade2Good.
Нисходящий тренд на графике. Бот Trade2Good.

elif (data[‘high’][l_idx] < data[‘high’][l_idx — 1]) and \

            (data[‘low’][l_idx] < data[‘low’][l_idx — 1]) and \

            (data[‘close’][l_idx] < data[‘close’][l_idx — 1]):

        return ‘Downward Trend’

Определяет флэт. Флэт — состояние рынка, при котором цена движется в определенном диапазоне без четкого направления. Бот Trade2Good автоматически определяет флэт. 

Флэт на графике. Бот Trade2Good.
Флэт на графике. Бот Trade2Good.

 elif (data[‘high’][l_idx] < data[‘high’][l_idx — 1]) and \

            (data[‘low’][l_idx] > data[‘low’][l_idx — 1]):

        return ‘Flat Trend’

    else:

        return ‘Error’

📈 Сейчас Trade2Good доступен в тестовом режиме, и вы можете использовать его бесплатно.

Бот определяет уровни сопротивления и поддержки

Уровни сопротивления и поддержки помогают прогнозировать движение цен. На этих уровнях цена останавливается и начинает движение в противоположную сторону: 

  • на уровне поддержки цена прекращает снижаться и начинает расти; 
  • на уровне сопротивления цена прекращает расти и начинает падать.  

С помощью бота Trade2Good можно находить уровни, чтобы: 

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

 levels = {}

    lowest_value = min(data.low)

    highest_value = max(data.high)

    values = [val for i in range(len(data) — n_weeks, len(data)) for val in (data.high[i], data.low[i])]

    intervals = [(i, i + delta) for i in np.arange(lowest_value, highest_value, delta)]

    for low, high in intervals:

        count = sum(1 for v in values if low <= v < high)

        if count > 1:

            print(list(v for v in values if low <= v < high))

            levels[(low+high)/2] = count

    return levels

Бот ищет точки разворота 

Бот находит графические фигуры, которые говорят о высокой вероятности разворота цены. 

Определяет разворот тренда — с нисходящего в восходящий

Разворот из нисходящего тренда в восходящий. Бот Trade2Good.
Разворот из нисходящего тренда в восходящий. Бот Trade2Good.

 if (data.close[i] > data.close[i — 1]) and \

                (data.close[i — 1] < data.close[i — 2]) and \

                (data.high[i] > data.high[i — 1]) and \

                (data.high[i — 1] < data.high[i — 2]) and \

                (data.low[i] > data.low[i — 1]) and \

                (data.low[i — 1] < data.low[i — 2]):

            if i == (len(data) — 1):

                flag = True

            data[‘local_bottom’].iloc[i — 1] = data.low[i — 1]

Определяет разворот тренда — с восходящего в нисходящий

 if (data.close[i] < data.close[i — 1]) and \

                (data.close[i — 1] > data.close[i — 2]) and \

                (data.high[i] < data.high[i — 1]) and \

                (data.high[i — 1] > data.high[i — 2]) and \

                (data.low[i] < data.low[i — 1]) and \

                (data.low[i — 1] > data.low[i — 2]):

            if i == (len(data) — 1):

                flag = True

            data[‘local_top’].iloc[i — 1] = data.high[i — 1]

Робот трейдер применяет индикаторы 

Индикатор Фракталы

Фракталы — индикатор, который помогает определить направление развития цены. Выглядит он как набор из 5 свечей, где цена средней свечи выше (или ниже) двух свечей по обе стороны от нее. Центр фрактала — локальный минимум или максимум в зависимости от его направления. На графике индикатор выглядит как стрелки вверх и вниз. 

Находить фракталы вручную трудоемко — проще воспользоваться ботом. Торговый робот для биржи автоматически определяет фракталы на графике и помогает увидеть потенциальные точки разворота рынка.

Фракталы — красные и зеленые стрелки. Бот Trade2Good.
Фракталы — красные и зеленые стрелки. Бот Trade2Good.

  upper_fractal = (data[‘high’].shift(2) < data[‘high’].shift(1)) & \

                            (data[‘high’].shift(1) < data[‘high’]) & \

                            (data[‘high’] > data[‘high’].shift(-1)) & \

                            (data[‘high’].shift(-1) > data[‘high’].shift(-2))

    lower_fractal = (data[‘low’].shift(2) > data[‘low’].shift(1)) & \

                            (data[‘low’].shift(1) > data[‘low’]) & \

                            (data[‘low’] < data[‘low’].shift(-1)) & \

                            (data[‘low’].shift(-1) < data[‘low’].shift(-2))

    return upper_fractal, lower_fractal

Индикатор ZigZag

Индикатор ZigZag определяет на графике самые важные ценовые минимумы и максимумы — их он соединяет прямыми линиями и игнорирует мелкие колебания цены. На графике ZigZag выглядит как ломаная линия, наложенная поверх цены. 

Индикатор также встроен в бота Trade2Good — c его помощью можно определять ключевые движения цены, принимать обоснованные решения об открытии и закрытии позиции.

Индикатор ZigZag — ломаная синяя линия Бот Trade2Good.
Индикатор ZigZag — ломаная синяя линия Бот Trade2Good.

Часть кода для индикатора ZigZag в боте:

def pivots(src_raw, length, isHigh):

        src = list(reversed(src_raw))

        bar_index = list(range(len(src)))

        for start in range(0, len(src)):

            if start + 2 * length + 1 > len(src) — 1:

                return

            p = 0

            if length < len(src) — start:

                p = src[start + length]

            if length == 0:

                yield 0, p

            else:

                isFound = True

                for i in range(start, start + length):

                    if isHigh and src[i] > p:

                        isFound = False

                    if not isHigh and src[i] < p:

                        isFound = False

                for i in range(start + length + 1, start + 2 * length + 1):

                    if isHigh and src[i] >= p:

                        isFound = False

                    c = not isHigh and src[i] <= p

                    if c:

                        isFound = False

Индикаторы Market Profile и External Timeframe

Индикатор Market Profile помогает определять, на каких уровнях цены проходило большинство торговых операций и насколько сбалансирован рынок. Если цена движется вне области, где проходило большинство сделок, это может указывать на начало нового тренда. Индикатор выглядит как серые прямоугольники слева от графика. Чем больше высота у прямоугольника, тем больше в этот период происходило сделок.

Индикатор Market Profile (серые прямоугольники слева)
Индикатор Market Profile (серые прямоугольники слева)

Индикатор External Timeframe дает возможность смотреть на рынок с разных перспектив, определять более крупные тренды или уровни поддержки/сопротивления, которые могут быть не так заметны на меньших таймфреймах.

На графике External Timeframe выглядит как 4-хчасовые интервалы в виде свечей, объединенные в большие дневные интервалы цветными прямоугольниками. Цвет прямоугольника аналогичен цвету свечи. Например, на графике ниже видно общий восходящий дневной паттерн с 12 по 16 сентября.

Индикатор External Timeframe (крупные цветные прямоугольники)
Индикатор External Timeframe (крупные цветные прямоугольники)

charts.chart_mpet(df, symbol, interval, period)

chart = open(‘images/chart_’ +

                                 chart_name + ‘_’ +

                                 symbol + ‘_’ +

                                 str(interval) + ‘_’ +

                                 str(period) + ‘.png’, ‘rb’)

Бот трейдер выявляет паттерн пустоты

Паттерн пустоты («void fill pattern») говорит о том, что на рынке есть сильное давление на покупку или продажу, из-за чего цена быстро двигается через разные уровни. 

«Пустота» паттерна — зона,  где за короткое время не было значительной торговли между конкретными уровнями цен — минимумом/максимумом двух периодов назад или текущего периода. Паттерн пустоты помогает предположить,что рынок вернется к этим зонам-«пустотам», чтобы их заполнить. 

Зона пустоты на графике — прямоугольник бежевого цвета. Бот Trade2Good.
Зона пустоты на графике — прямоугольник бежевого цвета. Бот Trade2Good.

Определяет восходящий паттерн пустоты 

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

  if (data.high[l_idx] > data.high[l_idx — 1] > data.high[l_idx — 2]) and \

            (data.low[l_idx] > data.low[l_idx — 1] > data.low[l_idx — 2]) and \

            (data.low[l_idx] > data.high[l_idx — 2]):

        return True, data.low[l_idx], data.high[l_idx — 2]

Определяет нисходящий паттерн пустоты 

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

  elif (data.high[l_idx] < data.high[l_idx — 1] < data.high[l_idx — 2]) and \

            (data.low[l_idx] < data.low[l_idx — 1] < data.low[l_idx — 2]) and \

            (data.high[l_idx] < data.low[l_idx — 2]):

        return True, data.high[l_idx], data.low[l_idx — 2]

Коротко: как робот для трейдинга упрощает торговлю

Вот для чего можно использовать торговых роботов — и бота Trade2Good в частности:

Поиск и определение: трендов и точек разворота цены, уровней поддержки и сопротивления, индикаторов, поиска сигналов и паттернов.

Ускоренный анализ рынка. Обычно трейдеры анализируют графики вручную — робот торгов на бирже дает возможность автоматизировать анализ. С ним вы можете быстро интерпретировать большие объемы данных с бирж. С ним вы можете автоматизировать принятие решений о сделках, глубже понимать рыночную админку и принимать обоснованные решения на основе конкретных данных о рынке. 

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

Хотите разбираться в рынках и зарабатывать на них при любых условиях?

Подписывайтесь на наш Telegram-канал о финансах и Data Science в трейдинге:
– Делаем глубокую аналитику
– Тестируем и разрабатываем торговые стратегии
– Кодим индикаторы и алгоритмы
– Собираем базу знаний для трейдеров

Подписаться
Хотите разбираться в рынках и зарабатывать на них при любых условиях?

Подписывайтесь на наш Telegram-канал о финансах и Data Science в трейдинге:
– Делаем глубокую аналитику
– Тестируем и разрабатываем торговые стратегии
– Кодим индикаторы и алгоритмы
– Собираем базу знаний для трейдеров

Подписаться

Научитесь читать графики всего за 15 минут

Заберите простой мини-гайд для быстрого старта в трейдинге. Идеально для новичков

Подтвердите согласие
Индикаторы-осцилляторы: секреты команды трейдеров
Привет! На связи команда трейдеров-аналитиков и наставников, которые не понаслышке знают, как работает рынок. Мы не только торгуем сами, но...
Читать далее
Аналитика ETHUSDT на новую неделю (#35)
Прошлая неделя оказалась внешней, выйдя за рамки предыдущей. Тренд цены продолжает свое активное движение наверх, победа за покупателями. Мы продолжаем...
Читать далее
Сколько времени потребуется для освоения основ инвестирования
Сегодня тема инвестиций интересует все больше людей. Многие хотят начать инвестировать, но не понимают, с чего начать, сколько нужно денег...
Читать далее