mt4訂閱信號同步系統設計
1、mt4平臺訂閱信號
2、開通ic賬戶
3、綁定信號
4、信號同步,
5、增加myql連接,同步信號,擴展功能統計
# 注意以上流程中涉及多個平臺賬號申請,請做好記錄,防止遺忘。
-- 創建訂閱信號訂單表
CREATE TABLE `subscribe_singal_order` (
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`singal_name` varchar(64) DEFAULT NULL COMMENT '信號名稱',
`account` varchar(16) DEFAULT NULL COMMENT '賬戶',
`symbol` varchar(10) DEFAULT NULL COMMENT '訂單代碼',
`ticket` varchar(16) DEFAULT NULL COMMENT '信號訂單id',
`order_type` varchar(2) DEFAULT NULL COMMENT '訂單類型 0買,1賣',
`sl` varchar(16) DEFAULT NULL COMMENT '止損',
`tp` varchar(16) DEFAULT NULL COMMENT '止盈',
`status` varchar(2) DEFAULT '1' COMMENT '訂單狀態,1下單,-1關閉',
`start_date` datetime DEFAULT NULL COMMENT '訂單信號時間',
`gmt_created` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '訂單落庫時間',
`gmt_modify` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '訂單修改時間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 創建定時器心跳記錄表
CREATE TABLE `singal_heartbeat` (
`id` bigint(12) NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
`singal_name` varchar(64) DEFAULT NULL COMMENT '信號名稱',
`singal_time` timestamp(2) NULL DEFAULT NULL COMMENT '信號時間',
`gmt_create_time` timestamp(2) NULL DEFAULT CURRENT_TIMESTAMP(2) COMMENT '入庫時間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
-- 心跳日誌定時清理
CREATE DEFINER=`metatrader`@`%` PROCEDURE `singal_delete_crontab`()
BEGIN
-- 刪除X天前的心跳記錄
delete from singal_heartbeat where datediff(CURDATE(),singal_time)>=7;
-- 插入定時器的操作記錄
insert into singal_heartbeat (singal_name,singal_time) values('heartbeat',NOW()) ;
END;
-- 創建定時器心跳記錄表的定時器,刪除歷史的心跳日誌,每小時執行一次,避免一次刪除太多數據
drop event if exists singal_delete_crontab_timer;
CREATE EVENT if not exists singal_delete_crontab_timer
ON SCHEDULE every 1 hour
STARTS TIMESTAMP '2020-12-20 00:00:00'
do call singal_delete_crontab()
;
-- 查看全局的定時器是否開啓
SET GLOBAL event_scheduler = 1; -- 啓動定時器
SHOW VARIABLES LIKE '%sche%'; -- 查看定時器狀態
-- 開啓特定的定時器
ALTER EVENT singal_delete_crontab_timer ENABLE;
-- 檢查定時器是否工作
select * from singal_heartbeat where singal_name='heartbeat' ;