Введение в пробелы и способы их выявления и торговли.

Гэпы составляют важную часть ценового действия. Они различаются по редкости от рынка к рынку. Например, на валютном рынке они обычно случаются при открытии после выходных или всякий раз, когда происходит крупное объявление, а в акциях довольно часто случаются разрывы от одного дня к другому. В этой статье мы увидим различные типы гэпов, а затем запрограммируем сканер на Python, который находит их и применяет хорошо известную практику «заполнения гэпов» в качестве стратегии алгоритмической торговли. Интуитивно понятно, что стратегия должна работать хуже, поскольку ни одна такая простая техника не может обеспечить альфа-версию, но интересно знать, как кодировать эту систему на Python.

Я только что опубликовал новую книгу после успеха Новые технические индикаторы в Python. Он содержит более полное описание и добавление сложных торговых стратегий со страницей Github, посвященной постоянно обновляемому коду. Если вы считаете, что это вас заинтересует, не стесняйтесь перейти по приведенной ниже ссылке или если вы предпочитаете купить версию в формате PDF, вы можете связаться со мной в Linkedin.



Введение в пробелы

Разрыв - это разрыв или разрыв между ценами. Когда рынок торгуется на уровне 100 долларов и внезапно торгуется на уровне 102 долларов без котировки на уровне 101 доллара, на нем образуется разрыв. Это можно увидеть на графиках, где кажется, что между свечами отсутствует кусок. Взгляните на график GBPUSD ниже и обратите внимание на пустое пространство серого цвета между свечами.

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

«Мы называем торговлю на основе гэпов:« Воспроизведение на гэпе ».

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

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

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

На приведенном выше графике показан график пары GBPUSD с разрывным разрывом после паттерна бычьего разворота тройного дна после преодоления его сопротивления. Это дает основания полагать, что движение, вероятно, продолжится выше.

В этой статье мы будем учитывать, что все пробелы должны быть заполнены, и, следовательно, все пробелы, с которыми сталкивается алгоритм, кодируемый ниже, являются общими пробелами. Для объяснения того, почему заполняются пробелы, можно использовать множество объяснений:

  • Чрезмерно оптимистичная или пессимистическая реакция на разрыв, которая заставляет участников пойти в другом направлении, чтобы устранить этот разрыв. Это также называется иррациональным изобилием - термин, впервые введенный Аланом Гринспеном.
  • Разрыв возникает вокруг уровня поддержки или сопротивления, вынуждая его изменить курс.

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



Создание сканера зазора

Подобно тому, как мы обнаруживаем типичные пробелы глазами, мы можем закодировать рекурсивный алгоритм, который делает то же самое за нас. Предположим, мы будем работать с почасовыми данными с 2010 года. Какие переменные мы можем использовать для заполнения функции сканера? Я бы сказал, что переменная ширины самая важная.

  • Ширина: это ваш порог, при котором можно с уверенностью сказать, что есть пробел. По почасовым данным FX мы не можем сказать, что 1 или 2 пункта достойны гэпа. Таким образом, мы можем считать, что для торговли достоин гэпа не менее 5 пунктов. Принимая во внимание спред 0,2, пример максимальной прибыли по EURUSD будет 5–0,2 = 4,8 пункта, что составляет 4,8 доллара США для счета мини-лота с кредитным плечом 1: 100. Я говорю о максимальной прибыли, потому что наша цель в сделке с разрывом - заполнить ее. Это означает, что если ширина разрыва составляет 5 пунктов, и мы торгуем непосредственно на его основе, мы можем ожидать прироста в 4,8 пункта после учета спреда.

Давайте посмотрим на функцию сканера ниже:

def gap_scanner(Data, closing_price, opening_price, gap_width, buy, sell):
    
    for i in range(len(Data)):
            
        if Data[i, opening_price] < Data[i - 1, closing_price] and abs(Data[i, opening_price] - Data[i - 1, closing_price]) >= gap_width:
            Data[i, buy] = 1
            
        if Data[i, opening] > Data[i - 1, closing_price] and abs(Data[i, opening] - Data[i - 1, closing_price]) >= gap_width:
            Data[i, sell] = -1

Если вас также интересуют другие технические индикаторы и использование Python для создания стратегий, то моя книга-бестселлер по техническим индикаторам может вас заинтересовать:



Сигнальная функция учитывает 4 переменные:

  • Переменная Data представляет собой временной ряд OHLC в форме массива, предпочтительно массива numpy.
  • Переменная close_price - это столбец, содержащий цену закрытия (C в OHLC).
  • Переменная open_price - это столбец, содержащий цену открытия (O в OHLC).
  • Ширина разрыва - это расстояние между ценой закрытия и новой ценой открытия, которая только что открылась. Это измеряет минимальное расстояние, на котором разрыв считается подходящим для сделки.
  • Переменные покупка и продажа - это столбцы, в которых размещаются заказы на покупку и продажу. Значение 1 относится к триггеру покупки, а значение -1 относится к триггеру продажи.

Бэк-тестирование стратегии пробелов

Пришло время протестировать стратегию на исторических данных в информационных целях и посмотреть, где чистая упрощенная торговля на разрывах стоит в отношении прибыльности. Таким образом, торговые правила таковы:

  • Открывайте длинную позицию (Покупайте) всякий раз, когда сканер определяет конфигурацию бычьего гэпа. Бычий разрыв - это, конечно, разрыв вниз, который нужно заполнить вверх.
  • Открывайте короткую позицию (продавайте) всякий раз, когда сканер определяет конфигурацию медвежьего гэпа. Медвежий разрыв - это, конечно, разрыв вверх, который нужно заполнить вниз.
  • Сделка открывается и закрывается либо при заполнении, либо останавливается при потере 50 пипсов. Я считаю, что соотношение вознаграждения и риска от 5 до 50 крайне неоптимально, но оно заключается в том, чтобы посмотреть, заполнены ли пробелы или нет.

Посмотрим на результаты:

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

Если вас также интересуют другие технические индикаторы и использование Python для создания стратегий, то моя последняя книга может вас заинтересовать:



Заключение

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

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