注意事项
- 阿里云t5云服务器需要在控制台里打开“无性能约束模式”,此模式有可能产生少许费用,请先充值5~10元并在使用过程中关注费用情况,以免性能受限后影响交易造成损失。服务器性能受限表现出来的情况是连续有很多单没有成交,必须及时处理。
- 需要留有10%左右备用资金,在仓位比较高的时候投入使用,系统不能出现仓位特别高的情况,下单时如果可用资金不足有可能出现单腿成交的情况。
- 系统会出现一些对锁单,可用资金少的时候可以自行平仓或使用系统提供的集合竞价对锁单双平条件单来平仓,近月合约如果存在对锁单需要及时平仓。
- 平时的交易状况会发邮件通知,请及时查看,套利如出现单腿会重新下单,让系统自动处理即可,如果收到持仓不一致的邮件需及时检查是否需要手工下单。
系统使用说明
- 量化系统运行在云端,操作系统使用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/。
- 长期停止系统可以从阿里云控制台停止服务器,暂时停止系统可以执行下面两步(下个交易时段会自动运行):
cd /root/supercta/bin/
./stop.sh - 为了保证高效率,系统只接收策略用到合约行情,如要交易更多合约,把需要的合约代码加在网页配置选项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退回到命令行,否则窗口被占用会失败。
- 如果遇到服务器重启,需要按顺序执行下面步骤系统才能正常运行,前三步必须,后两步可选(开盘前会自动运行):
cd /root/supercta/bin/
screen -dmS ctaservice
screen -dmS supercta
./startService.sh
./start.sh
配置选项(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(2020, 4, 12), end_dt=date(2020, 5, 12))) - 为了避免影响到实盘交易,不要在交易时段做回测。
- tick级回测需要的内存较多,至少需要2g。
免责声明
大理触发科技有限公司不对触发量化系统做任何担保,由于软件系统开发本身以及交易环境的复杂性,无法保证产品完全没有错误地运行。选择使用触发量化即表示认同本条款,在任何情况下本公司对于直接的、间接的、偶然的、使用或无法使用本产品进行交易和投资造成的盈亏、直接或间接引起的损失均不承担责任和义务。