以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  Debugout 没有输出,哪里写错了  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=62232)

--  作者:deni977
--  发布时间:2014/3/3 10:05:37
--  Debugout 没有输出,哪里写错了

GLOBALVARIABLE: Lc11A:=0;//上一秒的仓位
GLOBALVARIABLE: Cc11A:=0;//当前这一秒的仓位
HD1:=STKINDIEX(\'IF00\',\'Dagger1.HD\',0 ,1,  0,360);
HD2:=STKINDIEX(\'IF00\',\'Dagger2.HD\',0 ,17, 0,360);
HD3:=STKINDIEX(\'IF00\',\'Dagger3.HD\',0 ,1,  0,360);
HD4:=STKINDIEX(\'IF00\',\'Dagger4.HD\',0 ,17, 0,360);
HD5:=STKINDIEX(\'IF00\',\'Dagger5.HD\',0,1,  0,360);

Lc11A:=Cc11A;
Cc11A:=if(Time>=151400,0,IF((HD1>=0 && HD4>=0),(HD1 && HD4 ),IF((HD1<=0 && HD4<=0) ,-(ABS(HD1)&&ABS(HD4)),0))); //151400强制平仓
Nowc11A:=VALUEWHEN(Lc11A=Cc11A,Cc11A );
DEbugout(\'Lc11a=%.0f\',Lc11a);
DEbugout(\'Cc11a=%.0f\',Cc11a);
DEbugout(\'Nowc11a=%.0f\',Nowc11a);

 

……

后台,工作在1秒周期,打开监控,没有看到Debugout的数据,请大侠帮忙看看哪里写错了?(金字塔V3.11beta2版本)

 

 

 


--  作者:lichenghu
--  发布时间:2014/3/3 10:10:24
--  
1,是没有输出还是出输出为无效值?
--  作者:deni977
--  发布时间:2014/3/3 10:12:13
--  
是没有输出,连“Lc11a=”这个都看不到
--  作者:jinzhe
--  发布时间:2014/3/3 10:20:23
--  

你在哪里打开的监控?我改了输出close好好的

 


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

--  作者:deni977
--  发布时间:2014/3/3 11:39:40
--  
下午我在测试一下,看看是什么问题
--  作者:deni977
--  发布时间:2014/3/4 22:32:44
--  

反复测试了n次,终于找到原因。原来是模型中有一语句如下:

 

MM:==ref(close,1);

 

这里的"=="是属于笔误,多输入了一个“=”号,Debugout的时候,完全没有输出,只有“运行结束”

 

不解的是:为什么编译还是通过?这个“==”在金字塔是什么操作??

 


--  作者:jinzhe
--  发布时间:2014/3/5 9:01:12
--  

不要割裂的看问题

xxx:==ref(c,1)

:=是赋值,把=ref(c,1)赋值给xxx

而=ref(c,1)是没有值的

[此贴子已经被作者于2014/3/5 9:02:54编辑过]

--  作者:deni977
--  发布时间:2014/3/5 14:05:17
--  
照你这么理解,那这个语句也是合法的啊。那为什么整个模型,只要有了这一句,在运行的过程在,连Debugout的数据都没有输出了?
--  作者:deni977
--  发布时间:2014/3/5 14:07:07
--  
这一句应经导致程序运行不正常,Debugout前面的标号至少应该在监控窗口打印出来啊,只有提示是“运行结束”
--  作者:jinzhe
--  发布时间:2014/3/5 14:39:16
--  

你一定要用这样的赋值方式吗?既是是没用的?

赋值出错,导致公式后面的代码不运行,造成一系列的连锁反应,避免这样的写法,如果坚持要这样的写法,那么写在最后面