EasyTrade - подробная инструкция по торговле на криптовалютных биржах Poloniex и Bitfinex

Мы рассмотрим подключение EasyTrade к биржам Poloniex и BitFinex, ручную и автоматическую торговлю в связке с Omega Research, экспорт данных в Global Server и загрузку исторических данных с бирж.

  1. Подключение EasyTrade к биржам Poloniex и BitFinex
  2. Добавление инструментов для торговли
  3. Настройка экспорта данных по тикерам из EasyTrade в Omega Research
  4. Настройка биржи в Global Server
  5. Добавление и настройка тикеров (символов) в Global Server
  6. Создание торгового робота в Omega Reseash и его автоматическая торговля через EasyTrade
  7. Перезапуск всей связки EasyTrade - Omega Research
  8. Скачивание исторических данных с бирж Poloniex и Bitfinex

Начальные условия:

  1. У вас должны быть активные аккаунты на биржах с разрешенной торговлей, т.е. завершена регистрация, пройдена верификация, если она необходима и должны быть средства на биржевых счетах. Причем EasyTrade различает торговый и маржинальный счета и может совершать сделки используя каждый из них.
  2. На вашем компьютере должны быть установлены и настроены для совместной работы Omega Research и Global Server. Также должен быть установлен и лицензирован EasyTrade.

Вся связка программ работает следующим образом:

  1. EasyTrade получает котировки в реальном времени с криптобирж и передает их в Global Server
  2. Omega Research строит графики по данным из Global Server и выполняет автоматическую торговлю по заданным алгоритмам. Алгоритмы (торговые системы) создаются пользователем.
  3. EasyTrade получает из Omega приказы и исполняет их на бирже через API.

Подключение EasyTrade к биржам Poloniex и BitFinex

EasyTrade подключается к биржам через специальный шлюз для роботов - API, через него он получает от бирж необходимую информацию и совершает сделки от вашего имени. Чтобы EasyTrade мог подключиться к вашему счету, ему необходимо указать "коды доступа" - API ключи для вашего аккаунта на бирже. Их необходимо получить на сайте биржи.

На Poloniex это делается так:
a) Авторизуйтесь на сайте биржи и в правом верхнем углу нажмите на пиктограмму гаечного ключа, в выпадающем меню выберите пункт API KEYS:



b) Если вы видите надпись "API access is disabled", то нажмите кнопку "Enable API", возможно для подтверждения биржа попросит ввести код 2-факторной аутентификации или пароль или запросит подтверждение по email, это зависит от ваших настроек безопасности.

c) После подтверждения появятся надпись "API access is enabled" и кнопка "Create New Key". Нажимаем ее. Возможно биржа опять попросит подтверждения как в предыдущем пункте.



d) API ключи сгенерированы и вы увидите такую табличку:



Нас интересуют только два значения: API Key и Secret. Скопируйте себе их временно в файл или запомните, где они находятся на бирже. Эти ключи нам понадобятся всего один раз, когда будем подключать EasyTrade к бирже.
Все остальные настройки в этой таблице оставьте как есть, по умолчанию.

Получение API ключей на BitFinex:
a) Авторизуйтесь на сайте биржи и в правом верхнем углу нажмите на пиктограмму силуэтом человечка в круге и в выпадающем меню выберите пункт API:



b) В открывшемся окне кликните на "Create New Key" (1). В раскрывшемся окне отметьте чекбоксы как на картинке, это необходимо для нормальной работы EasyTrade.
– Account Info - Read
– Account History - Read
– Orders - Read and Write
– Margin Trading - Read and Write
– Margin Funding - Read and Write
– Wallets - Read
– Withdraw - отключено
В поле "Label Your API Key" (2) введите какое-нибудь название для себя, чтобы помнить что это за ключи, например "ET-robot".
После давите кнопку "Generate API key" (3). Возможно биржа попросит у вас подтвердить создание ключей вводом кода 2-факторной аутентификации и/или email.



