注意事项

  • 阿里云t5云服务器需要在控制台里打开“无性能约束模式”,此模式有可能每月产生少许费用,请先充值3~5元,以免性能受限后影响交易造成损失。服务器性能受限表现出来的情况是连续有很多单没有成交,必须及时处理。
  • 平时的交易状况会发邮件通知,及时查看即可,遇到单腿可等挂单成交或人工改价干预,夜盘前收到持仓不一致的邮件一定要手工下单处理好。

系统使用说明

  • 量化系统运行在云端,操作系统使用Ubuntu 16.04 64位,远程登录可用putty,使用过程中会用到vi,如不熟悉可以先学习一下:
    http://man.linuxde.net/vi
  • 量化系统分三个部分,后台行情模块marketCta,后台交易模块tradeCta,策略程序supercta.py,可用ps -au查看运行情况,正常会有这三项:
    root 24624 2.2 0.3 273708 14444 pts/2 Sl 21:05 1:39 ./tradeCta 888
    root 24626 3.2 0.1 188088 7680 pts/2 Sl 21:05 2:26 ./marketCta 888
    root 30715 2.8 0.5 439264 21568 pts/1 Sl+ 21:14 1:52 python3 supercta.py
  • 量化系统默认放在/root/supercta/目录,执行操作前先进入目录cd /root/supercta/bin/。
  • 为了保证高效率,系统只接收策略用到合约行情,如要交易更多合约,把需要的合约代码加在网页配置选项config里面的iids里,添加之后下一个交易时段生效,如需立即生效需重启交易模块和策略程序,执行下面三步:
    cd /root/supercta/bin/
    ./startService.sh
    ./restart.sh
  • 修改策略参数后下一个交易时段生效,也可重启策略程序使它立即生效,执行下面两步:
    cd /root/supercta/bin/
    ./restart.sh
  • 新的交易策略可在网页上CTA_strategy里面添加(新加入的合约也要在config下面的iids里添加),交易时段添加后下一个交易时段生效,也可运行./restart.sh重启策略程序立即生效。
  • 用screen -r supercta查看策略程序输出的信息,需要重启程序等操作必须用Ctrl+A+D退回到命令行,否则窗口被占用会失败。

配置选项(options)

  • orderID:订单ID,默认1000001,程序自动修改
  • riskLimit:风险度控制,根据资金情况一般设置0.8左右,0.8表示风险度超过80%会限制开仓,外面有备用资金可以稍微高一点
  • lockPosition:日内交易用锁仓方式的品种及合约,默认j2,jm,MA
  • closeYesterday:上期所有几个品种平今免费,下单平今优先,平昨优先的品种加在这里,默认hc,rb
  • offsetMultiple:第二腿下单的滑点量,默认3(实际最大滑点为3个价位),也可改为2或4,加大可以避免出现单腿成交的情况,每个时段开盘前5分钟波动较大,为避免单腿这5分钟最大滑点是这个数字的2倍
  • mailHost:SMTP服务器,QQ为smtp.qq.com,163为smtp.163.com
  • mailUser:邮箱用户名
  • mailPass:密码(一般是授权码)
  • mailSender:发件人邮箱(要写全, 不然会失败),如:xxx@qq.com
  • receivers:收件邮箱,可设置为你的QQ邮箱或者其他邮箱:如xxx@139.com

策略参数

iid: 合约代码(上海和大连小写,郑州和中金所大写,如:rb1810、m1809、MA809、T1809)
settings: 策略参数,不同的策略有不同的参数
data:策略运行期间记录的数据
unit:一般是指每次下单的交易量,不同的策略有点不同
total:一般是指总的开仓量,不同的策略有点不同
position: 当前持仓量(负数为做空)
reserve: 预留字段,少部分策略会用到
exchange: 合约所属交易所,上海SHFE,大连DCE,郑州CZCE,上海能源INE,中金所CFFEX
night_trading: 有夜盘1,没夜盘0
is_daytrade: 日内交易选项,1表示收盘前平仓,策略提供了这个功能才有效
type: 使用的策略
status: on为打开策略,off为关闭策略

回测说明

  • 创建回测环境(第一次使用时运行,后面不用),所有回测数据会保存在文件screen.0里面:
    screen -L -dmS test
  • 运行回测(回测结束用Ctrl+A+D退出回测环境):
    screen -r test
    python3 backtest.py
  • 回测使用的策略数据在CTA_strategy_test里面,tick级回测一般只能同时测1~2个,分钟级回测可以同时测多个。
  • 回测的时间区间直接在backtest.py里修改,跟所测合约对应:
    api = TqApi(TqSim(init_balance=60000.0), backtest=TqBacktest(start_dt=date(2019, 6, 12), end_dt=date(2019, 8, 12)))
  • 为了避免影响到实盘交易,一般不要在交易时段做回测。