龙听期货论坛's Archiver

龙听 发表于 2018-10-27 16:47

张轶的multicharts研究过程(转)

[color=#494949][font=simsun][size=14px]在中国做交易者苦,苦在自己有一些思路,但没有办法去验证。这里的[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]验证就是指交易系统的模拟测试[/size][/font][/color][color=#494949][font=simsun][size=14px]。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]过去我用tradestation 8.1 3006版做模拟测试,为此还写了一篇简短的教材,估计有些人看过了。只是tradestation还是有一些缺[/size][/font][/color][color=#494949][font=simsun][size=14px]点,比如8.2以上的版本才支持vista和windows7,8.1以上的版本无法正常导入TXT数据,无法产生正常的测试报告等等。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]在这种情况下,我准备开始研究multicharts。multicharts和tradestation本是一家,用老百姓通俗的话说:multicharts是tradestation的[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]高级版本[/size][/font][/color][color=#494949][font=simsun][size=14px],这样解释不为过。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]美国行情软件简介[/size][/font][/color]

[color=#494949][font=simsun][size=14px]美国行情软件有一点与中国很不同:大多都是收费的;美国的实时行情数据大多也是收费的。据海洋部落论坛的neo介绍,他认为目前成本最低的方法就是在tradestation公司开户,然后每月支付100美元的软件使用费,这样就可以交易美国投资品种了。目前美国行情软件都不支持中国投资品种。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]multicharts也是收费软件,目前最新版是5.5版。网上的破解版只有5.0beta2版,我正在使用这个版本,能装在windows7操作系统上面。我使用的这个版本可以收到美国投资品种行情,但这不是我研究的重点。我研究的重点是[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]导入10年以上的历史数据做模拟测试[/size][/font][/color][color=#494949][font=simsun][size=14px]。目前来看,导入TXT数据没问题,生成测试报告没问题,模拟测试报告可以存盘。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]感谢破解王[/size][/font][/color]

[color=#494949][font=simsun][size=14px]虽然目前最新版是5.5版,但成功的破解只有multicharts 5.0.1781.202 beta2的,这是东方华尔街论坛的破解王提供的,表示感谢。破解很简单,就是把破解王提供的几个文件覆盖原文件就行了。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]导入TXT数据[/size][/font][/color]

[color=#494949][font=simsun][size=14px]招商证券免费的行情软件就可以导出TXT文本,可以先导出excel格式,再整理成TXT文本。切记,不能有任何中文。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]导入TXT数据的具体方法见链接:[/size][/font][/color]


[url=http://www.tssupport.com/support/tutorials/]http://www.tssupport.com/support/tutorials/[/url]

[color=#494949][font=simsun][size=14px]这个网站的ASCII data和ASCII mapping有两个教学演示,其实就是导入TXT数据的演示过程,请认真观看几次,这样导入TXT数据的问题就解决了。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]导入TXT数据文字说明[/size][/font][/color]

[color=#494949][font=simsun][size=14px]在D盘建立一个文件夹,取名字为“multichartsdata”,把[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]下载好的TXT文件拷贝到这个文件夹[/size][/font][/color][color=#494949][font=simsun][size=14px]中,并把TXT文件的名字改为“shzs.txt”。(本例中是上证指数)[/size][/font][/color]

[color=#494949][font=simsun][size=14px]双击桌面上的“[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]QuoteManager[/size][/font][/color][color=#494949][font=simsun][size=14px]”,然后出现了一个界面。QuoteManager主要负责处理股票(包含期货和外汇)的代码和相关的数据服务器。我们现在要做的事是为已经下载的shzs.txt数据命名一个代码以区别于其它代码,故,我们决定这个代码就叫“shzs”。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]注意事项:我们取的代码名字不能和QuoteManager已经有的代码重复。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]在QuoteManager界面中,[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]点击工具栏中的“Symbol”(代码),点击“Add Symbol”(添加代码),点击“Manually…”(手工添加)。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]此时出现一个名为“Add Symbol”的界面,进行以下操作:[/size][/font][/color]

[color=#ED1C24][font=simsun][size=14px]Data Source[/size][/font][/color][color=#494949][font=simsun][size=14px](数据源):后面选择[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]Universal DDE[/size][/font][/color][color=#494949][font=simsun][size=14px](全球通用数据);[/size][/font][/color]

[color=#ED1C24][font=simsun][size=14px]Symbol[/size][/font][/color][color=#494949][font=simsun][size=14px]:输入shzs;[/size][/font][/color]

[color=#ED1C24][font=simsun][size=14px]Category(类型):后面选择stocks[/size][/font][/color][color=#494949][font=simsun][size=14px](股票。张轶注:shzs应该是股指期货,但我只当股票用,所以这里选择了股票,不影响使用。);[/size][/font][/color]

[color=#ED1C24][font=simsun][size=14px]Exchange[/size][/font][/color][color=#494949][font=simsun][size=14px](交易所):后面选择UNDEF(未定义的交易所。张轶注:本软件强啊,现在支持很多交易所,连中国的上交所和深交所都支持了,我目前当自己傻,选择未定义的交易所也行。)[/size][/font][/color]

[color=#494949][font=simsun][size=14px]点击“OK”,出现了“shzs – Edit Symbol”(shzs——编辑代码)的界面,[/size][/font][/color]

[color=#494949][font=simsun][size=14px]Symbol Root(代码缩写):我们填“shzs”(张轶注:相当于把中国石油缩写成zgsy);[/size][/font][/color]

[color=#494949][font=simsun][size=14px]Description(描述):我们填“shzs index”;(张轶注:这个可以随便填写,仅仅是注释作用)[/size][/font][/color]

[color=#494949][font=simsun][size=14px]点击“确定”,此时可以在QuoteManager界面的最下面一行看见了sp500。[/size][/font][/color]

[color=#ED1C24][font=simsun][size=14px]右击最下面一行的shzs,点击“Import Dat”[/size][/font][/color][color=#494949][font=simsun][size=14px](导入数据),点击“ASCII…”(一般指TXT数据),然后出现了ASCII Data Import界面,[/size][/font][/color]

[color=#494949][font=simsun][size=14px]我们在对话框中制定路径:D:\multichartsdata\shzs.txt,此时这个数据的详细信息就在下面出现了,基本上都不要改啦,点击“OK”。几秒钟后,出现一个界面说“the data was imported successfully”(数据成功导入),点击“确定”,大功告成。关闭QuoteManager界面,然后去打开multicharts主程序。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]双击桌面上的multicharts图标,然后出现一个对话框,点中对话框中的“[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]Online[/size][/font][/color][color=#494949][font=simsun][size=14px]: Load the locally stored data and connect to a real-time data feed”这句话,[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]勾选“Download[/size][/font][/color][color=#494949][font=simsun][size=14px] missing historical data”这句话,[/size][/font][/color][color=#ED1C24][font=simsun][size=14px]勾选“Show[/size][/font][/color][color=#494949][font=simsun][size=14px] Data Server Mode dialog box on startup”,点击:“OK”,进入multicharts。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]关闭所有的小窗口,一般是6个小窗口,这些窗口中的股票并不是我们要研究的股票,所以直接关闭它们的窗口。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]在主界面的空白区右击鼠标,点击“Chart Window”(图表窗口),然后出现了Format Symbol(格式化代码)界面,[/size][/font][/color]

[color=#494949][font=simsun][size=14px]在Data Source后面找到Universal DDE,下面就能看见shzs了,点击它,然后都在Symbol后面自动出现了shzs。再点击“Settings”(设置)选项卡,把Resolution(图表格式)后面设置成“Day”(日线图)。下面还有“Data Range”(数据范围),我们设置成“from 1990-12-19 to 2009-11-06”(从1990年12月19日到2009年11月6日)。点击“确定”,哈哈,竹线图生成了。如果不习惯竹线图,右击鼠标,点击“Format Symbol”,选择“Style”(风格),“Chart Type”(图表类型)选择“Hollow Candlestick”(这个就是K线啦)中间是“Chart Style”,做如下修改:[/size][/font][/color]

[color=#494949][font=simsun][size=14px]Up后面手工改成红色;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]Down后面手工改成绿色。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]下面的“Use as default”(作为默认格式),打勾。点击确定,中国人习惯的K线图出来了。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]模拟测试目标为上证指数,请到招商证券网站下载免费的行情软件并导入上证指数数据。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]编写交易系统[/size][/font][/color]

[color=#494949][font=simsun][size=14px]交易系统的编写是最难的。因为本人水平有限,只能编一个简单版的斯坦利•克罗交易系统。这个系统的原理很简单:[/size][/font][/color]

[color=#494949][font=simsun][size=14px]如果收盘价大于MA(HIGH,30)就买入1份合约;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]如果收盘价小于MA(LOW,30)就平仓。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]这个系统很简单,测试的结果也比较客观。再复杂的系统我也不会编写。暂时就编这个。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]双击桌面上的“PowerLanguage Editor”,这个是编程软件,在主界面点击“File”,点击“New”,此时出现一个对话框,选择“Signal”,这里就是指交易系统的信号啦,点击OK,此时出现一个对话框要求给交易系统取个名字,就取名为stanleykrollsystem,然后在编程界面输入以下文字:[/size][/font][/color]

[color=#494949][font=simsun][size=14px]if close crosses above average ( high , 30 ) and marketposition = 0 then begin;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]buy 1 share this bar at close;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]end;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]if close crosses below average ( low , 30 ) and marketposition = 1 then begin;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]sell 1 share this bar at close;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]end;[/size][/font][/color]

[color=#494949][font=simsun][size=14px]再点击“Compile”,这个动作的目的是寻找交易系统程序是否有错,如果有错,软件会提示错误,如果没有错误,界面下面会提示成功了,并自动把这个交易系统存盘了。确认存盘后再关闭PowerLanguage Editor。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]交易系统模拟测试[/size][/font][/color]

[color=#494949][font=simsun][size=14px]打开multicharts,导入上证指数数据,本例中我取的代码名字是shzs(上海指数的缩写)。先确认上证指数的数据是完整的,从1991年到现在的数据都是存在的。点击“Insert”“Signal”,此时出现一个选项框,在signal选项卡中找到stanleykrollsystem,点击后再点击确定。出现了一个format objects的对话框,这个对话框让你在模拟测试前对系统做一些设置调整,因为本系统实在是简单,我们只调整一个地方,点击properties,出现了一个对话框,就把里面的Interest Rate(利率)后面填写0,也就是不考虑利息收益。点击确定,点击close。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]请观察K线图,可以看见出现了买卖信号和交易的合约数量,因为本系统只交易1份合约,所以每个买卖信号交易的都是1份合约。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]点击View=>Strategy Performance Report,功能就是生成交易系统的模拟测试报告。几秒钟后,模拟测试报告就生成了。然后选择存盘,请存成excel格式,存盘时间特别漫长,请耐心等待。[/size][/font][/color]

[color=#494949][font=simsun][size=14px]一个完整的模拟测试报告“shzs Back-Testing Strategy Performance Report”完成了,本文到此结束。[/size][/font][/color]

页: [1]