以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- 跨周期调用数据不能及时更新 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=62166) |
-- 作者:滚雪球 -- 发布时间:2014/2/28 12:44:28 -- 跨周期调用数据不能及时更新 我的模型是1分钟周期下引用日线数据,我采取的方式是编一个日线的公式,然后在1分钟周期下使用##来调用。 我两次在早上开盘时发现日线数据不对,而且我之前也手工通过自定义补充数据进行了历史数据的补充,但是在 1分钟周期下它有时就是自己变不过来,而要把周期切换到日线以后再切换回来才能变过来,这个问题的存在对于 想全自动交易的用户来说影响很大,目前不得不人工检查,希望金字塔能够尽快解决。
|
-- 作者:yukizzc -- 发布时间:2014/2/28 16:07:09 -- 有没有右键查看过日线数据是否确实补充了,这个现象是偶尔出现的吗?下次出现你在1分钟下不显示日线数据时先右键查看下日线数据,本地这边也测试下是否存在该问题。 |
-- 作者:滚雪球 -- 发布时间:2014/2/28 16:24:21 -- 100%是补充过了,我遇到过两次,不是每次出现。 |
-- 作者:lichenghu -- 发布时间:2014/3/3 8:59:05 -- 引用日线指标下什么值?能给个反应问题的简单代码吗? |
-- 作者:滚雪球 -- 发布时间:2014/3/3 15:21:35 -- 大概是这样 先有一个日线指标DAYATR,大概是这样 TR1 := HIGH-LOW; //计算日内振幅 ATRD : EMA(TR1,M); 然后在1分钟线下 CYC:=BARSLAST(DATE<>REF(DATE,1))+1; TRD:=HHV(HIGH,CYC)-LLV(LOW,CYC); //如果振幅超过60点,则把今天的数据也包括进去,否则不含当天的数据 IF TRD>60 THEN BEGIN
ATRD := "DAYATR.ATRD#DAY"; END ELSE BEGIN
ATRD := "DAYATR.ATRD##DAY"; END
ATRD1:ATRD; 发现两种错误: 1. 就算日内只是简单的引用 ATRD := "DAYATR.ATRD##DAY"; ,有时早上补充了过去的日线和1分钟线,如果是在1分钟的界面下,也有可能不刷新,必须切换到日线下再切换回来才能刷新。 2. 如果日内波幅超过60,程序应该取新的ATRD值,也会出现刷新的问题。 |
-- 作者:yukizzc -- 发布时间:2014/3/3 15:35:28 -- 本地按你的代码,直接加载到1分钟图上然后扩充1分钟数据ATRD的显示没有问题啊。 |
-- 作者:滚雪球 -- 发布时间:2014/3/3 16:02:40 -- 问题主要是刷新,你只要重新载入一下图表肯定都正确了,单实际跑的时候我遇到了一次不行,后来没敢再用。 |
-- 作者:lichenghu -- 发布时间:2014/3/3 16:06:48 -- 引用不会存在问题的,您这个问题目前还没用户反馈过。
有可能是您本地数据刷新的问题导致值没显示 |
-- 作者:滚雪球 -- 发布时间:2014/3/3 16:28:10 -- 这个问题估计一般很难有人能发现,除非象我这样自己编代码,还自己盯着交易,并且还把用到的指标都显示出来了,还要碰巧出现问题的时候你发现了,这几个条件缺一不可。 这肯定不是显示的问题,我的交易记录显示程序是按照没有扩展ATRD的数据交易的,记录和后来重新加载过的图表的信号都不一致。 另外我现在每天早上开盘前都会去仔细检查ATRD这个值对不对(用几个金字塔的数据比对),现在是第二次发现数据不对。 一般典型的场景是这样的: 早上打开金字塔软件,登录,补充自定义数据,打开交易的合约1分钟图,核对ATRD数据,如果有误切换到日线再切换回来。
|
-- 作者:lichenghu -- 发布时间:2014/3/3 16:32:42 -- 您不用盯着看,如果确实有问题 。用DEBUGFILE输出到本地不就行了
|