Skip to content

日历服务

日历服务由MT5CTP提供,实现交易日、非交易日和节假日的日历状态更新服务,节假日信息来自于官方公告。

服务配置

客户端导航栏中,选择[服务]->[mt5ctp]->[日历服务]项。如果服务已经存在,可左键双击交易服务(或在交易服务上使用右键菜单->[属性])打开服务配置页面。如果[日历服务]项下为空,可左键双击[日历服务]项(或右键菜单->[添加服务])新建服务配置页面。

MT5CTP禁止配置多个日历服务

serv_cacn_setting

配置信息可以[保存],已保存的配置信息可以[载入],配置信息参数:

MT5CTP自动更新 |-> 参数选择 |默认值 [true]

会否允许MT5CTP自动更新。

关于 | MT5CTP自动更新

MT5CTP自动更新主要是以下三个部分,如果信息有更新,MT5CTP会在更新日历信息前,自动更新本地文件:

  1. 期货公司前置机信息。文件目录:\MQL5\Files\mt5ctp\broker\
  2. 交易品种交易时段信息。文件路径:\MQL5\Files\mt5ctp\CustomSymbolSessions.json
  3. 节假日信息。文件路径:\MQL5\Files\mt5ctp\CustomCalendar.json

自动服务

serv_cacn_auto

如图所示,选中[允许算法交易]后,日历服务配置为自动模式,客户端启动后,日历服务会自动运行,工作状态显示为绿色的三角形图标(建议配置)。如果未选择[允许算法交易],日历服务运行中工作状态会显示为灰色的三角形图标,客户端重启后,需要手动启动日历服务。日历服务未在工作状态显示为红色的正方形图标。

关于 | 自动服务

  1. 日历服务会在每天的[03:30]自动更新交易日信息。
  2. 日历服务更新后,会在本地注册三个全局变量(如下图所示),其中:_cacn_today 指今天的日历状态,_cacn_tomorrow 指明天的日历状态,_cacn_yeterday 指昨天的日历状态。日历状态[0]标识交易日,[1]标识周末,[2]标识节假日(节假日前的周末也会被标记为节假日)。
  1. 如果日历状态对应的全局变量不存在,交易服务和行情服务会等待,直到日历服务更新了日历状态。交易服务和行情服务依赖日历服务提供的日历状态,决定是否登录CTP柜台,如果日历服务没有工作或者工作异常,会影响交易服务和行情服务。
  2. 日历状态全局变量由日历服务维护,除非必要,应避免修改和删除等人工操作。