以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=8318) |
-- 作者:yeyi -- 发布时间:2011/10/9 16:30:00 -- [求助]自定义函数:存在两次执行的问题。 在公示中的代码如下(逐K线模式和日K线模式): if ISLASTBAR THEN 在自定义函数中:TEST1的源码如下 Function test1(Formula) End Function
结果每次执行 首先显示“已被锁定,不可编辑”,打开副本后; 有时会再一次执行打开步骤,又是“已被锁定,不可编辑”,打开副本 实际上自定义函数执行了两次,还是其他原因,比较困惑。 (我怀疑,实际上刚启动,第一次执行自定义函数,交互数据时它已经暗中打开,所以永远是已被锁定,我删除后重新启动也无法) 请求帮助: 1、解决不可编辑 2、有时两次打开的原因
[此贴子已经被作者于2011-10-9 16:39:46编辑过]
|
-- 作者:admin -- 发布时间:2011/10/9 17:34:50 -- 试试用APPLICATION.MSGOUT输出消息看看。 如果仍旧两次调用,那么你要检查你的公式是否被两个地方使用,比如其他图表框架中使用,后台,预警,自定义数据刷新等等其他地方使用 |
-- 作者:yeyi -- 发布时间:2011/10/9 20:46:46 -- 一个问题没有解决,又出现一个问题。 在自定义函数中加了一个参数TEST1(MSNO);(MSNO=401,为数值数据),编译公式无论如何通不过。 试了TEST1(401),不行;TEST1(MSNO),不行; 重新设个值N:=401,TEST1(N) 也不行。提示错误。 只好将原来的自定义函数CU_MA2改成我需要测试的程序,将TEST1(MSNO)改成CU_MA2(MSNO),则通过编译,正常运行。 请斑竹求助!!!! 目前版本号2.703,
下面为自定义函数源码:
Function CU_MA2(Formula,cyc) Function test1(Formula,cyc) End Function
|
-- 作者:26327756l -- 发布时间:2011/10/10 10:03:09 -- 这个问题 是因为多次执行了 公式指标。 你在公式指标中加入一句 MSGOUT( 1,\'rrrrr\' );
这样你就会在消息窗口中看到 多次的输出‘rrrrr’(在日线以上的模式里,每个几秒就会输出一次,在日线模式里,一分钟多会出现一次)。每执行一次指标,就会打开一次文本。这就是出现你说的“已被锁定,不可编辑”,因为在此之前已经打开了该文本。又再一次打开该文本,所以出现提示。因为该文本打开后,操作系统就会将该文件设为临界资源,临界资源不允许被多次写入方式打开。
总的来说问题出现就是 公式被多次执行了,导致了多次的打开文本,在没有关闭先前的文本窗口时,而出现了你说的“已被锁定,不可编辑”。
公式指标只在图表上运行时,根据刷新时间,每刷新一次执行一次公式指标。 在 图表程式化交易里 和 后台程式化交易 里运行时,设定好时间间隔,会好一些。
|