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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教几个问题

   

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


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

主题:请教几个问题

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


加好友 发短信
等级:新手上路 帖子:45 积分:272 威望:0 精华:0 注册:2011/10/21 17:18:31
请教几个问题  发帖心情 Post By:2012/4/10 19:17:11    Post IP:113.96.35.99[只看该作者]

INPUT:N(5,2,500);      //参数申明 

VARIABLE:I=0,S=0;     //全局变量申明 

VAR1:=C; //金字塔下放在这里的变量为序列赋值

 //为了加快运算速度,只有最后一个周期时才循环计算 

IF NOT(ISLASTBAR) THEN EXIT; 

FOR J=1 TO DATACOUNT DO BEGIN 

 S:=S+VAR1[J]; 

 IF J>=N THEN BEGIN 
  IF J>N THEN 
    S:=S-VAR1[J-N]; 
  MA1[J]:S/N;        //实现MA(C,N) 
  I:=0; 
 END; 
END; 

<!--EndFragment-->

-------------------------------------

就以上例子,请教几个问题:

 

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2012/4/11 9:06:12    Post IP:58.246.57.26[只看该作者]

1,不是,variable定义的是全局变量,只声明一次

2,exit只是推出当前的if语句,继续下面的语句

3,第三个问题您可以在论坛上搜一下,有很多人问过了


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


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2012/4/11 9:10:01    Post IP:58.246.57.26[只看该作者]

http://www.weistock.com/wtdq.htm#_Toc317669796

第三个问题您可以参照下这个帖子


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


加好友 发短信
等级:新手上路 帖子:45 积分:272 威望:0 精华:0 注册:2011/10/21 17:18:31
  发帖心情 Post By:2012/4/11 18:18:30    Post IP:113.96.32.236[只看该作者]

以下是引用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; 这条语句根本就没有起到优化的作用。

第三个问题:明白了。

 

谢谢您的热心帮助!


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/4/11 18:38:24    Post IP:58.246.57.26[只看该作者]

第二个是退出整个公式的当前执行,对序列模式和逐K线模式就有着不同的执行结果,序列模式由于是只执行一遍公式解析,故遇到EXIT后就停止了所有公式的解析工作,逐K线模式下只是停止了当前K线周期的解析,还是会对下一根K线会重新再次调用公式进行解析。

上面的代码之所以加了EXIT,主要是在逐K线模式下,控制只在最后周期才继续工作的控制语句



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
Vision
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:45 积分:272 威望:0 精华:0 注册:2011/10/21 17:18:31
  发帖心情 Post By:2012/4/11 18:57:20    Post IP:113.96.32.236[只看该作者]

你解释的很详细,我明白了,谢谢你,王兄!

 回到顶部