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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 求助:关于后台运行全局变量使用问题

   

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


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

主题:求助:关于后台运行全局变量使用问题

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


加好友 发短信
等级:论坛游侠 帖子:196 积分:594 威望:0 精华:2 注册:2011/8/22 18:26:49
求助:关于后台运行全局变量使用问题  发帖心情 Post By:2011/11/4 15:56:42 [只看该作者]

在后台运行程序时有两个问题:

1、使用EXTGBDATA(X)取值时,必须先用EXTGBDATASET(X,S)对X变量赋值,那么请教对X事先怎样初始化:X:=0;  variable:X:=0; 还是必须在金字塔系统\工具\数据\全局变量数据管理 中事先定义 X 为 0,如果是按最后一种方法事先定义X为0后,那么是否是每次启动程序时就会对X 的值初始化一次,还是只要不关机重启,X就一直保留最后的赋值,只要在重新开机时才对X重新初始化X=0?

2、REF(X,1)函数的使用问题我的理解是:在图表模式下运行,对Open/high/low/close等系统行情数据,直接可以用REF(X,1)调用前一个数据,对于根据Open/high/low/close计算而来的数据如 :   AA:=TENTERPRICE();   HighEntry:=if(Ttholding>0,hhv(high,TEnterBars),high);  BB:=AA-HighEntry;

用图表运行模式,可以取REF(BB,1),问题是在后台运行模式下怎样取REF(BB,1)或REF(BB,N),即使用variable:BB:=0;进行了定义,也取不到REF(BB,1),请教该怎么办?


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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/11/4 16:33:42 [只看该作者]

1.

在使用全局变量之前加上类似这样的,系统会自动初始化为0的.

x:='x';

 

这种全局变量只会初始化一次.以后就总是保持最后的赋值.

如果想每日收盘时都变为0,可在最后加上 if currenttime>closetime(0) then EXTGBDATASET('X',0);

当天收盘之后,就会是0了.

 

如果想每次开机都变成0,楼主说的方法可行.

 

2.

  TENTERPRICE--得到当前位置的上次开仓价---该函数依赖TBUY等交易语句或者在交易监控中的手工干预的成交记录.

   您用一个简单的公式,

   分别取取这两个值,看是否可以取到正确的值,REF(TENTERPRICE,1)和ref(if(Ttholding>0,hhv(high,TEnterBars),high),1)

   如果可以,再用取的值相减.



金字塔—专业程序化交易量化投资平台

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部