欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 奇怪问题:多品种后台监控程序,有两行代码会导致程序计算错误

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有6685人关注过本帖树形打印复制链接

主题:奇怪问题:多品种后台监控程序,有两行代码会导致程序计算错误

帅哥哟,离线,有人找我吗?
paulshen
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
奇怪问题:多品种后台监控程序,有两行代码会导致程序计算错误  发帖心情 Post By:2012/10/24 19:56:11 [显示全部帖子]

下面的代码,运行在后序列模式下,用于监控多个品种。运行时,ATR等输出为空,通过删减代码,最后确定引起该问题的是标有***的几行代码。可以稳定重现,专业版2.93。请金字塔的朋友看一下。我怀疑是编译中的问题。

 

INPUT:AP(5,1,20,1);
INPUT:PS(1.7,0.2,5,0.1);
INPUT:PB(1.7,0.2,5,0.1);
INPUT:ND(4,1,100,1);
INPUT:DF(1,0,1,1);

INPUT:NA(20,1,100,1);
INPUT:SLA(0.5,0.1,100,1);

INPUT:TU(12,2,100,1);
INPUT:AN(0.5,0.1,2,1);

FILEPATH:='D:\DEBUGFILE\TestBug.TXT';
DEBUGFILE(FILEPATH,'Test:%.0f',100); //***此行和后面的代码会导致ATR计算无结果


CTIF:=1;
CT:=1;
//ATR
NA1:=IF(BARPOS<NA+1,BARPOS,NA);

//由于后面两行代码,,见debugfile输出祷刂担鹍ebugfile输出
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
TTR:=high;
TTA:=abs(high-low);
ATR1:=MA(TR1,NA1);
ATR:=if(barpos=1,ATR1,ref(ATR1,1)),linethick0;
SL:=ATR*SLA;


//***下面这两行代码会导致上面的计算结果均为空,见debugfile输出!
if CTIF then begin
end


DEBUGFILE(FILEPATH,'=======',0);

DEBUGFILE(FILEPATH,'parameters-----',0);

DEBUGFILE(FILEPATH,'MP_AP:%.0f',AP);
DEBUGFILE(FILEPATH,'MP__ND:%.0f',ND);
DEBUGFILE(FILEPATH,'MP__PB:%.2f',PB);
DEBUGFILE(FILEPATH,'MP__PS:%.2f',PS);
DEBUGFILE(FILEPATH,'MP__DF:%.2f',DF);
DEBUGFILE(FILEPATH,'MP__NA:%.2f',NA);
DEBUGFILE(FILEPATH,'MP__SLA:%.2f',SLA);
DEBUGFILE(FILEPATH,'MP__TU:%.2f',TU);
DEBUGFILE(FILEPATH,'MP__AN:%.2f',AN);
DEBUGFILE(FILEPATH,'MP__SN:%.2f',SN);
DEBUGFILE(FILEPATH,'MP__TTR:%.2f',TTR);
DEBUGFILE(FILEPATH,'MP__TTA:%.2f',TTA);
DEBUGFILE(FILEPATH,'MP__TR1:%.2f',TR1);
DEBUGFILE(FILEPATH,'MP__ATR1:%.2f',ATR1);
DEBUGFILE(FILEPATH,'MP__ATR:%.2f',ATR);


 回到顶部
帅哥哟,离线,有人找我吗?
paulshen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
奇怪问题:多品种后台监控程序,有两行代码会导致程序计算错误  发帖心情 Post By:2012/10/25 11:44:29 [显示全部帖子]

我没试图表方式。


 回到顶部
帅哥哟,离线,有人找我吗?
paulshen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
奇怪问题:多品种后台监控程序,有两行代码会导致程序计算错误  发帖心情 Post By:2012/10/25 11:44:57 [显示全部帖子]

后台是可以稳定重现的。

 回到顶部
帅哥哟,离线,有人找我吗?
paulshen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
后台程序能允许同一根K线多次交易吗?我要自己控制交易次数。  发帖心情 Post By:2012/10/25 18:53:28 [显示全部帖子]

以下是引用董小球在2012-10-25 16:02:41的发言:
楼主,你代码的问题主要是因为选择了序列模式,如果选择逐K模式就没有问题了,

你的代码里有一些统计性质的函数,必须要在逐K模式下才能正常运行。

程序里没几个函数啊,那个函数必须在逐K线模式下运行?


 回到顶部
帅哥哟,离线,有人找我吗?
paulshen
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
  发帖心情 Post By:2012/10/28 13:20:35 [显示全部帖子]

谢谢,祝金字塔越做越好!

 

再顺便报告另一个问题,我猜也是编译的问题:

A*B*C/(D*E*F) 似乎计算不对,改成(A*B*C)/(D*E*F)就对了。


 回到顶部