c) После этого API ключи сгенерированы и вы увидите табличку:



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

 Подключение EasyTrade к биржам Poloniex и BitFinex (ввод API ключей)

a) Запустите EasyTrade. Если это первый запуск, то программа попросит ввести лицензионный ключ и после этого нормально запустится. В меню "Сервис" выберите пункт "Терминалы"



b) Раскроется окно "Менеджер терминалов"



Внесите значения API Key и Secret в соответствующие поля для бирж Poloniex и BitFinex, отметьте чекбоксы "Подключение" и нажмите кнопку "Применить".

c) После этого EasyTrade автоматически подключится в биржам и будет поддерживать это подключение все время, пока он работает. В нижней части окна программы будут отмечены статусы "Poloniex OK" и " BitFinex OK". Если вы подключили только одну биржу, то статус будет доступен только для нее.


Также в нижнем окне "Позиции" программа покажет все счета на биржах, на которых у вас есть средства и их количество. количество может быть отрицательным на маржинальных счетах, если у вас открыты короткие позиции.

  

Добавление инструментов для торговли


a) В меню "Сервис" выберите пункт "Дата Менеджер"



b) В открывшемся окне "Дата Менеджер" нажмите кнопку "Добавить"



с) Откроется окно "Добавление инструмента"



— Из списка "Поставщик" выберите биржу с которой вы хотите взять торговый инструмент
— Из списка "Код в терминале" выберите сам инструмент
После этого остальные поля заполнятся автоматически. Значения "Валюта" и "Базовый контракт" не имеют смысла на криптобиржах, поэтому их можно игнорировать.
В поле "Тикер" впишите название тикера для вашего инструмента. По этому имени Global Server будет получать данные. Название тикера может быть любым, но лучше давать осмысленное имя, например BTC/USDT_POLO.

 

Важно: В названии тикера можно использовать только БОЛЬШИЕ буквы! Если будет хоть одна маленькая буква, то формально ошибки не возникнет, но Omega Research не сможет получить данные по этому тикеру из Global Server.

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

  

Настройка экспорта данных по тикерам из EasyTrade в Omega Research


a) В меню "Сервис" выберите пункт "Экспорт данных"



b) В открывшемся окне "Менеджер экспорта" нажмите кнопку "Добавить"



с) Откроется окно "Добавление экспортируемого эл..."



— Из списка "Тикер" выберите первый
— В разделе "Интервалы вывода данных" в первом пункте выставьте диапазон 00:00:00 ... 23:59:59, т.к. криптобиржи работают 24/7 без перерывов. Остальные интервалы можно не трогать, т.к. первый покрывает полные сутки.
— Отметьте чекбокс "Не выводить повторно"
— Отметьте чекбокс "Экспорт в Omega Research \ MetaStock"
Нажмите "OK". Последовательно добавьте и настройте все тикеры из списка так, как описано выше.

d) В окне "Менеджер экспорта" нажмите кнопку "Старт всех". Возле всех тикеров появятся синие треугольники.



Закройте окно "Менеджер экспорта". На этом добавление инструментов и настройка тикеров закончены.

 

Настройка биржи и добавление тикеров в Global Server

Global Sever - основной коннектор к биржам и брокерам, сборщик, хранитель и распорядитель данных для Omega Research. EasyTrade выступает поставщиком данных для Global Sever, получая их с криптобирж.
Мы создадим или отредактируем существующую биржу под особенности криптоторговли и добавим в нее тикеры инструментов, которыми будем торговать.

a) Запустите Global Sever, в меню "Tools" выберите пункт "Edit Exchange List"



b) В открывшемся окне "Exchange Dictionary Setup" выберите любую биржу из списка и нажмите кнопку "Edit Exch". Эту биржу мы будем использовать для добавления тикеров криптовалют. Для примера используем Bern Stock Exchange, BSE.



