以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于“引用公式过多......"的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=58857)

--  作者:fyinwater
--  发布时间:2013/11/15 20:50:22
--  关于“引用公式过多......"的问题

1、在引用公式的时候,如果参数超出范围,会有“引用公式过多....”的错误。实际上,是参数超出范围,应该属于程序提示错误没有区分
2、我的如下代码也引起。“引用公式过多....”  貌似是把close赋值给变量引起的

/////////////////////////////  逐K线模式
VARIABLE:mxk=0;
VARIABLE:Kwf=1;
 VARIABLE:dl=0;
   Bnmin:=3 ;
    BnBT:=2;
     URSI:=1;
     YJ:=2;
     RSIF:=3;
     dl:=0;
     dl:=close;  // 这里如果换成了具体数字,就不会弹出“引用公式过多....”的警告。
     Kwf:=DL  ;  

     Bnmins:=numtostr(Bnmin,0);
     BnBTs:=numtostr(BnBT,0);
     URSIs:=numtostr(URSI,0);
     YJs:=numtostr(yj,0);
     RSIFs:=numtostr(RSIF,0);
     Kwfs:=numtostr(Kwf,0);  
   
   PT0:= STKINDIEX(\'\',\'Formula3.tx(\'&Bnmins&\',\'&BnBTs&\',\'&URSIs&\',\'&yjs&\',\'&rsifs&\',\'&kwfs&\')\',0,1, 0 , 300 );  
   // PT0:= STKINDIEX(\'\',\'Formula3.tx\',0,1, 0 , 300 );   这里用默认参数的,不会有“引用公式过多....”


//////////////////////////////////////////////////////////// Formula3 代码  逐K线模式

INPUT:Bnmin(3,1,8,1), BnBT(2,1,8,1), URSI(1 , 0 ,1 , 1) , YJ(2 , 0, 1000, 1),RSIF(3, 3, 100,1) , Kwf(20,-400, 400,10);
   VARIABLE: tx=1; 
  VARIABLE :DATA=0; 
     DATA:=close   ; 
   //TX:="MACD.DEA"(DATA ,data-11,9); 
  TX:= "SFJ@SDATA"(10 ,data   );         // 这个函数是DLL 输出的函数,逐K线模式,这里是返回一个随机数字。
      





--  作者:fyinwater
--  发布时间:2013/11/16 9:24:20
--  
另外 测试了下, 真的在公式中引用了50个以上的公式,没有问题。  看起来问题就是出在参数处理上面。
--  作者:jinzhe
--  发布时间:2013/11/18 9:13:31
--  

首先感谢您的测试,感谢对我们软件的支持

 

然后说下这个问题

其实你的测试已经很具体的,但是有个关键性的问题那就是根本没考虑到close,close在每根k线上的数值是不一样的,这个就造成了每根k线上都引用不同参数的公式,造成了实际上的重复引用,所以当前k线过多时会报错。你试试看把当前k线图缩小到50根k线之内,再看看是不是不会报错了。

 

 

 

 


--  作者:stockwiner
--  发布时间:2015/4/15 10:02:46
--  
我看了下, 我的3.53版  MA的计算方式是逐K模式,3.41版是序列模式,难道是这个原因?