以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 怎么用当日只交易一次编 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166195) |
-- 作者:haizxj -- 发布时间:2018/10/29 14:49:24 -- 怎么用当日只交易一次编 如果当日出现一次多头持仓并平仓后,则多头不要开仓了 空头还是可以开 怎么编 |
-- 作者:wenarm -- 发布时间:2018/10/29 14:57:05 -- 图表不支持同时锁仓,即不能同时持有空头和多头。 只开仓1次,可以直接通过holding进行限制,只有当图表holding=0时,才可以开仓。 if 开仓条件 and holding=0 then begin buy(....); end
|
-- 作者:haizxj -- 发布时间:2018/10/29 15:46:16 -- 我说的是只是单向开 不是套利 是当日只开一次多头 即第一次多头已平了,此时持仓也是0,可能出现多头信号,但是不再开仓了 第二次多头不开 [此贴子已经被作者于2018/10/29 15:46:58编辑过]
|
-- 作者:FireScript -- 发布时间:2018/10/29 15:54:29 -- buycond:TYPEBAR(1,1)>TODAYBAR and holding=0 and cond; 开仓条件加一些代码。
|
-- 作者:haizxj -- 发布时间:2018/10/29 16:07:36 -- 假定以一分钟计一个BAR,七分钟后开仓,这时TyPEbar会永远小于todaybar |
-- 作者:wenarm -- 发布时间:2018/10/29 16:11:51 -- 这种你直接用全局变量记录交易次数就行了。 【金字塔使用技巧】----限定一天交易次数
variable:num=0;// 全局变量,来控制当天交易次数 cs:=5;//限定一天最多交易5次
ma5:=ma(close,5); ma20:=ma(close,20);
con1:=cross(ma5,ma20); con2:=cross(ma20,ma5);
if cond2 and holding>0 then sell(1,1,market); if cond1 and holding=0 and lossnum<5 then begin buy(1,1,market); num:=num+1; end if time=closetime(0) then num:=0;// 商品期货,收盘的同时,num赋值为0 //收盘num不赋值为0,第二天就不再开仓了 |
-- 作者:FireScript -- 发布时间:2018/10/29 16:13:12 -- 你不是要日内只开一次仓么。所以小于刚好限制后面再次开多啦。 亦或者你按照6楼的,不过开多和开空需要分别用2个变量去控制了。
|
-- 作者:haizxj -- 发布时间:2018/10/29 16:31:59 -- 昨天的TyPEbar与今天的信号有时是大于是重复的 |
-- 作者:wenarm -- 发布时间:2018/10/29 16:41:40 -- 看6楼的回复。 |
-- 作者:haizxj -- 发布时间:2018/10/30 16:49:29 -- VARIABLE:n1:=0,n2:=0; ma5:ma(c,5); ma20:ma(c,20); cond1:cross(ma5,ma20); cond2:cross(ma20,ma5); if COND1 and n1<1 THEN BEGIN sellshort(holding<0,1,MARKET); buy(HOLDING=0,1,MARKET); n1:=n1+1; end if COND2 and n2<1 THEN BEGIN sell(holding>0,1,MARKET); buyshort(holding=0,1,MARKET); n2:=n2+1; end if COND1 THEN BEGIN sellshort(holding<0,1,MARKET); end if COND2 THEN BEGIN sell(holding>0,1,MARKET); n2:=n2+1; end if time>CLOSETIME(0)-30 then BEGIN n1:=0; n2:=0; ENd s1:n1; s2:n2; 这个错在哪里 |