SyncDB
- Утилиты
-
Maxim Kuznetsov
Мой главный проект - библиотека ATcl http://luxtrade.ru/atcl:start
Интеграция MT4 со всем миром. Excel, Rest-API, почта, веб-сокеты и многое многое другое доступно в МетаТрейдер - Версия: 1.0
- Активации: 5
Сервис для постоянной поддержки базы SQLite в актуальном состоянии. Быстрая работа в реальном времени. Сохраняет открытые позиции и ордера, текущие котировки, торговую историю.
Воспользуйтесь возможностями SQLite для промежуточного хранения данных, аналитики и интеграций платформы MetaTrader. Сохраняйте все данные в едином месте.
Используйте сохранённые данные в аналитических запросах SQL, из Питон и других языков, для построения dash-boards и интеграции MetaTrader
Параметры
SyncDB создаёт и одновременно ведёт 2 базы :
db/{server_name}.{account}.history.db - пополняемая база истории, содержит историю сделок и информацию об инструментах
db/ram/{server_name}.{account}.trade.db - обновляемая база, содержит открытые ордера и позиции, текущие цены.
где {server_name} - имя торгового сервера DC, будет поставлено автоматически. {account} номер торгового аккаунта на нём. Таким образом при одновременной работе нескольких терминалов, их данные хранятся раздельно и не вызовут взаимных блокировок и замедлений.
настоятельно рекомендую каталог db/ram размещать на ram-диске или быстром носителе.
Очень простые параметры:
- priceUpdateSec, 15 - период (секунд) для обновления цен в базе. При использовании ram-диска можете указывать меньшие значения, вплоть до 0
- useCommon , true. Использовать общий каталог данных.
- dbFolder , "db". Имя каталога для хранения баз
Схема базы trade.db
CREATE TABLE IF NOT EXISTS Trade ( ticket INT PRIMARY KEY, symbol VARCHAR(16), 'type' VARCHAR(16), lots REAL, openPrice REAL, stopLoss REAL, takeProfit REAL, price REAL, 'time' DATETIME, closeTime DATETIME, expiration DATETIME, profit REAL, swap REAL, commission REAL, magic INT , 'comment' VARCHAR(255) ) WITHOUT ROWID
и
CREATE TABLE IF NOT EXISTS Watch ( name VARCHAR(16) PRIMARY KEY, 'time' DATETIME, bid REAL, ask REAL, spread INTEGER, stopLevel INTEGER, tickValue REAL ) WITHOUT ROWID
Схема базы history.db
CREATE TABLE IF NOT EXISTS History ( ticket INT PRIMARY KEY, symbol VARCHAR(16), 'type' VARCHAR(16), lots REAL, openPrice REAL, stopLoss REAL, takeProfit REAL, price REAL, 'time' DATETIME, closeTime DATETIME, expiration DATETIME, profit REAL, swap REAL, commission REAL, magic INTEGER, 'comment' VARCHAR(255) ) WITHOUT ROWID;
и
CREATE TABLE IF NOT EXISTS Symbol ( name VARCHAR(16) PRIMARY KEY, base VARCHAR(16), quote VARCHAR(16), digits INTEGER, point REAL, tickSize REAL, minLot REAL, maxLot REAL, lotStep REAL ) WITHOUT ROWID
Использование
Просто запустите экземпляр сервиса SyncDB, и используйте данные в своих приложениях и для интеграции.
