数据是一套系统的运行基础,如何保证数据及时同步到数据库内保存很重要。
基于MT5 Manager API 同步数据到MYSQL数据
同步内容:用户信息,账号资金信息,订单信息,成交信息,持仓信息等
首先创建数据库表结构:
users:
CREATE TABLE `mt5_users` (
`Login` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`Timestamp` bigint(20) NOT NULL DEFAULT 0,
`Group` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`CertSerialNumber` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`Rights` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`Registration` datetime(0) NOT NULL DEFAULT '1970-01-01 00:00:00',
`LastAccess` datetime(0) NOT NULL DEFAULT '1970-01-01 00:00:00',
`LastPassChange` datetime(0) NOT NULL DEFAULT '1970-01-01 00:00:00',
`FirstName` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`LastName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`MiddleName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Company` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Account` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Country` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Language` int(10) UNSIGNED NOT NULL DEFAULT 0,
`ClientID` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`City` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`State` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`ZipCode` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Address` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`ID` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Status` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Comment` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Color` int(10) UNSIGNED NOT NULL DEFAULT 0,
`PhonePassword` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`Leverage` int(10) UNSIGNED NOT NULL DEFAULT 0,
`Agent` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`TradeAccounts` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`LeadCampaign` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`LeadSource` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`TimestampTrade` bigint(20) NOT NULL DEFAULT 0,
`Balance` double NOT NULL DEFAULT 0,
`Credit` double NOT NULL DEFAULT 0,
`InterestRate` double NOT NULL DEFAULT 0,
`CommissionDaily` double NOT NULL DEFAULT 0,
`CommissionMonthly` double NOT NULL DEFAULT 0,
`BalancePrevDay` double NOT NULL DEFAULT 0,
`BalancePrevMonth` double NOT NULL DEFAULT 0,
`EquityPrevDay` double NOT NULL DEFAULT 0,
`EquityPrevMonth` double NOT NULL DEFAULT 0,
`Name` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`MQID` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`LastIP` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`ApiData` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`Login`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
资金信息
订单表
成交表
持仓表
同步频率默认设定为 1分钟一次