楼主: wanwanle2
12189 25

[实际应用] 基于SAS期货程序化交易策略回溯系统的搭建 [推广有奖]

  • 1关注
  • 22粉丝

博士生

87%

还不是VIP/贵宾

-

威望
0
论坛币
323 个
通用积分
294.6629
学术水平
16 点
热心指数
18 点
信用等级
14 点
经验
286983 点
帖子
307
精华
0
在线时间
369 小时
注册时间
2011-4-13
最后登录
2022-8-1

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
之前发表一个马尔科夫链交易系统的问答帖子,经过这两个多星期的研究,终于研究出成果啦
原帖:https://bbs.pinggu.org/thread-1818619-1-1.html
原帖:https://bbs.pinggu.org/thread-1593992-1-1.html

    马尔科夫链模型具有随机性、无后效性及不过分依赖历史数据的特点,通过期货价格历史数据训练马尔科夫状态转移概率矩阵,可以根据当前价格所处的状态推断出下一步价格的状态,从而建立投资决策系统,指导买卖。

    马尔科夫链是随机过程中最重要的理论之一,它对于离散序列的预测具有不可逾越的优越性,目前用国内马尔科夫链对证券价格或成交量预测的研究(或学术论文)比较少,而且用于做投资决策研究的更是甚少。但是,在国外近30年内,马尔科夫链已经被广泛的运用在金融市场,最具有意义的是在算法交易的运用中。算法交易(algorithmic trading)是指在金融市场中,投资者通过计算机程序来下达交易订单,并由计算机算法来确定交易订单的交易时机、价格、下单的数量等的交易方式。具体来说,金融界对算法交易的内容和范围似乎还没有明确的界定,其中包括了很多不同的自动化交易方式和功能。订单智能路由、程序交易、订单分割、基于规则的自动化交易等等都会在不同场合被称为算法交易。而通过利用马尔科夫链,能快速有效的预测价格的涨跌和成交量的增减,以此来指导订单智能路由、订单分割和程序化交易。
具体的投资决策是,首先定义 m个状态,用前 N时间段的K线收盘价数据作为训练数据集,训练T步状态转移概率矩阵,然后利用当前的收盘价数据预测第 T个时刻的价格,如果预测的价格大于当前的价格,则做多;如果预测的价格小于当前的价格,则做空。
    一共设置五个状态1、2、3、4、5分别表示大跌、小跌、盘整、小涨、大涨,利用历史前 天至今的开盘价数据训练状态转移矩阵,根据马尔科夫模型,进行预测。入场逻辑如下:
        如果当前状态处于状态4或5,而且预测下一步转移为状态5(大涨),那么做多。
        如果当前状态处于状态1或2,而且预测下一步转移为状态1(大跌),那么做空。
        当前持有多仓,如果预测下一步状态转移为3(盘整),则平仓;如果预测下一步状态转移为1(大跌),那么平多且反手开空。
       当前持有空仓,如果预测下一步状态转移为3(盘整),则平仓;如果预测下一步状态转移为5(大涨),那么平空且反手开多。

1、九个合约的参数测试
这里我用SAS的BASE and MACRO 实现了马尔科夫链交易系统回溯程序,用SAS\GRAPH设计了策略绩效分析图形。测试了8个商品合约(橡胶、沪铜、沪铝、沪锌、PTA、白糖、郑棉)和IF300指数,结果显示所有测试的品种全部盈利。
下面是橡胶连续参数测试结果(其中的参数是时间窗口,也即用多少个Bar来训练状态转移概率矩阵)
橡胶连续参数测试.bmp

2、投资组合回溯
将马尔科夫链交易系统的时间窗口参数设置为12(即用12个Bar来滚动训练马尔科夫链状态转移概率矩阵),投资组合包含:沪铜、橡胶、郑棉、沪铝、股指期货。分别用其连续日收盘价数据进行回溯,时间区间为:2006-01-04—2012-10-26。另外设定初始资金为1000000,分配给每个合约200000,对每次进出场只允许使用30%的资金。假定每个合约的保证金比例都为13%,双边手续费为6%%。
投资组合收益率曲线图
组合收益率.bmp
投资组合资金曲线图
资金权益.png

3、橡胶连续回溯


橡胶连续2011年投资决策图(如果将7年全部展示的话,信号都挤在一起,不容易观测,这里只展示2011年度的)
橡胶连续2011年决策图.bmp

橡胶连续收益分布
橡胶连续收益分布.bmp

橡胶连续收益率曲线图
橡胶连续累计收益率曲线图.bmp

橡胶连续资金权益图
橡胶连续资金权益面积图.bmp


橡胶连续资金回撤率
橡胶连续资金回撤率.bmp

测试平种:橡胶连续

开始时间:2006-01-04

结束时间:2012-10-26

初始资金:200000

最终资金:362042.033

保证金比例:13%

双边手续费:6%%

每次开仓使用资金:30%的资金

总交易次数:274

盈利次数:141

胜率:51.4598%

净利润:162042.033

净利润率:81.021%

最大回撤:7.294 %


平台:SAS9.1.3

交易信号及指标计算:SAS \BASE、MACRO

绩效分析图:SAS\GRAPH