c) В открывшемся окне "Edit Exchange" нужно внести следующие изменения:



— Holiday List установить в None
— Session Time in exchange's local time zone выставить как на картинке: время сессии с 12:01am до 11:59pm, отметить все дни недели.
Торги на криптобиржах проходят 24/7 без перерывов и выходных, но, к сожалению, Global Server и Omega Research не поддерживают непрерывные сессии. Поэтому этими настройками мы перекрываем максимально возможные периоды суток и недели. С такими настройками не будут учитываться данные за последнюю минуту суток, но т.к. EasyTrade продолжает транслировать данные, то они будут учтены в первом баре следующих суток. На реальную торговлю это, как правило, не оказывает значимого влияния.

Важное замечание о локальном времени пользователя и бирж. Биржа Poloniex работает по времени GMT+0 и изменить это нельзя. BitFinex позволяет настроить часовой пользователя на сайте биржи. Omega Research будет отображать данные на графиках по локальному времени пользователя установленному на компьютере/сервере. Для облегчения восприятия графиков и унификации времени предлагаем везде выставить одинаковый часовой пояс GMT+0:
– на компьютере/сервере с установленными Global Server, Omega Research, EasyTrade
– в настройках пользователя на сайте биржи BitFinex
– в настройках биржи в Global Server.

Делается это так:
1. Global Server
– в окне настроек биржи в Global Server "Edit Exchange" нажмите кнопку "Edit Daylight Savings" и в открывшемся одноименном окне выставьте следующие параметры:
– Offset from GMT where not under daylight savings - 0
– радиокнопку переключите в положение "No daylight savings rules"



2. BitFinex
– в настройках пользовательского аккаунта на сайте биржи в разделе "Date & Time" установите Timezone в GMT+00:00 и нажмите кнопку "Update"



– На графике цены любого инструмента нажмите кнопку с иконкой шестеренки и в открывшемся окне настроек в разделе "Timezone/Sessions" выставьте значение Time Zone в "UTC".



3. Компьютер/Сервер
– в настройках Windows "Дата и время" измените часовой пояс на "Время в формате UTC"

Если вы все же хотите сохранить свой локальный часовой пояс, то в настройках Daylight Savings в Global Server в поле "Offset from GMT where not under daylight savings" нужно выставить смещение вашего локального времени от GMT в минутах. Но в этом случае время на графике тикеров Poloniex будет отличаться реального на бирже. И это нужно будет учитывать при программировании торговых систем, которые ориентируются на время при совершении сделок.

Добавление и настройка тикеров в Global Server

a) Запустите Global Server, в основном окне при активной вкладке "System Portfolio" кликните правой кнопкой мыши в любом месте окна и в выпадающем меню выберите пункт "Insert Symbol"



b) В появившемся окне "Insert Symbols into Portfolio" в списке Template to use выберите "Stock History Template", в нем уже определены все необходимые поля. После этого нажмите кнопку "Add New"



b) В следующем появившемся окне "Add Symbol" устанавливаем начальные параметры тикера



– в списке Data Source выбираем значение DBC Online
– Category в случае криптовалют не имеет значения, установите тут Stock или Cash
– в поле Symbol вписываем имя тикера в точности как мы его создали в EasyTrade, соблюдая регистр букв
– в списке Exchange выбираем биржу, которую мы настраивали на предыдущем этапе. В нашем примере это был BSE - Bern Stock Exchange
Жмем кнопку "OK", программа сообщит, что тикер требует дополнительных настроек, жмем еще раз "OK" и подаем в следующее окно настроек

c) Окно "Add Stock" или "Add Cash" в зависимости от того, какую категорию вы выбрали в предыдущем пункте



– В поле Symbol Root повторяем так же название тикера
Остальное можно не заполнять. Переходим на вкладку "Settings"

d) Вкладка "Settings"



– Price Scale поставьте логичный для данного инструмента. 1/1000 будет достаточен для всех криптовалют учитывая их высокую волатильность.
– Point Value - 1
– Daily Limit - 0
– Min. Movement - 1

