如何用R来进行股票交易系统测试回测

苹果/安卓/wp
积分 3379, 距离下一级还需 221 积分
权限: 自定义头衔, 签名中使用图片, 隐身, 设置帖子权限, 设置回复可见
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡下一级可获得
道具: 千斤顶
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 186 天连续签到: 1 天[LV.7]常住居民III
本帖最后由 wqf_cufe 于
08:24 编辑
最近在网上看到一篇一个博客,里面有篇文章叫《两条均线打天下》。里面大量列举了如何用R来实现交易回测。其中有部分R的code,但是在信号那块没有给出具体的程序。我很喜欢作者的这个回测系统的显示,很简洁美观。所以想用自己的指标数据来做一个这样的R回测。但是水平不够,所以向大家请教写法。最好能和这篇文章的一样。链接如下:
我的设想是,在我的数据里有002613这只股票的开盘,收盘,最高,最低,以及两个自选指标的signal(均为0,1变量)。
我的策略是,“买入策略”出现1时买入50%的仓位,然后10天内再次出现此信号可以忽略(此处很难用code实现貌似)。
[size=13.px]“买入策略2”出现1时买入20%的仓位,同样,10天内再次出现此信号可以忽略。
[size=13.px]
[size=13.px]两个策略的平仓策略均为盈利20%就平仓。
[size=13.px]
#交易信号
& Signal&-function(cdata,pdata){} #代码省略
& tdata&-Signal(cdata,pdata)
& tdata&-tdata[which(as.Date(row.names(tdata)) head(tdata)
& && && && &Value op
#模拟交易
#参数:交易信号,本金,持仓比例,手续费比例
& trade&-function(tdata,capital=100000,position=1,fee=0){} #代码省略
& result1&-trade(tdata,100000)
# 查看每笔交易
& head(result1$ticks)
& && && && &Value op& &&&cash amount& &&&asset& &&&diff
132.45&&B& &&&0.25& & 755 & &&&0.00
125.50&&S 94752.75& && &0&&47.25
126.33&&B& &&&5.25& & 750&&94752.75& &&&0.00
125.55&&S 94167.75& && &0&&94167.75&&-585.00
127.60&&B& &126.55& & 737&&94167.75& &&&0.00
127.61&&S 94175.12& && &0&&94175.12& &&&7.37
# 盈利的交易
& head(result1$rise)
& && && && &Value op& &&&cash amount& & asset& &&&diff
127.60&&B& &126.55& & 737 94167.75& &&&0.00
127.61&&S 94175.12& && &0 94175.12& &&&7.37
127.47&&B& &108.79& & 633 80797.30& &&&0.00
128.30&&S 81322.69& && &0 81322.69& &525.39
126.36&&B& &120.40& & 632 79979.92& &&&0.00
142.24&&S 90016.08& && &0 36.16
# 亏损的交易
& head(result1$fall)
& && && && &Value op& &&&cash amount& &&&asset& &&&diff
132.45&&B& &&&0.25& & 755 & &&&0.00
125.50&&S 94752.75& && &0&&47.25
126.33&&B& &&&5.25& & 750&&94752.75& &&&0.00
125.55&&S 94167.75& && &0&&94167.75&&-585.00
128.76&&B& & 51.56& & 731&&94175.12& &&&0.00
128.36&&S 93882.72& && &0&&93882.72&&-292.40复制代码我的数据集在附件里,谢谢!
(10.47 KB)
10:45:36 上传
[size=13.px]
鼓励积极发帖讨论
总评分:&学术水平 + 1&
热心指数 + 1&
本帖被以下文库推荐
& |主题: 122, 订阅: 15
支持一下。
line_us 发表于
支持一下。谢谢!!!
翻一倍悬赏中,谢谢!!!
楼主你好,& trade&-function(tdata,capital=100000,position=1,fee=0){} #代码省略,其中的代码省略的部分可以分享一下么
看他的视频就有源码了呀,不过这个只是测试,还不是实盘交易。
谢谢!!谢谢!!
#这几个都是金融交易相关的程序包,可以参考一下
library(quantmod)
library(TTR)
library(IBrokers)
library(PerformanceAnalytics)复制代码http://blog.fosstrading.com/2009/04/testing-rsi2-with-r.html
http://blog.fosstrading.com/2011/03/how-to-backtest-strategy-in-r.html
https://kylebalkissoon.wordpress.com//a-framework-for-buildingtesting-indicators-and-strategies/
热心帮助其他会员
总评分:&论坛币 + 20&
tdata&-tdata[which(as.Date(row.names(tdata)) head(tdata) 这句正确怎么写
大兵哥 发表于
tdata估计不正确
使用Quantmod的lag(),next(),可以前后几日对HOLC操作,来比较10日后问题
初级热心勋章
初级热心勋章
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
r语言股票预测 基于R语言股票市场收益的预测分析_罗海玲.doc 46页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
r语言股票预测 基于R语言股票市场收益的预测分析_罗海玲
你可能关注的文档:
··········
··········
r语言股票预测 基于R语言股票市场收益的预测分析_罗海玲
UJIANCOMPUTER
基于R语言股票市场收益的预测分析
罗海玲,郑根
(福州大学数学与计算机科学学院福建福州350108)
【摘要】当今互联网的信息社会,股票以及股票市场与人们日常经济生活不可分割,因此利用信息技术对股票市场收益的预测分析也成为研究热点。本文将基于开源R语言开发环境,根据每日交易数据,通过预测模型初步建立股票预测以及交易系统,具体包括时间序列处理、BP神经网络建模、支持向量机以及蒙特卡罗估计等数据挖掘技术在单支股票市场收益的综合分析应用。结合给定的交易策略,预测模型数据分析实验给出了股票买卖信号,为投资者提供了一些有意义的统计指标。
【关键词】R语言;时间序列;支持向量机;多元自适应回归样条;蒙特卡罗估计
0引言近来,大数据、云计算以及数据挖掘等名词已变得耳熟能详。十几年来,信息数据增长之巨大已到了令人咂舌地步,大型数据库、数据仓库被用于商业管理、政府办公、科学研究和工程开发等。然而面对海量数据,如何从中及时发现有用的信息,提高信息利用率是当今面临的又一大难题。要想使数据真正成为有用的资源,只有充分利用它为业务决策和战略发展服务才行,否则大量的数据只能成为包袱。
90年代以来,股票作为一种新型投资理财方式传入中国市场,掀起了一场“全民炒股”的热潮。买股票与银行储蓄存款及购买债券相比较,是一种高风险行为,但同时它也能给人们带来更大的收益。购买股票,每年可得到上市公司的红利和红股回报,也能够在股票市场上交易,获取买卖价差收益。并且股票投资金额具弹性,相对于房地产与期货,投资股票并不需要太多资金。由于股票价位多样化,不同层次投资人都可参与,选择自己财力足可负担的股票介入。因此即使股票投资有风险,但是股票投资在中国依然很受大众的欢迎。中国股票市场经过2005年至2007年的持续迅速上涨之后,受到2008年全球金融危机的影响开始暴跌,但是在2012年下半年底至今,结束其持续下跌阶段,开始进入稳步上升阶段。股票市场,变幻莫测,有的人“一夜暴富”,有的人“倾家荡产”,由此可见,股票市场收益的预测对广大股民而言具有一定辅助作用。
数据挖掘(DataMining,DM)指从数据中发现有用的、有效的、未知的并且可以理解的信息的一项技术。从数据本身考虑,通常数据挖掘需要有信息收集、数据集成、数据规约、数据清理、数据变换、数据挖掘实施过程、模式评估和知识表示这8个步骤,数据挖掘的重点之一在于数据的预处理,只有相对正确有用的数据进行分析才能得到预期目标。对数据挖掘而言股票市场交易是个巨大潜力的应用领域。事实上,由于大量历史数据的存在,人工对这些数据进行检测是很困难的,而数据挖掘技术对大数据有先天的优势。在软件方面,R是一门用于统计计算和绘图的函数语言,利用R语言的开源优点以及R高度灵活的数据库接口,可以对大型问题进行数据有效地挖掘。
1相关技术概述1.1R语言
R语言是用于统计计算和绘图的函数,不仅有强大的命令行交互方式,还可利用R语言的开源优点增加修改R添加包的功能。在R语言中,数据都是以对象的形式存储,使数据操作变
得便捷,进行数据分析任务变得容易。而且用户无需了解函数
调度的细节,R语言能调用默认的绘图方法。即当用户创建一个新的类对象时,R语言能对该类对象提供特定的绘图方法,该绘图方法将会告诉R如何绘制这个新类对象,图像对于分析数据起关键作用[2]。
本文主要对利用R语言开源平台进行股票数据挖掘分析,
历年来的单支股票的交易日期、当日开盘价、当日最高价、当日最低价、当日收盘价、当日成交量以及当日调整后的收盘价等数据信息来预测未来K天的总体价格趋势。本文预测不是预测具体哪一天这支股票价格,而是一个时间段的总体趋势,在这个时间段中,会出现价格的高低浮动。
1.2BP(BackPropagation)神经网络
BP神经网络(BackPropagationNeuralNetwork,BPNN)可以处理高度非线性问题,因此在金融预测中得到广泛应用[4]。实际上,BP经网络的误差反向后传BP学习算法是Rumelhart,Mc-Clelland1985年提出的,是一种按误差逆传播算法训练的多层前馈网络,用输出后的误差估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得所有其他各层的误差估计。BP网络能学习和存贮大量的输入-输出模式映射关系,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。此网络既可以用于分类问题,也可以用于回归问题,因此适用于预测任务。图1是BP神经网络图。
图1BP神经网络
1.3支持向量机
用于解决回归和分类问题的支持向量机(SupportVectorMachine,SVM),在
正在加载中,请稍后...股票量化交易回测框架pyalgotrade源码阅读(一)
<span type="1" blog_id="1953541" userid='
分享到朋友圈
关注作者,不错过每一篇精彩

我要回帖

更多关于 怎么进行股票交易 的文章

 

随机推荐