EliteQuant_Cpp: C/C++ высокочастотная платформа для количественной торговли
EliteQuant — это открытая и бесплатная унифицированная платформа для количественных трейдеров. Она написана самими количественными трейдерами и предназначена для них. EliteQuant доступен на GitHub и Gitee.
Слово «унифицированный» имеет два значения:
Проекты, связанные с EliteQuant:
EliteQuant_Cpp — это многопоточная параллельная высокочастотная торговая платформа на основе C/C++ 11. Она следует современным шаблонам проектирования, таким как событийно-управляемая архитектура, серверная/клиентская архитектура, внедрение зависимостей и слабосвязанная устойчивая распределённая система. Её можно использовать отдельно или в качестве сервера других проектов EliteQuant.
Мы приветствуем любой вклад, включая обнаружение проблем, отправку блоков кода или создание запросов на вытягивание. Совместное использование архитектуры кода также поможет трейдерам, использующим другие языки.
Не нужно устанавливать проект, просто скачайте код и используйте его.
Самый простой способ — загрузить скомпилированный файл из корневого каталога проекта и запустить программу с именем eqsever.exe. Перед запуском этого исполняемого файла необходимо изменить несколько настроек конфигурации. По умолчанию программа считывает конфигурацию из config.xml в том же каталоге. Откройте файл конфигурации:
IB — это самый популярный брокер среди розничных трейдеров. Многие розничные торговые платформы, такие как Quantopian и Quantconnect, поддерживают IB. Если у вас нет счёта IB, но вы хотите попробовать, они предоставляют демонстрационный счёт edemo и пароль demouser. Просто скачайте торговый рабочий стол (TWS) и войдите в систему с этими учётными данными. Обратите внимание, что идентификатор учётной записи будет меняться каждый раз при входе в систему через демонстрационный аккаунт, поэтому вам необходимо соответствующим образом изменить файл конфигурации EliteQuant.
CTP — это фактический стандарт китайского фьючерсного рынка, включая товарные и финансовые фьючерсы. Они также предоставляют бесплатный демонстрационный счёт SimNow. После регистрации вы получите учётную запись, пароль, brokerid, рыночные данные и адреса для торговли. Замените соответствующие позиции в файле конфигурации EliteQuant.
Вот наша текущая среда разработки:
Visual C++ — популярная IDE для Windows. CodeLite — бесплатная IDE для Linux, которая очень похожа на Visual Studio с точки зрения пользовательского опыта. Другие варианты включают CLION и CMake.
Вы можете установить необходимые сторонние библиотеки и собрать этот проект на последней 64-битной системе Ubuntu с помощью cmake следующим образом:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install aptitude git cmake
sudo aptitude install zlib1g-dev rapidjson-dev python3-dev libboost-all-dev libsodium-dev \
libyaml-cpp-dev libwebsocketpp-dev libnanomsg-dev libzmq3-dev
# Скачать SimNow CTP tradeapi для Linux
cd ~ # Или выберите другой каталог
wget http://simnow.sfit.com.cn/download/api/v6.3.5_20150803_tradeapi_linux64.tar
tar xvf v6.3.5_20150803_tradeapi_linux64.tar
cd v6.3.5_20150803_api_tradeapi_linux64/
sudo cp thostmduserapi.so /usr/lib/libthostmduserapi.so
sudo cp thosttraderapi.so /usr/lib/libthosttraderapi.so
cd ~ # Или выберите другой каталог
git clone https://github.com/EliteQuant/EliteQuant_Cpp.git
cd EliteQuant_Cpp/source
mkdir build
cd build
cmake ..
make -j2
# Запустить программу
cd eqserver
cp ../../eqserver/config.yaml .
mkdir log data
./eqserver # Перед этим измените config.yaml
При завершении работы eqserver с помощью Ctrl + C на Linux вы можете столкнуться с ошибкой double free or corruption (!prev). Один из способов подавить это предупреждение — добавить переменную MALLOC_CHECK_ = 0 в вашу среду:
sudo vim ~/.bashrc # Редактировать системный файл конфигурации
export MALLOC_CHECK_=0 # Добавить эту строку в конец файла
source ~/.bashrc # Перезагрузить конфигурацию
Сервис | Протокол | Порт | Связка или подключение |
---|---|---|---|
MarketData | PUB | 55555 | Да |
Brokerage | PAIR | 55556 | Да |
DataManager/BarAggregator | PUB | 55557 | Да |
TickRecording | SUB | 55555 | Нет |
DataBoard | SUB | 55555 | Нет |
ApiServer | PAIR | 55556 | Нет |
ApiServer | SUB | 55557 | Нет |
ApiServer | PAIR | 55558 | Да |
Сообщения разделены символом «|». Например:
Типы сообщений:
k: данные за период
p: последняя цена
z: последний объём сделки
o: новый ордер
c: отменить ордер
s: статус ордера
n: запрос баланса
m: общая информация
b: K-линия
h: исторические данные
e: тестовое сообщение Символы используются для идентификации, полный код состоит из групп символов, разделённых пробелами. Общая схема: «локальный код тип сделки биржа коэффициент».
Акции: SPY STK SMART.
Фьючерсы: ESZ7 FUT GLOBEX 50.
Валюты: EUR.USD CASH IDEALPRO.
Валютные фьючерсы: 6BU1 FUT GLOBELX.
Опционы: GOOGL_140920P00535000 OPT SMART 100.
Фьючерсные опционы: EWQ4_C1730 FOP GLOBEX 50.
enum OrderStatus {
OS_NewBorn = 0, // NewBorn
OS_PendingSubmit = 1,
OS_PendingCancel =2 ,
OS_Submitted = 3, // submitted
OS_Acknowledged = 4, // acknowledged
OS_Canceled = 5, // Canceled
OS_Filled = 6, // Filled
OS_Inactive = 7,
OS_PartiallyFilled = 8 // PartiallyFilled
};
enum OrderFlag { // for CTP offset flag
OF_OpenPosition = 0,
OF_ClosePosition = 1,
OF_CloseToday = 2,
OF_CloseYesterday = 3
};
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )