mt4信号同步交易系统设计

2020/12/25 08:53
阅读数 218

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' ;

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部