Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]总是无法平仓后马上反向开仓,平仓后就没了

1楼
falltree 发表于:2015/12/31 11:09:56
在论坛搜索过,发现有类似问题,但没有明确的解决方案,请高手帮助。
希望写一个出现开仓信号后,先把原来反方向的仓单平掉,然后开新仓,但实际模拟数据测试,发现总是只平仓之后没有开新仓,理论上没有同方向的单同时存在而产生干扰,每次只开一手,然后平仓,然后再开。平仓完成后,holding肯定是0

//开多 kd=开多条件 
IF kd THEN BEGIN 
  IF HOLDING<0 THEN 平空:SELLshort(1,手数,MARKET),ORDERQUEUE;
  交易次数:=交易次数+1;
  else 
  开多:BUY(kd AND HOLDING=0,手数,market),ORDERQUEUE;
  交易次数:=交易次数+1; 
END 

//开空 kk=开空条件
IF kk THEN BEGIN  
  IF HOLDING>0 THEN 平多:SELL(1,手数,MARKET),ORDERQUEUE;
  交易次数:=交易次数+1;
  else
  开空:BUYSHORT(kk AND HOLDING=0,手数,MARKET),ORDERQUEUE;
  交易次数:=交易次数+1;
END

请教该如何修改才可以实现平仓后马上开仓
2楼
jinzhe 发表于:2015/12/31 11:13:40
代码里面的else是什么思路?
3楼
falltree 发表于:2015/12/31 11:29:37
else之前是没有的,后来改来改去加上去的,可能有些多余,应该不需要。
本意思是如果满足开多或开空条件时,如果持仓不不是0,就先平仓,持仓0时,就直接开仓
4楼
jinzhe 发表于:2015/12/31 13:13:48
IF kd THEN BEGIN 
   平空:SELLshort(holding<0,手数,MARKET),ORDERQUEUE;
  开多:BUY(kd AND HOLDING=0,手数,market),ORDERQUEUE;
  交易次数:=交易次数+1; 
END 

//开空 kk=开空条件
IF kk THEN BEGIN  
   平多:SELL(holding>0,手数,MARKET),ORDERQUEUE;
  开空:BUYSHORT(kk AND HOLDING=0,手数,MARKET),ORDERQUEUE;
  交易次数:=交易次数+1;
END
5楼
falltree 发表于:2015/12/31 15:10:39
谢版主,似乎可以了。不过图形中平多开空或者平空开多的字重叠了,是否可以利用类似drawtext的绘图函数来控制,比如下面这种格式:

   平空:=SELLshort(holding<0,手数,MARKET),ORDERQUEUE;
  开多:=BUY(kd AND HOLDING=0,手数,market),ORDERQUEUE;
drawtext(平空,“平空”,x,color00ffff);
drawtext(开多,“开多”,x,colorred);

6楼
jinzhe 发表于:2015/12/31 15:13:44
这个不行,图中的“开多”“平空”之类字体都是系统自带的,不能以代码的形式修改
共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01172 s, 3 queries.