以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请教后台交易的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=53248) |
-- 作者:linxingywei -- 发布时间:2013/6/21 0:20:12 -- 请教后台交易的问题 我在后台交易中使用2个策略,同时对一个品种进行监控,并启用多核多策略CPU支持,我现在碰到的问题是:当A策略开仓后,就会被B策略所平掉,基本上是刚开仓就平掉了。我在A策略里设了 全局变量数据库,当A策略开仓后会在变量数据库里设为1,而B策略去读取这个值,当为1时就不平仓。但是实盘交易中,A策略开仓后,变量数据库的值仍为0,不知道是何原因?请问和使用 “多核多策略CPU支持”有关吗?要如何解决这个问题?谢谢! |
-- 作者:solarhe2006 -- 发布时间:2013/6/21 8:22:43 -- 1、与多核多CPU无关 2、应该与程序写法有关系,贴代码吧 |
-- 作者:linxingywei -- 发布时间:2013/6/21 9:53:01 -- A策略 //建立多头进场条件 IF CURRENTTIME<=090000 THEN EXTGBDATASET(\'THD\' ,0); IF CURRENTTIME<=090000 THEN EXTGBSTRINGSET(\'开多1\' , \'000\'); if ISLASTBAR AND 开仓条件 Tholding=0 AND THD1=0 then BEGIN Tbuy(1, KCS, lmt, C+T2); EXTGBDATASET(\'THD\' , 1); IF THD1=1 THEN extgbstringset(\'开多1\', stklabel); END; B策略:取全局变量的值,若为A策略开的品种就不平仓 IF strcmp(extgbstring(\'开多1\'),stklabel)=0 THEN JSKD1:=0; ELSE JSKD1:=1; IF ISLASTBAR and JSKD1 AND tholding>0 AND L<REF(L,1) THEN TSELL(1,0,lmt, C-T4); 请帮我看下这个代码有何问题?谢谢
[此贴子已经被作者于2013/6/21 9:53:24编辑过]
|
-- 作者:jinzhe -- 发布时间:2013/6/21 10:01:19 -- THD1这个是哪里进行定义的? |
-- 作者:linxingywei -- 发布时间:2013/6/21 10:02:08 -- THD1:=EXTGBDATA(\'THD\'); 刚才漏了 |
-- 作者:jinzhe -- 发布时间:2013/6/21 10:29:44 -- 平仓代码哪里能体现出和THD相关的? |
-- 作者:linxingywei -- 发布时间:2013/6/21 10:47:42 -- 我现在A策略开的仓被B策略平仓条件给平掉了。THD只是控制只开仓一次。问题在于全局变量“开多1",当A策略开仓后,我会设全局变量“THD”为1,然后判断THD为1时,就设全局变量“开多1"为开仓品种的代码。 然后在B策略中判断全局变量“开多1"的品种代码和当前监控品种一致时,就不平仓。
|
-- 作者:linxingywei -- 发布时间:2013/6/21 11:31:19 -- 会不会是因为开仓后设全局变量THD为1时,速度比较慢,还没有改变全局变量的值,所以这时去取全局变量THD时取到的仍为0。不过,在实盘中开仓被平仓后,全局变量THD仍显示为0,EXTGBDATASET(\'THD\' , 1); 这句话没起作用。 |