以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- 想限价开多仓和空仓,下列代码错在哪里呢 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=81472) |
-- 作者:jason123 -- 发布时间:2015/7/21 13:55:21 -- 想限价开多仓和空仓,下列代码错在哪里呢 //没有空仓再开 if TODAYHOLDING>=0 then begin //当SBP(SC5+3)<C<SSK(SC5+9),开卖出空仓,限价SC5+6 Tsell(SBP<C<SSK,1,LMT,SC5+6,SC5+36,\'\',\'if08\'); end //没有多仓再开 if TODAYHOLDING<=0 then begin //当SC5<C<SBP(SC5+3),开买入多仓,限价SC5 Tbuy(SC5<C<SBP,1,LMT,SC5,SC5-30,\'\',\'if08\'); end //当XBK(XC5-9)<C<XSK(XC5-3),开买入多仓,限价XC5-6 //没有多仓再开 if TODAYHOLDING<=0 then begin Tbuy(XBK<C<XSK,1,LMT,XC5-6,SC5-36,\'\',\'if08\'); //当XSK(XC5-3)<C<XC5,开卖出空仓,限价XC5 end //当XC5<=C<=SC5,开多仓空仓,限价买C-3,卖C+3 //没有多仓再开 if TODAYHOLDING<=0 then begin Tbuy(XC5<=C<=SC5,1,LMT,C-3,C-33,\'\',\'if08\'); end //没有空仓再开 if TODAYHOLDING>=0 then begin Tsell(XC5<=C<=SC5,1,LMT,C+3,C+33,\'\',\'if08\'); end 。。。。。。。。。。。。。。。。。。 本来的想法是只控制1手,限价触发了一手多仓,止损30,点,然后止盈6个点开空仓 但是上面的代码好像不停开多仓,请问错咋哪里呢
|
-- 作者:jinzhe -- 发布时间:2015/7/21 14:08:59 -- SC5<C<SBP 这类的写法是错的 SC5<C and C<SBP要这样写 |
-- 作者:jason123 -- 发布时间:2015/7/21 14:17:51 -- 谢谢指点 已经改过来了 如下,可还是只买入开多仓,而且我只要1手,买了多手 //没有空仓再开 if TODAYHOLDING>=0 then begin //当SBP(SC5+3)<C<SSK(SC5+9),开卖出空仓,限价SC5+6 Tsell(SBP<C and C<SSK,1,LMT,SC5+6,SC5+36,\'\',\'if08\'); end //没有多仓再开 if TODAYHOLDING<=0 then begin //当SC5<C<SBP(SC5+3),开买入多仓,限价SC5 Tbuy(SC5<C and C<SBP,1,LMT,SC5,SC5-30,\'\',\'if08\'); end //当XBK(XC5-9)<C<XSK(XC5-3),开买入多仓,限价XC5-6 //没有多仓再开 if TODAYHOLDING<=0 then begin Tbuy(XBK<C and C<XSK,1,LMT,XC5-6,SC5-36,\'\',\'if08\'); //当XSK(XC5-3)<C<XC5,开卖出空仓,限价XC5 end //当XC5<=C<=SC5,开多仓空仓,限价买C-3,卖C+3 //没有多仓再开 if TODAYHOLDING<=0 then begin Tbuy(XC5<=C and C<=SC5,1,LMT,C-3,C-33,\'\',\'if08\'); end //没有空仓再开 if TODAYHOLDING>=0 then begin Tsell(XC5<=C and C<=SC5,1,LMT,C+3,C+33,\'\',\'if08\'); end 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 求指点,逻辑错了吗
|
-- 作者:十世 -- 发布时间:2015/7/21 14:34:07 -- 你有多条开多语句 并且这些开多仓的条件不同 当某一时刻条件都满足时 会同时触发下单指令 |
-- 作者:jason123 -- 发布时间:2015/7/21 14:49:15 -- 但是 每次我都有这个判断啊 if TODAYHOLDING>=0 then begin //当仓位是多头 才开空仓 Tsell end if TODAYHOLDING<=0 then begin //当仓位是空头 才开多仓 Tsell end 。。。。。。。。。。。。。。。。。。。。。。。。 请问我这个逻辑错了吗,请问 要达到我的目的:只控制一手,平仓才开新的多仓空仓,应该怎么办呢????求指点
|
-- 作者:pyd -- 发布时间:2015/7/21 14:59:00 -- 如果报单了没有成交 TODAYHOLDING是等于0 的,后边的开仓语句就会继续开仓 |
-- 作者:jason123 -- 发布时间:2015/7/21 15:01:06 -- 有什么函数能知道现在有多少未成交单的吗?求教 |
-- 作者:十世 -- 发布时间:2015/7/21 15:02:06 -- 在某一时刻的时候 你的TODAYHOLDING<=0 是对所有的TBUY语句都成立的 其他条件满足的情况下下多手是正常的
VARIABLE: a=0;
if TODAYHOLDING<=0 then begin
Tbuy(XBK<C and C<XSK and a=0,1,LMT,XC5-6,SC5-36,\'\',\'if08\');
a=1;
end
if TODAYHOLDING<=0 then begin
Tbuy(XC5<=C and C<=SC5 and a=0,1,LMT,C-3,C-33,\'\',\'if08\');
a=1;
end 加个全局变量的条件判断
[此贴子已经被作者于2015/7/21 15:26:08编辑过]
|