PT(PulseTrader) 高频程序化交易平台 简介、使用 上海蒙融信息技术有限公司 服务端开发组 2013-4-8
系统交易方法简述 PT平台简介 硬件准备 软件布署 数据库系统搭建 数据落盘程序安装与使用 PT高频交易运行平台安装与布署 PT策略开发平台安装与布署 策略开发平台使用 运行平台使用 FAQ
在现今的国际市场上,股票和衍生品市场的程序化交易占全部交易活动的70%。 为什么选择程序化交易? 避免了人为的主观性 分散了投资风险 系统交易方法简述----程序化交易 程序化交易一般的定义为“在指定模型参数的约束下,按照模型给出的指令自动买入和卖出特定数量的证券或证券组合的交易行为”。 程序化交易出现于上世纪70年代初的金融市场,其标志性事件是纽约证券交易所推出的指定交易循环系统,由此专业投资经理可以通过计算机与交易所联机来实现投资组合的一次性买卖。 在现今的国际市场上,股票和衍生品市场的程序化交易占全部交易活动的70%。 为什么选择程序化交易? 避免了人为的主观性 分散了投资风险 计算能力的优势
系统交易方法简述----系统交易方法的步骤 程序化交易策略形成的两种方式 从上到下,是指根据对市场的长期观察而形成某种理论认识,再基于这种认识而形成某种战略战术。 从下到上,是指从市场统计数据出发,根据统计分析得出的统计特征而寻找对应的战略战术。
定量投资VS定性投资 詹姆斯.西蒙斯 沃伦.巴菲特 系统交易方法简述-程序化交易 (定量投资者的成功典范) 1989-2008平均年回报约35%; 2008年回报率约80% 沃伦.巴菲特 (定性投资者的代表人物) 1989-2008平均年回报约20% 2008年回报率约-15%
PT(PulseTrader)平台突出优势-速度快:开发快、回测快、交易快 底层计算函数、交易指令函数封装齐全 基于C++语言开发 基于数组的存储设计,良好的软件技术设计框架 交易终端直连交易所,可托管 提供事件触发机制,可进行算法交易精细控制 多线程\多策略并行操作机制
PT(PulseTrader)高频程序化交易平台综述 帮助投资者实现手工操作难以达到的高频量化交易,控制不必要的滑点损失,保证收集策略思想的全部交易样本 PT平台开发效率高、执行速度快、维度设计灵活,是期货高频交易投资者的上选
PT平台特点-高效的交易策略开发工具 PT高频量化交易平台基于C++语言,及良好的设计架构,执行效率接近底层汇编语言的70-80%。基于CTP综合交易平台接口,速度比业内类似平台下平均速度要快20-30% 平台提供了丰富的函数库,灵活的事件触发编程机制,支持简单快速的策略开发与历史回测 平台支持单合约的投机模型开发,支持多合约的套利策略开发,还支持多合约的价差投机模型开发 8
PT平台特点-简易的“一页式”策略开发流程 禅智高频自动交易平台的策略开发的环境是Visiual C++,理念是C++一页式开发,也就是一页C++代码完成一个策略的开发,代码简单 平台提供了丰富的API函数库,在指标、及复杂的数学运算时可直接调用相关函数,简化代码 平台提供了简便的出场函数封装,方便简单实现策略的经典回撤出场、反向开仓等操作 平台提供报单、交易的回报事件触发函数,可进行精细交易执行策略控制
PT平台特点-策略编写简单 Lead a Change www.Leadachange.com
PT平台特点-准确、快速的历史回测 平台提供基于历史的多维度实盘数据回测。TICK级别的高精度数据,并支持由此合成的秒、分钟、小时不同时间维度的复盘回测,支持日线数据回测 高精度回测。对于投机模型,基于CTP一档行情模拟撮合成交,与实时操作流程完全相同;对于套利模型,平台提供数据同步机制,使得模拟流程基本等同于实时流程 速度快。平台基于数组的内存管理,数据访问速度快 完整的策略分析报告。平台生成模型各组参数的统计表,及每组参数对应的模型绩效报告,方便分析模型的优劣作辅助决策
PT平台特点-灵活高速的参数寻优机制 平台支持灵活、高速的策略参数配置与寻优机制 平台可对策略的合约信息进行配置;对策略的模型参数进行寻优 由于平台的高速存储设计机制,执行全网格法寻优时,分析2-3年的分钟历史数据,平均每秒钟可执行10-20组的参数运行,比市场类似平台平均速度快5-10倍 报告提供参数敏感性分析的通道,帮助用户分析与选择鲁棒性较高的策略参数
PT平台特点-多帐户、多策略实时自动交易 平台设计是一个进程一个帐号,同一台计算机支持多个平台进程、支持多个帐号操作(在计算机资源允许的条件下) 同一个帐号支持多个策略并行交易,高效率,实现全自动化交易 实时性强。平台基于TICK的精度计算,在两个TICK的时间间隔内完成交易,滑点小,降低交易成本 实时交易日志,以备交易员监控
成功案例 某期货公司CTA团队背景 --该期货公司具备CTA团队管理资格,正在打造精品CTA团队,团队有投资经理、金融工程师、风险控制员。 解决方案: --硬件配置 --PT软件平台安装与部署 --培训服务(33人日),培训标的:(4个人的CTA团队) --策略开发服务(48人日) 实战效果: --资金规模:200万;投资模式:纯日内+隔夜量化模型,多商品品种组合 --稳定运行5个月(起始日:2012年12月8日),运行帐号最多时达到五个;每个帐号负载策略最多达12个 --配合其稳健的策略组合,帐号总体稳定盈利;总盈利5个月超过30%
PT平台物理架构与网络拓朴 PT平台系统 网络拓朴
PT平台界面 开关控制 行情区 交易区 帐户信息区
高频平台建设的实施方法 一周 两个月 可选项 一年 数据库安装 数据下载程 序安装 PT高频交易 平台安装 策略开发平 台安装 电脑准备 硬件准备 软件布署 导入服务 增值服务 维护 数据库安装 数据下载程 序安装 PT高频交易 平台安装 策略开发平 台安装 电脑准备 网络准备 数据下载程 序使用 PT高频交易 平台使用 策略开发平 台使用 各类量化模 型例子说明 系统化培训 策略辅助开发 自有策略模 型开发 客户交易策 略开发 客户现场配 合开 通用性升级 个性化升级 一周 两个月 可选项 一年
硬件准备 最低要求(一个帐号多策略运行) CPU:1G以上 内存:>=1G 网络带宽:>=1M 硬盘:>=80G 理想的硬件配置(支持5个帐号多策略运行) CPU:2G(双核)以上 内存:>=2G 网络带宽:>=2M 硬盘:>=320G
软件布署 操作系统,可支持: Windows XP Win7(32/64) Windows server 2003 其他软件环境、库 SQL SERVER 2008 VS2008或者VS010 Boost库
安装SQL SERVER 2008 Enterprise版本 安装时选择默认 Windows身份验证模式 新建数据库CTPDATA 数据库系统搭建 安装SQL SERVER 2008 Enterprise版本 安装时选择默认 Windows身份验证模式 新建数据库CTPDATA 表空间大小:4-10G 新建方法:导入现有SQL脚本(CTPDATA_ALL_simple.sql) 新建表、触发器、存储过程 导入商品属性(如右下图示) 导入方法(CommoditiesInsert.sql) 建立工作任务 新建方法:导入现有SQL脚本(jobs_simple.sql) 参考:《 PT高频自动交易平台开发手册V1.0 》
数据落盘程序安装与使用 数据落盘程序的功能 下载每天实时数据到数据库 存储历史数据 数据库为平台提供历史数据 数据落盘程序前提要求 SQL Server 2008已安装好 商品属性已导入 工作任务已安装 数据落盘程序的安装与使用 安装CTP_DOWN到电脑 确保Internet网络畅通 设置任务计划,于每天期货市场开盘前自动运行
PT高频交易运行平台安装与布署 PT高频交易运行平台的功能 实时行情监控 手动交易 策略自动交易 组合配置 组合导入自动交易 帐户信息、交易日志监控 PT高频交易运行平台前提要求 历史数据库准备好 PT高频交易平台的安装与布署 PulseTrader的安装(ReleaseRunning_sim) 期货公司行情与交易接口的配置 模拟、实盘帐户的配置 配置文件:Config\Login.txt 参考:《 PT高频自动交易平台开发手册V1.0 》
PT策略开发平台安装与布署 PT策略开发平台的功能 编写、编译交易策略 StratDev生成策略DLL 可对生成的策略DLL进行调试 PT策略开发平台前提要求 安装VS008或者VS2010 历史数据库准备好,以备调试 PT策略开发平台的安装与布署 StratDev的安装 调试的配置包括: StratEsay\StratEasy\Config\Login.txt StratDev\Debug\Config\Login.txt StratDev\Release\Config\Login.txt
策略开发的操作:新建策略、编写编译策略、运行测试策略。 策略开发平台使用 策略开发的操作:新建策略、编写编译策略、运行测试策略。 编写编译策略的核心内容有:合约初始化、策略参数初始化、序列变量初始化、变量初始化、合约与策略相关信息初始化、指标与入场特征值运算、入场逻辑判断与指令操作、出场逻辑判断与指令操作。 举例:策略VBollingRSI_Template。 新建文件.cpp文件 根据模板添加策略类,继承自基类Cstrategy 编写策略 编译策略 运行调试
策略函数处于数据更新事件函数模块,其子模块包括: 策略开发平台使用 策略代码的构成 构造函数中的初始化(策略应用的合约对象。为该合约指定:合约名称、时间维度、交易手数等。) 在数据更新事件函数中构建策略(函数的触发机制:当该策略订阅的合约数据在CTP行情接收中有触发时,该方法被调用。) 策略函数处于数据更新事件函数模块,其子模块包括: 策略参数初始化 序列变量初始化 变量初始化 合约与策略相关信息初始化 指标与入场特征值运算 入场逻辑判断与指令操作 出场逻辑判断与指令操作
策略开发平台使用 运行调试策略 编译通过后,便可以运行策略 如果是在VC++下调试运行,由于该工程是一个DLL工程,需要设置调试的进程命令,如右图所示。(如果是Release版本,则需要将命令的路径设置成:..\..\Release\PulseTrader.exe) 运行测试两个方面:第一是策略编写的正确性;第二是策略的绩效。策略的绩效可以在这个路径查看:..PulseTrader\PulseTrader\Logging\。如果是直接运行..\Release\PulseTrader.exe或者..\Debug\PulseTrader.exe,则要到..\Release\Logging\或者..\Debug\Logging\下去查看。
运行平台使用-行情、手动交易 行情监视,如下视图所示的“行情区”,可选择合约查看实时数据 手动交易,关闭“开启自动”,于视图的左下角进行手动交易 帐户信息与交易状态在右下角的表显示
运行平台使用-自动交易 行情监视,如下视图所示的“行情区”,可选择合约查看实时数据 “工具”用于历史数据导入;“组合设置”用于配置策略组合;“导入”用于导入配置好的策略组合 左下角为策略配置区;右下角为帐户与交易监控区
运行平台使用-交易监控与日志 帐户与交易监控,如左下图示 交易日志,如右下图所示 成交状态监控:上面的表为“可撤单表”,是未完成的单子,通过双击可以撤单;下面 表是成交的单子。 持仓表:是显示当前所有持仓 历史委托:是显示当天所有的历史委托及最新完成的委托 交易日志,如右下图所示 TradeLog.txt,实时交易日志,包括发单指令信息记录,以调试问题 OrderCancelable.txt,可撤单日志;OrderStatus.txt,成交的单子日志 Positions.txt,持仓日志
运行平台使用-策略管理 策略管理UI如左下图示 策略添加,点击“策略”按钮进入添加策略的对话框,如右下图示 策略删除,选定需要删除的策略,点击“删除”按钮即可
运行平台使用-组合管理 组合管理UI如左下图示 第一步:组合设置,点击“组合设置”按钮进入对话框设置,如右下图示 第二步导入:导入,点击主界面(左下图)的“导入”,进度条显示其导入的进度。完成后,各策略状态显示为:“OnlineRunning”
FAQ 编译通不过,找不到boost类的头文件:安装boost头文件 在WIN7有时候显示的控件位置不对:设置“个性化”->“显示”->较小 有些系统甚至需要到注册有去修改字体格式
参考资料 《 PT高频自动交易平台开发手册V1.0 》 《禅智高频自动交易平台1.0版介绍 - 推广》 其他相关资料: \\192.168.1.33\共享文件夹\PulseTrader\禅智高频平台PulseTrader宣传文档资料 \\192.168.1.33\共享文件夹\PulseTrader\Installer
开放 合作 共赢