期货系统流程图3
上面的流程我用VBA完整实现
代码在下面excel文件里,VBA模块3是策略部分,模块4是简单的测试结果绘图
A列是日期,B列是收盘价格,这两列数据需要自己找来要测试的品种的历史数据,然后复制进去。表格中现成的是内盘豆的文华财经连续指数的数据,如果复制进去的数据没那么长,那么还要手动把多余的行删掉。BM2~BM6格子分别填一些初始参数,点“开始”进行测试(跑3000行数据可能需要20分钟),完成之后点“作图”看图形结果。表格里没加保密措施,有些列不用看的列我隐藏了,需要看计算过程和一些过程量的话可以自行取消隐藏,vba代码里的注释也比较详细。
excel文件下载地址:https://cid-4b31e7cb3751bb6f.office.live.com/self.aspx/.Public/qhcl-vba.rar
自从我把期货交易策略写出来,画了流程图之后,看帖的朋友提了很多问题,特别是清醒疯子、随缘2、龙行天地、stxxl、superlion等。我发现过去的流程图确实太粗枝大叶了,对于一些细节问题和特殊情况都没有严格的定义,我想这也可能是以前编不出程序,或者是有时候误操作的一些原因。感谢这些朋友的交流,在不断地实践和阐述自己想法的过程中,我逐渐能够把各种细节都清晰定义了。应龙行天地的要求最近把策略完整的程序化,本来是答应编在TB里的,后来试了下不行,所以还是用VBA来做。
这项工作完成之后,对于我的后续进步也是很有好处的。策略程序化后主要有两个作用:1是测试和改进 2是提供操作信号。我目前没有机械的资金管理策略,如果需要加入一些机械策略的话,测试验证是很需要的,而原先没有程序化时,需要反复地手动复盘多个品种的组合,精力上几乎不可能,现在有希望测试了。另外,我想在股市上放弃现有策略,也像期货一样组合后分散跟踪,这会增加很多的连续跟踪的品种。现在期货上10个左右品种我是人脑看图识别跟踪均线,虽然策略比较简单,就是看1秒钟的事,但是已经有时候会看错,如果品种再多一两倍,估计需要的精力和犯错的机会会大大增加,因此也需要电脑来帮助更进一步地简化。
上面这个excel表由于把很多过程量都填表了,而且不注意循环和代码的效率,测试3000行可能要20分钟,但是它是递推的算法,前一天的数据算好之后,后一天的数据是立刻得到的,因此它在实际运用(而不是做测试时)只要导入最新数据,计算策略结果是很快的。在TB中,策略是以公式的形式存在,每次点开一个图,它就从头到尾算一遍。excel是把历史的结果保存在了表格里,而TB没有地方存,每次都要重新,如果用来提供操作信号,每次打开看一个品种就要20多分钟,显然不可行的。如果仅是提供操作信号的话,我觉得excel可以在1分钟内给出30个以上品种的结果,这比我一个个切换品种,打开图表用肉眼去判断快多了。
最后补充一点,我不认为自己这套策略有多高超多厉害,贴出来也不是展示它有多好,而是为了在不断地交流中让它变得更好,让我不断反思自己的需求。谢谢大家
20100816 ADD:一个月前的这项工作并未圆满结束,大约在7月13日我就发现仍旧存在两个问题。1是波段起点的确定存在一些艺术化的意味,发现真的不容易机械定义,采用上一持仓周期的高低点的思路在震荡几次后就会有比较大的误差,至今没像出太好的编程思路。2是盈利保护并不是到了幅度立刻缩小均线的,如果当时不存在合适的均线,那么只要持仓方向不变,就始终保留着一次缩小均线的机会,当合适的均线出现时再缩小,这个问题已经编程解决了。(上面的流程图和文件里未体现)
现在实践中比较可行的方法是人工给定波段运行起点,一旦给定后,接下来的分析工作全部可以程序完成。每次反手后,继续人工设定波段起点。这在真实操作中是可行的,因为每天必定需要看一遍各个品种是否需要交易,如果交易了,顺便记录下波段起点并不增加太多工作量。如果启用这个程序,可以在临近收盘前将全部品种的当天数据导入,1分钟内给出需要交易的品种,然后执行,这简化了人眼观察所有品种的步骤,也就意味着同时跟踪交易的品种数量可以扩大很多。