e) Вкладка "Sessions"
Напоминаем, что криптобиржи работают без перерывов и выходных, поэтому нужно указать все дни и все часы как торговые. Заполните значения на этой вкладке в точности как на картинке:



– Все дни с воскресенья(Sun) до субботы (Sat)
– с 00:00 до 23:59
– Dribble и Settlement - 0 hrs 0 min
– Reset включен
– Display Session Time in: - установите в Exchange Traded Time
На вкладке Option Root ничего настраивать не надо. Причем, если вы выбрали категорию тикера Cash, то у вас ее даже не будет в настройках.
Нажимайте "OK" и на этом создание и настройка конкретного тикера закончена.
Аналогично создайте и настройте все тикеры, которые вы определили в EasyTrade.

После того, как вы создали все необходимые тикеры, переведите Global Server в режим On-line. Для этого в меню File снимите галочку с пункта "Work Offline"



Теперь выделите все тикеры, кликните на любом из них правой кнопкой мыши и в выпадающем меню выберите пункт "Connect Symbol"



После этого Real-Time Status у тикеров изменится на "Connected" и они начнут получать данные с криптобирж от EasyTrade.
Создание настройка и подключение тикеров в Global Server закончена.

Сверните Global Server, но не закрывайте его! Он должен быть постоянно запущен.

 

Создание торгового робота в Omega Reseash и его автоматическая торговля через EasyTrade

1. Запустите Omega Research
2. Создайте новую рабочую область(Workspace) нажатием на кнопку с иконкой чистого листа в панели инструментов слева в верху



Также его можно создать через меню File -> New -> Workspace -> Blank Workspace



3. Добавьте график тикера на рабочую область нажатием на кнопку с иконкой листа в барами в панели инструментов



Также его можно добавить через меню File -> New -> Omega Research -> TradeStation Chart



4. В открывшемся окне "Create Chart Window" выберите нужный тикер из списка. Можно начать набирать имя тикера и подходящие отфильтруются автоматически.



Нажмите кнопку "Plot"

5. В открывшемся окне "Format Symbol" выставьте желаемые настройки графика: таймфрейм, количество дней истории, стиль баров (во вкладке Style) и пр.
– поле Field установите в значение "Trade Record"
– поле Timezone в значение "Exchange"



Нажмите кнопку "OK" Omega построит график выбранного инструмента в соответствии с указанными параметрами.

5. Сохраните текущий Workspace через меню File -> Save Workspace As... в папку по умолчанию "C:\Program Files (x86)\Omega Research\MyWork"
Не меняйте этот путь! В этой папке EasyTrade будет искать ваши системы для автоматической торговли.



6. Подключите к графику подготовленную торговую стратегию нажав правой кнопкой мыши на графике и выбрав в выпадающем меню пункт "Insert Analysis Techniques".
Обучение и инструкции по созданию и программированию торговых систем не входят в данное руководство. Мы предполагаем, что вы умеете создавать торговые системы и программировать их на языке EasyLanguage, который используется в Omega Research.



В следующем открывшемся окне "Insert Analysis Techniques" во вкладке "Strategy" выберите стратегию, которую вы хотите торговать.



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



Переключитесь на программу EasyTrade. Она уже запущена с самого начала, с момента создания тикеров. Закрывать ее не надо никогда.
В правом верхнем углу возле раздела "Стратегии" нажмите кнопку "Добавить"



В открывшемся окне "Создание стратегии" укажите имя стратегии, оно может быть любое и ни с чем не связанное, просто удобное для вас имя. Тип стратегии – оставьте по умолчанию "Omega". Нажмите кнопку "Далее..."



В следующем окне "Создание стратегии: [название]" нужно указать по какому тикеру и на каком биржевом счете EasyTrade будет исполнять ордера этой стратегии, а также настроить алгоритм исполнения (какой брать запас на проскальзывание, как поступать с не полностью исполненными ордерами и т.п.)



