以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  持仓  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=182618)

--  作者:木瓜
--  发布时间:2020/10/21 9:34:59
--  持仓
在模型编写中存在一个问题,开平语句之前调用的函数holding,enterprice等都是当前周期显示前一周期的数据。怎样写才能实现在开平语句之前显示当前周期中显示该调用函数的真是数据呢?
比如在开平语句之前计算可用仓位时:
保证金:=0.13;//期货公司给实盘账户当前品种每手百分之十三的保证金
一手资金:=ceiling(close*multiplier*保证金);//当时收盘价乘以品种乘数再乘以保证金
已用现金:=一手资金*abs(holding);

假设在一个模型的第一行调用enterprice函数,在本周期是不显示数据的,这个数据要此周期才能显示。

这里holding和enterprice函数的真实数据被延迟了一个周期,要到次周期才能真实显示出来。请问怎么解决?

--  作者:FireScript
--  发布时间:2020/10/21 9:47:02
--  
这个没办法的啊。你在交易语句之前调用数据都是这样的。实际交易操作没执行,肯定这个数据不会更新的。

一般如果要显示本周期的数据,变量通常是定义在交易部分后面的。比如资产,持仓之类的。通常都是放在指标最后面输出。

--  作者:木瓜
--  发布时间:2020/10/21 13:19:57
--  
保证金:=0.13;//期货公司给实盘账户当前品种每手百分之十三的保证金
一手资金:=ceiling(close*multiplier*保证金);//当时收盘价乘以品种乘数再乘以保证金
已用现金:=一手资金*abs(holding);
那也就是说,类似上边这种在当前周期内在开平仓语句之前的资金状态是没法计算了?

--  作者:FireScript
--  发布时间:2020/10/21 13:29:03
--  
代码是顺序执行的。无法调用后面还没执行的代码的数据的。