以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  是否策略程序化交易评测功能存在错误呀?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=34067)

--  作者:51friend
--  发布时间:2012/12/26 22:06:45
--  是否策略程序化交易评测功能存在错误呀?
 刚使用金字塔,在测试策略的时候,发现金字塔可能有如下错误,望解答。
首先打开股指连续的5分钟K线图表,然后把系统自带的“唐奇安通道”策略应用到图表上。看到在2012年12月19日的5分钟K线上的14:40那根K线上有开仓信号。请问触发开仓的条件是什么?是只要当前价超过前20根K线的最高价就开仓?还是要等到这根K线走完后收盘价超过前20根K线的最高价才开仓?

如果只要当前价超过前20根K线的最高价就开仓,那在10:25的那根K线就符合开仓条件了。如果是等K线走完后收盘价超过前20根K线的最高价才开仓,那开仓价应该是这根K线的收盘价,或者是下一根K线的开盘价,而不应该是14:40那根K线上的2396点。

请问你们这个软件的开仓逻辑是什么?这算不算是这个软件的错误呢?

--  作者:RogarZ
--  发布时间:2012/12/26 22:35:32
--  

Close历史K上是收盘价。c>30周期高点当然是以收盘价为准。

 

看了下代码,开平仓是用限价指令limitr+价格。

 

您先熟悉下软件 了解各种指令limitr  limit  market marketr  thisclose等等的区别吧

 

没有问题,不是BUG


--  作者:51friend
--  发布时间:2012/12/27 21:08:15
--  
 你的解释有问题。既然是以收盘价为准,2012年12月19日的5分钟K线上的14:40那根K线走完后,收盘价是2400.4,您怎么可能用限价指令在2396价位上买入呢?你用了限价指令就可以使时光倒转,让你在低的价位上买入吗?

所以本人认为触发信号的条件只有2种,一种是只要当前价超过前20根K线的最高价就开仓,另外一种是等待K线走完后的收盘价超过前20根K线的最高价就开仓。
--  作者:jinzhe
--  发布时间:2012/12/28 8:58:50
--  
看下单条件,条件满足就开仓
--  作者:51friend
--  发布时间:2012/12/28 23:20:30
--  
 您的解释还是不能自圆其说。举个例子,股指连续12月14日的5分钟K线上,在9:55那根K线走完后的收盘价是2278.8。在那根K线走完后,“唐奇安通道”策略用2262.4的限价单去开仓买进,这个开仓单是永远不能成交的,因为那根K线走完后,价格一路向上,那天的价格再也没回到过2262.4。既然下单条件没满足,那怎么可能有成交呢?但策略测试的结果显示,在9:55分居然开仓了,开仓价位为2262.4。你还不承认这是软件的错误???

策略测试模块非常重要,错误的软件会误导开发人员,会导致模型测试结果很漂亮,但实盘交易大相径庭。

--  作者:admin
--  发布时间:2012/12/28 23:47:34
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题4

建议先学习一下金字塔调试功能,

这样你再遇到问题的时候,可以通过一些调试手段来解决你的疑惑问题


--  作者:51friend
--  发布时间:2013/1/1 19:04:27
--  
 不好意思,这是策略测试模块的错误,是策略测试结果和实际情况不相一致,测试结果误导策略开发人员。您讲到的调试功能和策略测试模块没有因果关系。难道调试功能能自动改正策略测试模块的源代码,修正错误?
[此贴子已经被作者于2013-1-1 19:04:57编辑过]

--  作者:RogarZ
--  发布时间:2013/1/1 20:54:28
--  
仔细想了下,是我写策略代码的问题。
这个策略仅仅是个策略范例。这个策略原本是用market写的,中途想之前的策略都是用market写的。试着写个用限价指令吧,就顺手改了下单指令(limitr),前面的细节没注意。

测试的代码开仓条件是c>(<)n周期高低点。在历史K上是Close
下单是在本期内的限价(limitr)+指定价格。

你的想法非常对, 开仓应该改成H>n周期高点,L<n周期低点。下单价格换成market(或者limit+C),更贴切。

测试是允许指定价测试的。所以这类隐含的逻辑错误在测试中是无法识别的。
类似用未来函数来测试。

但是这个不是测试BUG哦,测试仅仅按照用户自己的定义进行执行。

最后,感谢您的纠错
[此贴子已经被作者于2013-1-1 20:56:13编辑过]

--  作者:51friend
--  发布时间:2013/1/7 13:49:28
--  
可能我们的理念有所不同,对于测试结果虚假到底错在哪里,每个人有每个人的看法。的确有很多平台的策略测试模块是无法防止代码作弊的,以前以为只要没有用未来函数,测试结果就是真实的。今天金字塔平台让我领教了用限价单也会造成测试结果虚假的情况。

可能我对这个交易平台的期望值比较高了,觉得一个好的平台是能最大限度地防止测试结果虚假。举一个例子,如果测试模块是按照时间系列,一根K线接一根K线地输入给策略,让策略拿不到未来数据,那么策略就是用了未来函数也无法作弊。MetaTrader4就是这么做测试的。