以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  重新发帖:挂上止盈止损单为何不断发委托单?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=30920)

--  作者:飞翔鸟
--  发布时间:2012/11/26 23:38:23
--  重新发帖:挂上止盈止损单为何不断发委托单?
ib外汇 后台一段测试代码

 

GLOBALVARIABLE:duotou=0;
IF duotou=0  THEN BEGIN
 tsellshort(tholding2<0,0,mkt);
 tbuy(tholding2=0,100000,mkt);
 SLEEP(3000);
 chicang:=if(tholding2>0,tholding2,0);
 jinchangjia:=tenterprice;
 tsell(duotou=0 and tholding2>0,chicang,stp,jinchangjia-0.0003);
 SLEEP(1000);
 tbuyshort(duotou=0 ,chicang,lmt,jinchangjia+0.0003);
 duotou:=1;
END
IF THOLDING2<=0 THEN BEGIN
TCANCEL( 1, 0);
DUOTOU:=0;
END

 

问题是绿色背景语句不断执行,每个一分钟k线运行收到数据又会发送一笔限价委托,无视全局变量的条件。

另外多头持仓下,tholding可用持仓居然会变成负数,每发送一笔限价委托可用持仓累计负增长(图中kdj后面的keyong)。如何才能实现我的想法,请老师们指点。


图片点击可在新窗口打开查看此主题相关图片如下:eur.jpg
图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2012/11/27 8:56:05
--  
你 的想法是?
--  作者:飞翔鸟
--  发布时间:2012/11/27 9:15:07
--  

后台某条件符合后买入做多,同时挂上一个止损单、一个止盈单,待成交其中的一个后则撤销另一个而已。

不设置不成交撤单追价的功能。


--  作者:jinzhe
--  发布时间:2012/11/27 9:38:05
--  
tbuy同时tsell,然后判断未成交状态再撤单。
--  作者:飞翔鸟
--  发布时间:2012/11/27 9:46:15
--  

没看明白你的意思。

我是说等止损止盈成交了一个后再把另一个没成交的撤掉。

不知我一楼的代码写的有没有错误,按逻辑应该能看懂,但我实践起来就发现挂止盈单的会不断委托去挂。一个多头仓位只需要挂一个止损及一个止盈啊。ib的挂单都挂到服务器上去的。


--  作者:jinzhe
--  发布时间:2012/11/27 9:52:40
--  

开仓后同时下两个平仓单,然后判断当只有一个单是未成交状态的时候,撤单


--  作者:飞翔鸟
--  发布时间:2012/11/27 10:05:26
--  

金字塔还能判断未成交状态里的是几笔委托单没成交?两笔没成交的话不撤,一笔没成交才撤?

我写得语句从逻辑上看也应该没有问题,但却因为挂的是一单止损、会多单止盈而不对。如果语句逻辑没有错误,是不是应该是其他问题呢?

老师说的也很简明扼要,但就是让我不明白啊,要不你给写个测试代码 ,纸账户上跑去试试?

[此贴子已经被作者于2012-11-27 10:06:52编辑过]

--  作者:飞翔鸟
--  发布时间:2012/11/27 15:31:55
--  
有答案吗?
--  作者:jinzhe
--  发布时间:2012/11/27 15:45:24
--  

一手交易,

还是满足条件就下单,下止损单


--  作者:飞翔鸟
--  发布时间:2012/11/27 15:59:38
--  [求助]请老师帮忙编写个模型策略

随便设个条件: 比如5日均线上穿10日均线,市价买进1份欧元美元(比如1楼的成交价1.28690,数量为100000),成交后在1.28660挂上止损卖单,在1.28720挂上止盈卖单。

当价格达到1.28660或者1.28720都会卖出平仓,平仓后则把另一个没成交的挂单给撤单。

注:这里的止盈止损单都是挂到ib服务器上的。如果有本地到达这个止损止盈的价格再下单也可以,请给一个示范测试代码。