这里非常感谢   davil2000 提出的宝贵的意见。欢迎各位指导,欢迎跟帖,大家一起交流学习。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:程序化交易 交易策略 程序化 Algorithmic Algorithm 股票 策略 期货 价格 计算机程序

资金权益.png (18.26 KB)

资金权益.png

组合收益率.bmp (44.14 KB)

组合收益率.bmp

回帖推荐

air320322 发表于7楼  查看完整内容

1)不知道你的交易时间框架式多少? tick?秒?分?小时? 2)手续费设定的比较高 现在橡胶和IF实际运作费率差不多万1,楼主设定万6,不知道是否想考虑冲击成本和滑点的因素 其实滑点有时候有利于你,有时候不利于你,综合下来其实是随机的。除非你的策略都是突破、趋势策略 3)楼主测试的只有三个交易所 可以加上大商所的品种试试看 4)楼主的资金设定比较小,容易产生类似“零股”的问题 可以把初始资金设定大一些, ...

数据分析师3K 发表于3楼  查看完整内容

LZ辛苦了 人气旺的未必就是精品 交易法则是高端研究
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
eijuhz + 1 精彩帖子
air320322 + 1 + 1 + 1 很实际的运用贴
数据分析师3K + 100 + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  论坛币 + 100  学术水平 + 7  热心指数 + 6  信用等级 + 6   查看全部评分

本帖被以下文库推荐

沙发
wanwanle2 在职认证  发表于 2012-11-6 09:16:27 |只看作者 |坛友微信交流群
看来不是很给力啊

使用道具

LZ辛苦了
人气旺的未必就是精品
交易法则是高端研究
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
wanwanle2 + 1 + 1 + 1 我很赞同

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

板凳
wanwanle2 在职认证  发表于 2012-11-7 10:17:15 |只看作者 |坛友微信交流群
数据分析师3K 发表于 2012-11-6 22:04
LZ辛苦了
人气旺的未必就是精品
交易法则是高端研究
谢谢,表示赞同。个人认为在一套交易系统的研发中,其交易法则交易理念是至关重要的,相应的测试平台也决定了测试的准确度,SAS以其特有的语法格式,构建交易策略的回溯系统也是很有研究价值的地方。

使用道具

报纸
air320322 发表于 2012-11-7 21:14:48 |只看作者 |坛友微信交流群
wanwanle2
你好,
1)连续合约数据是哪里来的?是合成的连续指数数据吗?

2)SAS的回溯系统框架可以分享吗?不奢求买卖交易规则
不明真相的群众

使用道具

地板
wanwanle2 在职认证  发表于 2012-11-8 09:15:28 |只看作者 |坛友微信交流群
air320322 发表于 2012-11-7 21:14
wanwanle2
你好,
1)连续合约数据是哪里来的?是合成的连续指数数据吗?
你好,
连续合约的数据是内部处理的数据,直接用SAS连接数据库的。如果没有数据来源的话,一般从各券商的看盘软件上可以直接下,只是比较麻烦。
程序当然可以分享,我想等到把每个模块都写成MARCRO后再一并给出。

使用道具

7
air320322 发表于 2012-11-8 09:48:07 |只看作者 |坛友微信交流群
1)不知道你的交易时间框架式多少?
tick?秒?分?小时?

2)手续费设定的比较高
现在橡胶和IF实际运作费率差不多万1,楼主设定万6,不知道是否想考虑冲击成本和滑点的因素
其实滑点有时候有利于你,有时候不利于你,综合下来其实是随机的。除非你的策略都是突破、趋势策略

3)楼主测试的只有三个交易所
可以加上大商所的品种试试看

4)楼主的资金设定比较小,容易产生类似“零股”的问题
可以把初始资金设定大一些,至少按照一个专户的标准3000万来设定。
不明真相的群众

使用道具

8
air320322 发表于 2012-11-8 09:50:15 |只看作者 |坛友微信交流群
5)楼主回溯的时候,有些指标比较重要,可以尝试增加如:
年化收益率/最大回撤

夏普率

6)做参数敏感性测试
比如交易成本的敏感性
不明真相的群众

使用道具

9
wanwanle2 在职认证  发表于 2012-11-8 09:58:59 |只看作者 |坛友微信交流群
air320322 发表于 2012-11-8 09:48
1)不知道你的交易时间框架式多少?
tick?秒?分?小时?
你好!
马尔科夫链系统的适用性有很大的局限性,即使对于同一个品种,不同的时间框架可能并不全部满足马尔科夫性质。这就需要注意的是,不管什么品种,什么框架,只要检验近期历史数据满足马尔科夫性,都可以适应。
1)本测试的时间框架是1日的。以前测试过5M的,但是基本是亏钱的。
2)至于手续费问题,我没有将不同品种手续费单独设定,只是想取一个平均值,整体检测下。
3)这个可以试试。
4)确实资金设定小了,20W的资金,如果做沪铜,按照30%的资金入场,也只能做1手,确实有问题。

使用道具

10
wanwanle2 在职认证  发表于 2012-11-8 10:07:27 |只看作者 |坛友微信交流群
air320322 发表于 2012-11-8 09:50
5)楼主回溯的时候,有些指标比较重要,可以尝试增加如:
年化收益率/最大回撤
感谢提出宝贵建议,正准备收集所有必需的指标,然后SAS生成个REPORT,这样以后可以直接调用了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 12:20