– Тикер - выберите из списка, по какому тикеру из созданных ранее в EasyTrade будет получать сигналы по этой стратегии
– Исполнение по - по какому биржевому тикеру отправлять ордера на биржу для исполнения. Логично выбрать соответствующий тому, по которому мы получаем сигналы, но возможно строить и необычные стратегии: например, получать сигнал по BTC/USD, а совершать сделку на паре ETH/USD.
– Количество - тут указываем объем ордера, размер открываемой позиции
– Счет - биржевой счет, на котором исполнять ордер. Напомним, что на криптобирже может быть несколько счетов, отдельно для простой и маржинальной торговли. В этом списке есть все доступные вам счета всех подключенных бирж.
– Рабочая область - тут нужно указать имя рабочей области(Workspace) Omega, которая содержит нужный график и к которому подключена наша торговая система. Это имя - имя файла с которым мы сохранили рабочую область в папку по умолчанию в одном и предыдущих этапов. Нужно указывать полное имя файла включая расширение .orw
– Алгоритм исполнения - с какой ценой будет отправлен ордер на биржу. Для криптоторговли рекомендуем использовать алгоритм "По умолчанию", в этом случае EasyTrade будет отправлять лимитный ордер смещенный на величину проскальзывания, т.е. по сути маркет-ордер. Работа остальных алгоритмов интуитивно понятна из их названия.
– Проскальзывание на вход, на выход - величина, на которую будет смещена цена ордера для компенсации проскальзывания. Для криптоторговли рекомендуем использовать не менее 1%
– Ожидание входа, выхода - время, которое EasyTrade будет ждать, пока ордер исполнится. Если ордер не исполнится, то программа переставит его в соответствии со следующими правилами
– Переставление при входе, выходе - смещение от цены, на которое EasyTrade переставит ордер в случае его неисполнения или неполного исполнения.
– Количество замен - сколько раз программа будет переставлять ордер
– Обязательный вход - если после всех переставлений ордер так и не будет исполнен, то EasyTrade исполнит его по текущей рыночной цене.
– Использовать ЛИМИТ и СТОП ордера - неприменимо к криптоторговле, оставьте отключенным
– Контроль позиций - EasyTrade следит за тем, какие позиции открылись и каким объемом. При закрытии позиции программа будет пытаться закрыть именно тот объем, которым позиция открылась. Если эта опция включена, то EasyTrade будет проверять реальный размер позиций и при необходимости корректировать свою таблицу открытых позиций.
– Режим быстрых ордеров - EasyTrade вообще не смотрит на размер открытой позиции и исполняет ордера четко указанным в настройках стратегии объемом (в поле "Количество"). Это ускоряет исполнение ордеров, но делает невозможным контроль позиций и пирамидинг.

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



Важное замечание: нельзя использовать торговые системы по одному и тому же тикеру, расположенные в одной рабочей области(Workspace) в Omega. Название рабочей области и тикер - это единственные идентификаторы торговой системы для EasyTrade.
Если вы хотите торговать несколько разных систем по одному тикеру, то располагайте их на разный рабочих областях в Omega.


Чтобы запустить автоматическую торговлю по всем активным стратегиям нажмите кнопку "Авто OFF", она примет значение "Авто ON" и это означает, что сигналы по стратегиям из Omega будут преобразованы в ордера и отправлены на биржу для исполнения. Состояние "Авто ON/OFF" показывает, слушает ли EasyTrade сигналы из Omega или игнорирует их.



По мере открытия и закрытия позиций по стратегиям, информация о них будет появляться в таблице "Позиции" справа. Там отображена вся основная информация о позициях: стратегия, которая ее открыла, тикер, направление, объем, биржевой счет, время открытия, закрытия? примерная прибыль (без учета комиссии) и пр.



