以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请教几个问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=11010) |
-- 作者:Vision -- 发布时间:2012/4/10 19:17:11 -- 请教几个问题 INPUT:N(5,2,500); //参数申明 VARIABLE:I=0,S=0; //全局变量申明 VAR1:=C; //金字塔下放在这里的变量为序列赋值 IF J>=N THEN BEGIN ------------------------------------- 就以上例子,请教几个问题:
1、VARIABLE:I=0,S=0; //全局变量申明 VARIABLE定义的变量或数组是否每次执行完循环返回后又再执行初始化?
2、IF NOT(ISLASTBAR) THEN EXIT; EXIT命令是不是终止程序的执行,回到第一行重新执行该程序?
3、由VARIABLE、GLOBALVARIABLE、EXTGBDATASET分别产生的变量有何区别? [此贴子已经被作者于2012-4-10 19:17:51编辑过]
|
-- 作者:rushtaotao -- 发布时间:2012/4/11 9:06:12 -- 1,不是,variable定义的是全局变量,只声明一次 2,exit只是推出当前的if语句,继续下面的语句 3,第三个问题您可以在论坛上搜一下,有很多人问过了 |
-- 作者:rushtaotao -- 发布时间:2012/4/11 9:10:01 -- http://www.weistock.com/wtdq.htm#_Toc317669796 第三个问题您可以参照下这个帖子 |
-- 作者:Vision -- 发布时间:2012/4/11 18:18:30 -- 以下是引用rushtaotao在2012-4-11 9:06:12的发言:
1,不是,variable定义的是全局变量,只声明一次 2,exit只是推出当前的if语句,继续下面的语句 3,第三个问题您可以在论坛上搜一下,有很多人问过了 第一个问题:你的回答不对,请看官方的例子:全局变量有两种: (1)一种是在公式里的,每次执行都被初始化一次的,这里的每次执行指的是每次金字塔执行公式系统的运行,即从1周期到BARCOUNT的过程。 比如一个变量这样声明: variable:maxprofit=0; 它只会在第一个周期被初始化赋值为0,其他周期均不会对此变量进行赋值。
第二个问题:我还没弄明白。但是如果“exit只是推出当前的if语句,继续下面的语句”,那IF NOT(ISLASTBAR) THEN EXIT; 这条语句根本就没有起到优化的作用。 第三个问题:明白了。
谢谢您的热心帮助! |
-- 作者:王锋 -- 发布时间:2012/4/11 18:38:24 -- 第二个是退出整个公式的当前执行,对序列模式和逐K线模式就有着不同的执行结果,序列模式由于是只执行一遍公式解析,故遇到EXIT后就停止了所有公式的解析工作,逐K线模式下只是停止了当前K线周期的解析,还是会对下一根K线会重新再次调用公式进行解析。 上面的代码之所以加了EXIT,主要是在逐K线模式下,控制只在最后周期才继续工作的控制语句 |
-- 作者:Vision -- 发布时间:2012/4/11 18:57:20 -- 你解释的很详细,我明白了,谢谢你,王兄! |