以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]同样的公式加入图表回测和条件预警结果不一致  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=161762)

--  作者:jztxjl
--  发布时间:2018/2/28 16:19:14
--  [求助]同样的公式加入图表回测和条件预警结果不一致


图片点击可在新窗口打开查看此主题相关图片如下:预警1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:预警2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:预警3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:预警4.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:预警5.png
图片点击可在新窗口打开查看
我编写了一个公式 名字是MIN_ZHENG 然后设置了一个变量CON_ALL 需要6个CON都是true时才是true

然后当CON_ALL是true时买入。

该公式运行在分钟线上,其中条件6代表此时的今日涨幅>5% 如图3

 

我又编写了一个条件预警叫SEE_ZHENG 指标公式选择了1分钟的MIN_ZHENG 条件设为CON_ALL 如图1

 

然而诡异的事情发生了!!!

今日14:42发生了预警 如图2

打开该股分时 如图3 可以明显看到绝对不符合CON(今日涨幅5%) 却预警了

打开该股的图表 加入公式MIN_ZHENG,没有发出信号。

 

另外15点后复盘发现

其中一个在预警池中的票符合全部条件持续了3分钟 却没有预警

打开该股的图表 加入公式MIN_ZHENG,连续3分钟发出信号。如图5

 

请问这是什么原因 为什么图表交易和预警对不上(图表为模拟交易)???


--  作者:banzhuan
--  发布时间:2018/2/28 16:48:48
--  
您后台中指定刷新数量为多少呢? 在后台如果设置的指定刷新K线数量小于todaybar的值,是取不到昨收的值的;

图片点击可在新窗口打开查看此主题相关图片如下:101.png
图片点击可在新窗口打开查看

--  作者:jztxjl
--  发布时间:2018/2/28 16:52:17
--  

我就怕这个问题 所以没有勾选这项


--  作者:banzhuan
--  发布时间:2018/2/28 17:19:14
--  
很有可能是数据不完整,您是不是每天都做收盘呢? 如果是1分钟数据不全,可能ref取到的值是昨天前天或之前有数据的一天;您补充一下1分钟数据后,再试试呢;
--  作者:jztxjl
--  发布时间:2018/2/28 17:46:30
--  

好的吧 我先补充了 确实不确定是否有昨天所有票的分钟数据 明天再试试吧

 

不过有了几点新的小疑问

就是比如现在是明天的9点40

1那么系统是不是实时下载我预警池里所有票的分钟数据?(如果不是 那感觉预警没法用了啊)

2预警条件是分钟级的ref(close,todaybar)能取到前一日收盘价吗?会不会受集合竞价的影响导致可能取到的不是?

 

3最后:这个预警有没有回测功能啊???找了半天没找到啊 像我这样出了问题(出现不符合预期的信号)试着改正(补数据)后都没办法重现(重新经历今天) 只能等明天期望(新的)BUG(非预期信号)再次发生。。。这样不知道要试到哪年才能测试完啊。。


--  作者:banzhuan
--  发布时间:2018/3/1 9:27:22
--  
1. 如果您是9:40分登入的系统,需要先补充一下当日市场的分笔周期数据,工具 》 数据补充 》 批量补数据 》 日内分笔成交周期数据;如果是开盘前打开就没问题;
2. 不会自动下载历史的分钟级别数据的,因为没有数据,可能ref(close,todaybar)取到的是前几日有数据那天的收盘价的;
3. 后台程序化也是支持历史回测的,需要专业版的金字塔;

图片点击可在新窗口打开查看此主题相关图片如下:32.png
图片点击可在新窗口打开查看

--  作者:jztxjl
--  发布时间:2018/3/1 11:27:00
--  

我今天9点15之前开的交易软件 昨天收盘我补过数据了

今天继续出问题 该预警的没预警 不该预警的预警了

跟昨天一样 在图表中插入公式和在预警中插入条件结果不一致

 

再说一次 现在逻辑很简单 就是有5个条件 分别是CON1 2 3 5 6 然后CON_ALL是&&这5个条件

公式里我设置了

IF CON_ALL THEN

BEGIN

        BUY(1,100,THISCLOSE);

END

这样CON_ALL是true的话公式加载在图表上就买了

 

我现在把CON_ALL加入到预警条件中了 这样CON_ALL是true就会报警

 

1以上逻辑有问题没?

没问题继续

 

现在问题是 有的图表上都开仓3次了 预警都没有 有的预警了 图表不交易(事后观察是预警功能有问题)

 

这个策略是运行在1分钟线上的 然后CON1 2 3引用了日线级的数据 今天到目前为止预警了三个个股了 CON3全都不符合

 

2短周期引用长周期数据 长周期数据都已经固定了 总不能变化吧?

 

3所以我添加了三个新的预警 条件分别是CON1 2 3(都是引用的日线指标) 股票池都只设置了同一个CON_ALL预警的票

结果CON3该票没有预警!!!!!

 

就算是数据不全 同样的数据 怎么可能CON3都没预警 CON_ALL就预警了呢????(CON3为过去的日线指标 不会随当日时间改变)这预警功能有问题啊!!!


--  作者:gxx978
--  发布时间:2018/3/1 13:18:34
--  

1、从逻辑上看,应该不存在代码的逻辑问题。

2、短周期如果引用的是历史上的长周期数据,那是固定的不会发生变化,如果是引用当天长周期的数据,那是会发生变化

3、在保证当天的分笔数据和所需要的日线数据都是完整的基础上,可以用debugfile输出条件看,看本地预警上输出的条件的各个值是多少,是否满足,再和图表上各个条件的值进行比较,看是哪个值计算的不同导致的结果不同,再进行分析原因。由于本地预警无法直观的看到各个指标在K线上的值,所以在出现问题时,需要使用debugfile输出调试。你也可以提供你的完整指标,工作人员协助进行调试。

调试技巧参考帖:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=1246

[此贴子已经被作者于2018/3/1 13:28:12编辑过]

--  作者:jztxjl
--  发布时间:2018/3/1 14:24:22
--  

我觉得是这个跨周期引用在预警模式下会出问题似得

 

好吧 那我提供一下吧 我现在写了两个公式 然后分别对CON_ALL做预警指标

一个这样:

CON3:"DAY_ZHENG.A3##DAY"; //引用
CON5:CLOSE>REF(CLOSE,1)*1.01; //一分钟涨幅1%
CON6:CLOSE>=REF(CLOSE,TODAYBAR)*1.05; //今日涨幅5%
CON_ALL:CON3 && CON5 && CON6;

 

另一个这样:

CON5:CLOSE>REF(CLOSE,1)*1.01;
CON6:CLOSE>=REF(CLOSE,TODAYBAR)*1.05;
CON_ALL:CON5 && CON6;

 

引用为:

A3:VOL>REF(VOL,1) && REF(VOL,1)>REF(VOL,2); //如果今天是4号 则1 2 3日成交量逐天放大

 

就类似一个简单的短线精灵

就这么一会300487蓝晓科技和002863今飞凯达两个指标都报了 但是引用长周期的指标在预警里好像完全失效了 不管什么都是true 这俩成交量都不符合递增 第一个还是递减的。。。


--  作者:jztxjl
--  发布时间:2018/3/1 14:31:02
--  

得 就刚刚300377赢时胜也报了

 

这是符合我要的成交量的标准的。。。

 

结果。。。这次是CON5 && CON6的那个报了。。加上成交量CON3的反而没报。。。。怎么正好反过来了还。。。。