В открытых позициях можно редактировать их объем, для этого кликните на ее объем в поле "Кол-во", введите новый объем и нажмите "Сохранить". Теперь при закрытии позиции EasyTrade будет отправлять ордер указанного объема.
Кнопкой "Закрыть МКТ" можно закрыть выделенную позицию маркет-ордером.
Так же любые позиции можно удалять из таблицы. В случае удаления открытой позиции при появлении сигнала на закрытие программа возьмет объем для ордера из настроек стратегии.

Все ордера, которые EasyTrade отправлял на биржу, сохраняются в таблице "Ордера" в нижней части программы. По каждому ордеру дается исчерпывающая информация: какой стратегией он сгенерирован, по какому тикеру, по какому счету, дата и время выставления и исполнения, цена выставления и исполнения, статус, тип, направление и пр. При наведении мышкой на ID или время выставления ордера во всплывающей подсказке появится дополнительная информация.
При помощи закладок ордера можно отсортировать по статусу "Активные", "Исполненные", "Снятые".
Кнопками "Замена", "Отмена", "Исполнение" можно вручную и управлять ордерами.



Во вкладе "Журнал" находится лог программы с момента ее запуска. Полный лог находится в файле EasyTrade.log в папке программы. Там же находятся лог-файлы за предыдущие дни.

Перезапуск всей связки EasyTrade - Omega Research

Запуск этой связки программ для автоматической торговли нужно проводить в определенном порядке и также выполнить некоторые вспомогательные действия. Обычно эту связку не нужно перезапускать, она может работать непрерывно неограниченное время. Но если все же возникла необходимость перезапустить компьютер/сервер или другая причиня, то для запуска связки выполните следующие действия.
1. Переведите системное время на 4 часа назад
2. Запустите Omega Research. Global Server запустится автоматически. Дождитесь пока в рабочих областях Omega прорисуются все графики
3. Переведите Global Server в режим он-лайн. Для этого в меню File снимите галочку с пункта "Work Offline".
4. Верните правильное системное время
5. Запустите EasyTrade и переведите его в режим "Авто ON" если необходимо.

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

Скачивание исторических данных с бирж Poloniex и Bitfinex

Программу EasyTrade можно использовать для скачивания исторических данных с бирж Poloniex и BitFinex. Данные сохраняются в отдельный файл и в дальнейшем их можно использовать для анализа, моделирования торговых систем в других программах и пр.

Делается это следующим образом:
В меню "Сервис" выберите пункт "Исторические данные"



Откроется окно "Исторические данные"



– Из списка "Терминал" выберите интересующую вас биржу
– В поле "Тикер" укажите инструмент, по которому вы хотите скачать исторические данные. Тут нужно указывать биржевой тикер так, как он существует на самой бирже, например USDT_ETH для полоникса или tETHUSD для битфайнекса. Полный список инструментов и соответствующих им тикеров можно найти на сайте биржи. Причем не обязательно указывать только тот инструмент, который подключен в программе, можно указать любой, существующий на бирже.
– Из списка "Свеча" выберите подходящий таймфрейм. Не рекомендуем выбирать "Тик", т.к. тиковые данные очень большие по объему и скачивание может занять непредсказуемо большое время или даже привезти к зависанию системы.
– Укажите интересующий вас период истории, даты и время начала и окончания.
– Укажите путь куда сохранять файл. Имя файла указывать не нужно, только папку.
– Формат вывода - *.CSV
Формат "Omega Research" используется для скачивания исторических данных непосредственно в Omega. Это бывает нужно если ваша связка не была запущена длительное время и вам необходимо заполнить пробелы в данных за несколько дней.
Нажмите "ОК" и подождите окончания скачивания данных. Скачивание может занять продолжительное время - от минут до нескольких часов в зависимости от выбранного таймфрейма и длительности исторического периода. Во время скачивания программа не будет реагировать на действия пользователя.

На этом все!

Успехов вам в автоматической алгоритмической торговле!