以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=168920)

--  作者:一代天骄
--  发布时间:2019/3/22 9:18:33
--  限制加仓次数怎么写函数?
限制加仓次数怎么写函数?
--  作者:FireScript
--  发布时间:2019/3/22 9:34:47
--  
 没有函数直接处理,需要使用全局变量来进行处理。
下面是用全局变量限制开仓的范例,同样的处理方式可以用来限制加仓次数。

variable:num=0;// 全局变量,来控制当天交易次数

cs:=5;//限定一天最多交易5次

 

ma5:=ma(close,5);

ma20:=ma(close,20);

 

cond1:=cross(ma5,ma20);

cond2:=cross(ma20,ma5);

 

if cond2 and holding>0 then sell(1,1,market);

if cond1 and holding=0 and num<5  then

  begin

  buy(1,1,market);

  num:=num+1;

  end

if time=closetime(0) then num:=0;// 商品期货,收盘的同时,num赋值为0

//收盘num不赋值为0,第二天就不再开仓了


你可以参考范例的思路先自行尝试下。


--  作者:一代天骄
--  发布时间:2019/3/22 10:28:15
--  
就是平仓后全局变量要赋值为0是吗?
--  作者:FireScript
--  发布时间:2019/3/22 10:31:47
--  
如果你的加仓限制是限制一次开仓之后的连续加仓次数,那你在平仓之后就要重置全局变量了。
--  作者:一代天骄
--  发布时间:2019/3/22 10:49:14
--  
如果我的平仓条件比较多,那么每个平仓条件后面都要吧这个全局变量都重置为0是吗?
--  作者:FireScript
--  发布时间:2019/3/22 10:50:03
--  
 是的。这个没办法。