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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]哪些函数是最后一个周期中才会生效

   

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


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

主题:[求助]哪些函数是最后一个周期中才会生效

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


加好友 发短信
等级:新手上路 帖子:11 积分:77 威望:0 精华:0 注册:2012/8/13 9:20:52
[求助]哪些函数是最后一个周期中才会生效  发帖心情 Post By:2012/12/11 11:43:41    Post IP:218.109.13.61[只看该作者]

这边举例子是 tbuy和debugout.  应该交易相关的函数都是最后一个周期生效吧? 

前面的运行结果只产生虚拟信号和持仓方便接下类能正确显示仓位。


10、对于最后一个周期才起作用的函数,如果使用了全局变量进行控制,千万记得加上islastbar控制条件

variable:a=10;

debugout('a1=%.0f',a);

if a=10 then begin
debugout('a2=%.0f',a);
tbuy(1,1,mkt);
a:=6;
debugout('a3=%.0f',a);
end;

debugout('a4=%.0f',a);


上述公式将无法正常工作,因为variable声明的变量是在整个计算周期内的全局变量,对于tbuy和debugout函数,他们都是在公式的最后的一个周期才执行的函数,所以将导致最后一个周期到来时a实际已经等于6而不会去正确执行开仓语句。

解决办法是 if a=10 and islastbar then begin 这样加上最后周期判断,或者去掉 variable 变量声明,让a变为一个周期之内的变量


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


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

一般的后台程序化交易,PLAYSOUND,SENDMAIL,DEBUGFILE等这些函数都是最后一个周期才有效的,

做为初学者不必去刻意背诵这些函数,使用时多注意看看函数的使用说明



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

金字塔-技术部

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

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

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


加好友 发短信
等级:新手上路 帖子:11 积分:77 威望:0 精华:0 注册:2012/8/13 9:20:52
  发帖心情 Post By:2012/12/11 18:26:06    Post IP:218.109.13.61[只看该作者]

老大,函数说明里面哪里有了?

得到当前帐户持可用仓量,多仓返回正数空仓返回负
用法:THOLDING
该函数返回常数
在图表交易的ENTERLONG或者BUY等的开平仓条件中使用该后台的常数函数时应该慎重,使用不当会导致严重的漏单事故。
所属函数组:后台程式化交易(专业版)

 回到顶部