Skip to content

Instantly share code, notes, and snippets.

@ntngl
Created August 17, 2020 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ntngl/5da6fb81dd0afcd87bbd511dd4a29862 to your computer and use it in GitHub Desktop.
Save ntngl/5da6fb81dd0afcd87bbd511dd4a29862 to your computer and use it in GitHub Desktop.
Script for traders

Стратегия

Первая из реализованных торговых стратегий для арбитража двух бирж (?)

Параметры стратегии

  • Количество минутных отрезков по котировкам для расчета среднеквадратичного отклонения
  • Объем одного ордера
  • Максимальная позиция
  • Поправочный коэффициент для входа (к1)
  • Поправочный коэффициент для выхода (к2)
  • Ширина котирования
  • Минимальное применимое среднеквадратичное отклонение

Алгорит торговли

Получаем историю котировок в виде candle chart по биржам в минутных отрезках в заданном количестве (см. параметры) и считаем медиану и среднеквадратичное отклонение

Разница между ценами продаж

formula

Где: a - bid/offer на первой ноге b - bid/offer на второй ноге

Среднее

formula

Где: D - разница n - количество точек, для которых взята разница

Среднеквадратичное отклонение

formula

Активная торговля с менеджментом ордеров ведется на активно котируемой бирже (первая нога) по двум противоположным направлениям - покупка и продажа. В свою очередь, каждое направление имеет вход и выход сделки.

Иными словами, на первой ноге выставляем два лимитных ордера с флагом "Post only": на покупку и на продажу, с заданными параметрами и рассчитанными ценами

На покупку: расчетная цена = bid инструмента на второй ноге + Средняя – Откл*К1

formula

На продажу: расчетная цена = ask инструмента на второй ноге + Средняя + Откл*К1

formula

Где

  • P - расчетная цена
  • A - Среднее
  • D - Среднеквадратичное отклонение
  • Кх - поправочный коэффициент

Делаем проверку на ширину котирования для каждого ордера

formula

Если условие не выполняется, то все ордер снимается до восстановления условий

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

На выход из покупки:

formula

На выход из продажи:

formula

Отслеживаем изменение котировок, т.е. мы смотрим каждое изменение цены на второй ноге.

Производим менеджмент ордеров на котируемой ноге При продаже и выходе из продажи: новый расчетный bid выше текущего - снимаем заявку, ставим новую, новый bid ниже текущего - меняем цену у активного ордера При покупке и выходе из покупки: новый расчетный bid ниже текущего - снимаем заявку, ставим новую, новый bid выше текущего - меняем цену у активного ордера

Как только любая сторона набирает заданную максимальную позицию, эта сторона считается закрытой

После закрытия всего объема по обеим сторонам торговая сессия считается закрытой

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment