以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=164835) |
-- 作者:haizxj -- 发布时间:2018/8/9 22:33:12 -- 怎么后台反手没有效果 //条件判断 MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); CONDBUY:=CROSS(MA5,MA10); CONDSELL:=CROSS(MA10,MA5); tsellshort(CONDBUY and THOLDING<0,1,mkt); tbuy(CONDBUY and THOLDING=0,1,mkt); tsell ( CONDSELL and THOLDING>0,1,mkt); tbuyshort (CONDSELl and THOLDING=0,1,mkt); |
-- 作者:haizxj -- 发布时间:2018/8/9 22:33:39 -- 只有单向多,空向只有平空 |
-- 作者:wenarm -- 发布时间:2018/8/9 22:42:20 -- 1.提供你的下单日志。才能具体定位分析问题 2.你上的方式依旧是图表的逻辑,后台中的tholding等持仓函数都是实价账户实际仓位。所以需要考虑下面存在的情况 这个仓位在开平仓时,因为是和柜台之间进行通信,不会瞬间变化,从而造成策略执行过程中,其仓位限制条件不满足。 而图表中的仓位holding本身就是虚拟的,它也是本地计算的,不需要通信,代码执行过程中自然可以瞬间发生仓位变化。
|
-- 作者:haizxj -- 发布时间:2018/8/9 23:01:51 -- 2018-08-09 22:36:37.687 【后台】 启动后台程式化交易 2018-08-09 22:36:37.687 【后台】RB00 运行结束 2018-08-09 22:36:52.343 【下单】RB10 价4230.000000 量1 买卖1 类型0 开平1 账户623164 Formula 0 2018-08-09 22:36:53.343 【下单】已提交,订单ID :-1996156809 2018-08-09 22:36:53.359 【下单】RB01 价4101.000000 量1 买卖0 类型0 开平1 账户623164 Formula 0 2018-08-09 22:36:53.375 【指令】收到回报指令 ID = -1996156809 2018-08-09 22:36:53.437 【回报】623164 : RB10 - 已报单 1 价格:4230 平 卖 2018-08-09 22:36:53.437 【指令】收到回报指令 ID = -1996156809 2018-08-09 22:36:53.437 【指令】收到Order回报指令 ID = -1996156809 Status = 3 2018-08-09 22:36:53.437 【指令】收到回报指令 ID = -1996156809 2018-08-09 22:36:53.453 【指令】收到成交回报指令 ORDERID = -1996156809 2018-08-09 22:36:53.453 【指令】平仓计量 EBuy:0 ESell:0 2018-08-09 22:36:53.468 【回报】623164 : rb1810 - 已成交 1 价格:4230 平 卖 2018-08-09 22:36:53.468 【回报】623164 : rb1810 - 全部成交 1 2018-08-09 22:36:54.156 【下单】已提交,订单ID :-1996156808 2018-08-09 22:36:54.171 【指令】收到回报指令 ID = -1996156808 2018-08-09 22:36:54.187 【回报】623164 : RB01 - 已报单 1 价格:4101 平 买 2018-08-09 22:36:54.187 【指令】收到回报指令 ID = -1996156808 2018-08-09 22:36:54.187 【指令】收到Order回报指令 ID = -1996156808 Status = 3 2018-08-09 22:36:54.187 【指令】收到回报指令 ID = -1996156808 2018-08-09 22:36:54.218 【指令】收到成交回报指令 ORDERID = -1996156808 2018-08-09 22:36:54.218 【指令】平仓计量 EBuy:0 ESell:0 2018-08-09 22:36:54.218 【回报】623164 : rb1901 - 已成交 1 价格:4101 平 买 2018-08-09 22:36:54.218 【回报】623164 : rb1901 - 全部成交 1 2018-08-09 22:37:11.140 【后台】RB00 运行结束 2018-08-09 22:38:10.140 【后台】RB00 运行结束 2018-08-09 22:39:10.156 【后台】RB00 运行结束 2018-08-09 22:40:10.140 【后台】RB00 运行结束 2018-08-09 22:41:10.140 【后台】RB00 运行结束 2018-08-09 22:42:10.140 【后台】RB00 运行结束 2018-08-09 22:43:10.156 【后台】RB00 运行结束 2018-08-09 22:44:10.156 【后台】RB00 TBuy 第 28 行 策略:<MA均线交易指标-后台> 出现信号 2018-08-09 22:44:10.156 【后台】RB00 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:RB00 2018-08-09 22:44:10.156 【后台】下单已发送 2018-08-09 22:44:10.156 【后台】RB00 运行结束 2018-08-09 22:44:10.156 【下单】RB10 价0.000000 量1 买卖0 类型1 开平0 账户623164 Formula 1 2018-08-09 22:44:10.156 【下单】已提交,订单ID :-1996156807 2018-08-09 22:44:10.171 【指令】收到回报指令 ID = -1996156807 2018-08-09 22:44:10.218 【回报】623164 : RB10 - 已报单 1 价格:4237 开 买 2018-08-09 22:44:10.218 【指令】收到回报指令 ID = -1996156807 2018-08-09 22:44:10.218 【指令】收到Order回报指令 ID = -1996156807 Status = 3 2018-08-09 22:44:10.218 【指令】收到回报指令 ID = -1996156807 2018-08-09 22:44:10.234 【指令】收到成交回报指令 ORDERID = -1996156807 2018-08-09 22:44:10.234 【回报】623164 : rb1810 - 已成交 1 价格:4234 开 买 2018-08-09 22:44:10.234 【回报】623164 : rb1810 - 全部成交 1 2018-08-09 22:45:10.140 【后台】RB00 运行结束 2018-08-09 22:46:10.156 【后台】RB00 运行结束 2018-08-09 22:47:11.140 【后台】RB00 运行结束 2018-08-09 22:48:10.156 【后台】RB00 运行结束 2018-08-09 22:49:10.156 【后台】RB00 TSell 第 29 行 策略:<MA均线交易指标-后台> 出现信号 2018-08-09 22:49:10.156 【后台】RB00 TSell 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:RB00 2018-08-09 22:49:10.156 【后台】实际账户持仓 1 2018-08-09 22:49:10.156 【后台】下单已发送 2018-08-09 22:49:10.156 【后台】RB00 运行结束 2018-08-09 22:49:10.156 【下单】RB10 价0.000000 量1 买卖1 类型1 开平1 账户623164 Formula 1 2018-08-09 22:49:10.156 【下单】已提交,订单ID :-1996156806 2018-08-09 22:49:10.187 【指令】收到回报指令 ID = -1996156806 2018-08-09 22:49:10.187 【回报】623164 : RB10 - 已报单 1 价格:4225 平 卖 2018-08-09 22:49:10.203 【指令】收到回报指令 ID = -1996156806 2018-08-09 22:49:10.203 【指令】收到Order回报指令 ID = -1996156806 Status = 3 2018-08-09 22:49:10.203 【指令】收到回报指令 ID = -1996156806 2018-08-09 22:49:10.218 【指令】收到成交回报指令 ORDERID = -1996156806 2018-08-09 22:49:10.218 【指令】平仓计量 EBuy:0 ESell:0 2018-08-09 22:49:10.218 【回报】623164 : rb1810 - 已成交 1 价格:4228 平 卖 2018-08-09 22:49:10.234 【回报】623164 : rb1810 - 全部成交 1 2018-08-09 22:50:10.140 【后台】RB00 运行结束 |
-- 作者:haizxj -- 发布时间:2018/8/9 23:05:24 -- 如何实现实仓的反手呢? |
-- 作者:wenarm -- 发布时间:2018/8/10 9:11:14 -- 22:36 你是手工操作的,后台程序化执行的是从22:44中开始的。 1.在2018-08-09 22:44:10.156 只开多没有平空记录触发记录,应该是你当前仓位为零,或者多空之和是0,即锁仓了 2.2018-08-09 22:49:10.156 平多,为平空,是因为执行完tsell后,紧接着执行tbuyshort时,你的仓位还没返回更新,此时tholidng还不是0,所以,所以该条件不满足。
2楼的回复的第二点,是让你注意,实际交易中,如果仓位控制,需要考虑到柜台和客户端之间的通信用时。 可以看下常见问题的15节 http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=57075
|
-- 作者:haizxj -- 发布时间:2018/8/10 9:16:21 -- 是不是说只能采用REF和固定秒询了才可以实现反手 |
-- 作者:FireScript -- 发布时间:2018/8/10 9:40:04 -- 也可以用ORDERQUEUE 简单说吧。 你看这段代码 if bp > 0 and THOLDING>0 then begin tSELL(1,0,MKT),ORDERQUEUE; tBUYSHORT(1, 1,MKT),ORDERQUEUE; end
if sp > 0 and THOLDING<0 then begin tSELLSHORT(1,0,MKT),ORDERQUEUE; tBUY(1,1,MKT),ORDERQUEUE; end
简单说明下: 像这样的代码 tSELL(cond,0,MKT); tBUYSHORT(cond, 1,MKT); 假设第一个tsell触发了,并且下单执行了,代码执行到
加了ORDERQUEUE 就可以避免这种情况了。具体请参照这个函数的函数说明。 [此贴子已经被作者于2018/8/10 9:47:48编辑过]
|
-- 作者:haizxj -- 发布时间:2018/8/10 10:53:39 -- bp > 0 and THOLDING>0 then begin tSELL(1,0,MKT),ORDERQUEUE; tBUYSHORT(1, 1,MKT),ORDERQUEUE; end
if sp > 0 and THOLDING<0 then begin tSELLSHORT(1,0,MKT),ORDERQUEUE; tBUY(1,1,MKT),ORDERQUEUE; end 这里有个问题就是初始仓位是0,不会开平仓呀 [此贴子已经被作者于2018/8/10 10:53:52编辑过]
|
-- 作者:haizxj -- 发布时间:2018/8/10 10:58:18 -- 2018-08-10 10:55:37.640 【后台】 启动后台程式化交易 2018-08-10 10:56:02.046 【后台】TA0002 TSellShort 第 15 行 策略:<MA均线交易指标-后台> 出现信号 2018-08-10 10:56:02.046 【后台】TA0002 TSellShort 已成功触发下单操作 价格:0.000000 数量:0 类型:1 账户: 品种:TA0002 2018-08-10 10:56:02.046 【后台】实际账户持仓 0 2018-08-10 10:56:02.046 【后台】TA0002 TBuy 第 16 行 策略:<MA均线交易指标-后台> 出现信号 2018-08-10 10:56:02.046 【后台】TA0002 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:TA0002 2018-08-10 10:56:02.046 【后台】队列下单 2018-08-10 10:56:02.046 【后台】TA0002 运行结束 2018-08-10 10:56:02.093 【队列】当前队列准备处理数据:1条 2018-08-10 10:56:02.093 【队列】发送下单指令 2018-08-10 10:56:02.093 【下单】下单交易失败。 2018-08-10 10:56:02.093 【队列】下单失败了 2018-08-10 10:57:01.046 【后台】TA0002 TSellShort 第 15 行 策略:<MA均线交易指标-后台> 出现信号 2018-08-10 10:57:01.046 【后台】TA0002 TSellShort 已成功触发下单操作 价格:0.000000 数量:0 类型:1 账户: 品种:TA0002 2018-08-10 10:57:01.046 【后台】实际账户持仓 0 2018-08-10 10:57:01.046 【后台】TA0002 TBuy 第 16 行 策略:<MA均线交易指标-后台> 出现信号 2018-08-10 10:57:01.046 【后台】TA0002 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:TA0002 2018-08-10 10:57:01.046 【后台】队列下单 2018-08-10 10:57:01.046 【后台】TA0002 运行结束 2018-08-10 10:57:01.046 【队列】当前队列准备处理数据:1条 2018-08-10 10:57:01.046 【队列】发送下单指令 2018-08-10 10:57:01.062 【下单】下单交易失败。 2018-08-10 10:57:01.062 【队列】下单失败了 ---- ma5:ma(c,5); //CONDBUY:=CROSS(MA5,MA10); //CONDSELL:=CROSS(MA10,MA5); condsell:=c>ma5; CONDbuy:=c<ma5; if CONDBUY and tholding <=0 then BEGIN tsellshort(1,0,mkt),ORDERQUEUE; tbuy(1,1,mkt),ORDERQUEUE; end if CONDSELL and tholding >=0 then BEGIN tsell (1,0,mkt),ORDERQUEUE; tbuyshort (1,1,mkt),ORDERQUEUE; end 在套利交易中并不成交 |