以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 如何启动时从1手开始执行? (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=171692) |
-- 作者:der4788 -- 发布时间:2019/8/19 9:09:48 -- 如何启动时从1手开始执行? 老师你好,我的模型是逐渐加仓模型,代码如下; 我想当我启动的时候从1手开始,逐渐的加到10手; 现在的情况是,加载后一开仓就是10手,对吗?如何设置? A1:=开多; B1:=开空 ; VARIABLE:ss:=1; if A1 and holding=0 then begin buy(holding=0,ss,market); //开多 end if B1 and holding>0 then begin sell(holding>0,holding,market); //平多 ss:=if(ss<xx1,ss+1,ss); end |
-- 作者:FireScript -- 发布时间:2019/8/19 9:20:53 -- 是不是历史K太多了,历史上交易了很多次了。因此在在最新K上它早就递增了很多次了吧。 |
-- 作者:der4788 -- 发布时间:2019/8/19 9:29:56 -- 是啊,就是问怎么解决这个问题啊? |
-- 作者:wenarm -- 发布时间:2019/8/19 9:37:03 -- 你全局变量只累加,没有复位,当然到10后,就不变了。下面这段逻辑有问题吧 你平图表全部持仓,平完之后SS应该是重置为1. if B1 and holding>0 then
begin
sell(holding>0,holding,market); //平多
ss:=if(ss<xx1,ss+1,ss);
end
|
-- 作者:FireScript -- 发布时间:2019/8/19 9:46:22 -- 这个不行。你如果要从程序化启动时候再从1开始逐渐加仓这个是做不到的。或者你可以在策略里面定期对这个ss进行重置。比如每日收盘重置开仓手数。 |