EIS (Elder’s Impuse System) с помощью Python и C

EIS — Ипульсная Система Элдера была представлена и объяснена в книгах А. Элдера. Система показывает импульс движения цены и может принимать три цветовых значения:

  • красный — разрешен шорт, запрещен лонг;
  • синий — разрешены оба направления;
  • зеленый — запрещен шорт, разрешен лонг.

Ниже подробные пояснения и примеры кода.

Система стремится упростить торговлю в канале на коротких промежутках времени с удержанием сделки 1-5 дней. Сигналы меняются достаточно быстро и в среднесроке будут давать множество ложных срабатываний.

Из чего состоит

В основе системы лежат:

  • EMA(13) — экспоненциальная скользящая средняя за 13 дней от цены закрытия.
  • MACD с параметрами 12, 26 и 9, то есть EMA(12) от цены закрытия, EMA(26) от цены закрытия и сигнальная EMA(9) от разницы длинной и короткой EMA.

Сигналы:

  • Красный — EMA(13) изменяется вниз (текущее значение ниже предыдущего) и гистограмма MACD изменяется вниз (текущее значение ниже предыдущего).
  • Синий — EMA(13) и гистограмма MACD изменяются в разных направлениях.
  • Зеленый — EMA(13) изменяется вверх (текущее значение выше предыдущего) и гистограмма MACD изменяется вверх (текущее значение выше предыдущего).

Как работает

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

EA: EIS в канале
Сигналы EIS при торговле в канале

Как реализовать на Python

Для этого нам понадобится пакет talib, который можно установить командой ниже, предварительно установив библиотеку TA-Lib:

Пример кода в блокноте IPython (Jupyter). Подключение к базе данных, подсказки, где взять эту самую базу данных и получение истории цен подробнее описаны здесь. Полная версия блокнота доступна в репозитории. Ниже описана обработка истории цены и получение массива со значением EIS: -1 — красный; 0 — синий; 1 — зеленый.

Как реализовать на C

Предварительно установим библиотеку TA-Lib. Теперь задача решается двумя вызовами нужных индикаторов, EMA(13) и MACD(12, 26, 9), и анализом полученных массивов.

Пример кода на C. На вход передаем указатели на массив EMA(13) и гистограммы MACD(12, 26, 9).

Репозиторий

Весь код доступен в репозитории. Вы можете использовать его на свой страх и риск.

Напишите в комментариях, может ли пригодиться EIS в алготорговле?