以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 后台交易的一个问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=159893) |
-- 作者:yin8jun -- 发布时间:2017/11/27 14:09:17 -- 后台交易的一个问题 我今天使用ic01委买价-ic12委卖价<-38时做开仓条件,结果交易出现错误,交易日志如下。ic01委买价-ic12委卖价=38.2远大于-38时开仓。11:15分又出现同样的情况。 问题: 1,38的价差位置回头查时是没有的,那个时候的委买委卖价读了错误的数值。 2,本来要小于-38的,为何大于38时开仓。 用模拟时又正常了。请问这是怎么了,Ic12同ic01的数据错乱了? 2017-11-27 10:19:54.108 【后台】IC01 TBuyShort 第 34 行出现信号 2017-11-27 10:19:54.108 【后台】IC12 TBuyShort 已成功触发下单操作 价格:6181.000000 数量:1 类型:0 账户: 品种:IC12 2017-11-27 10:19:54.108 【后台】下单已发送 2017-11-27 10:19:54.109 【后台】IC01 TSellShort 第 35 行出现信号 2017-11-27 10:19:54.109 【后台】IC01 TSellShort 已成功触发下单操作 价格:6219.200195 数量:1 类型:0 账户: 品种:IC01 2017-11-27 10:19:54.110 【后台】实际账户持仓 5 2017-11-27 10:19:54.110 【后台】下单已发送 2017-11-27 10:19:54.110 【下单】IC12 价6181.000000 量1 买卖1 类型0 开平0 账户98221096 Formula 1 2017-11-27 10:19:54.111 【下单】确认报单已发送 ID=1741219209 RefID = 35090 2017-11-27 10:19:54.111 【下单】IC01 价6219.200195 量1 买卖0 类型0 开平1 账户98221096 Formula 1 2017-11-27 10:19:54.112 【下单】确认报单已发送 ID=1741219219 RefID = 35100 2017-11-27 10:19:54.118 【指令】收到回报指令 ID = 1741219209 RefID = 35090 2017-11-27 10:19:54.160 【后台】IC01 运行结束 2017-11-27 10:19:54.161 【指令】收到回报指令 ID = 1741219219 RefID = 35100 2017-11-27 10:19:54.167 【指令】收到回报指令 ID = 1741219209 RefID = 35090 2017-11-27 10:19:54.168 【指令】收到回报指令 ID = 1741219209 RefID = 35090 2017-11-27 10:19:54.169 【指令】收到成交回报指令 REFID = 35090 vol = 1 2017-11-27 10:19:54.176 【指令】收到回报指令 ID = 1741219219 RefID = 35100 2017-11-27 10:19:54.177 【指令】收到回报指令 ID = 1741219219 RefID = 35100 2017-11-27 10:19:54.179 【指令】收到成交回报指令 REFID = 35100 vol = 1 2017-11-27 10:19:54.189 【回报】98221096 : IC1712 - 已报单 1 价格:6181.0 开 卖 2017-11-27 10:19:54.190 【回报】98221096 : IC1801 - 已报单 1 价格:6219.2 平 买 2017-11-27 10:19:54.191 【回报】98221096 : IC1712 - 已成交 1 价格:6219.4 开 卖 2017-11-27 10:19:54.191 【回报】98221096 : IC1801 - 已成交 1 价格:6193.2 平 买
|
-- 作者:yin8jun -- 发布时间:2017/11/27 14:15:43 -- 好像是价差的正负号有延用上一个数据的正负号? |
-- 作者:FireScript -- 发布时间:2017/11/27 15:06:08 -- 帖代码出来看下。这部分日志不足以找到问题所在。还有你用的什么周期的数据? |
-- 作者:yin8jun -- 发布时间:2017/11/27 15:26:32 -- 用的是分笔数据,代码如下: THISIF:=\'IC12\'; NEXTIF:=\'IC01\'; IH04B:=stkindi(nextif,\'askbidt.a\',0,0,0); IH03A:=stkindi(thisif,\'askbidt.b\',0,0,0); CHA43:IH04B-IH03A; kk:=cha43<=-38; IF KK THEN BEGIN tbuyShort(1,1,lmt,IH04B,0,\'\',thisif); TSellShort(1,1,lmt,IH03A,0,\'\',nextif); END |
-- 作者:yin8jun -- 发布时间:2017/11/27 15:28:15 -- 引用公式名:askbidt 内容: a:DYNAINFO( 34); b:DYNAINFO( 28); |
-- 作者:yukizzc -- 发布时间:2017/11/27 15:35:57 -- DYNAINFO2(34 ,\'if12\' ) 直接这么写就能获得不同品种的实时动态行情。 另外可以在代码里加上debugfile输出下引用过来的行情数据看下 |
-- 作者:FireScript -- 发布时间:2017/11/27 15:43:54 --
1.你好像是用IC01的卖一价格-IC12的买一价。和你1楼的描述是不是反了啊。 2.你引用了动态函数的值。这个函数只有最新值,没有历史值。那个价差按理说你是没办法回溯历史的,只有当前最新价差 |
-- 作者:yin8jun -- 发布时间:2017/11/27 17:53:00 -- 我一楼写错了,应该是平ic01的空,开ic12的空。是ic01的委卖价-ic12的委买价。 |
-- 作者:yin8jun -- 发布时间:2017/11/27 17:55:54 -- 以下是引用yukizzc在2017/11/27 15:35:57的发言:
DYNAINFO2(34 ,\'if12\' ) 直接这么写就能获得不同品种的实时动态行情。 另外可以在代码里加上debugfile输出下引用过来的行情数据看下 用dynainfo(20);dynainfo(21)跟用DYNAINFO( 34),DYNAINFO( 28)有区别吗?会不会跟这个也有关系。 即使引用错了,应该通不过kk:=cha43<=-38条件的检验。 |
-- 作者:wenarm -- 发布时间:2017/11/27 19:04:37 -- DYNAINFO( 21)=DYNAINFO( 34);前者的值其实就一档行情的价格 DYNAINFO( 20)=DYNAINFO( 28); 你的问题可以通过debugfile 定位分析原因。 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=49428 |