以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]哪些函数是最后一个周期中才会生效  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=31385)

--  作者:lijiecong
--  发布时间:2012/12/11 11:43:41
--  [求助]哪些函数是最后一个周期中才会生效

这边举例子是 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变为一个周期之内的变量


--  作者:王锋
--  发布时间:2012/12/11 11:46:25
--  

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

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


--  作者:lijiecong
--  发布时间:2012/12/11 18:26:06
--  
老大,函数说明里面哪里有了?

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