以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=165090)

--  作者:amao2003
--  发布时间:2018/8/21 22:39:54
--  平仓转对锁的问题
if 做多  then  begin   
 sellshort(1,1,limitr,close);
 buy(holding=0,1,limitr,close);
end 


if  做空  then  begin
 sell(1,1,limitr,close);
 buyshort(holding=0,1,limitr,close);
end


如果原来持仓2多1空,即实际为1单多 ,要改做空,在图表模式下使用平仓转对锁功能的平仓模式,是不能实现平掉2手多单,留1手空单呢?

2018-08-21 21:12:45.843    【图表】AL10 运行完毕
2018-08-21 21:13:00.843    【图表】AL10 运行完毕
2018-08-21 21:14:00.843    【图表】框架:Technic 触发下单 SELLSHORT 品种 AL10 下单K线 2018.08.22 01:14:00 公式:Formula81 窗格ID:Main 代码行:4
2018-08-21 21:14:00.843    【图表】模型下单 1
2018-08-21 21:14:00.843    【图表】下单系数调整后 手数:1
2018-08-21 21:14:00.843    【图表】实际持仓 -5
2018-08-21 21:14:00.843    【图表】直接下单
2018-08-21 21:14:00.843    【图表】框架:Technic 触发下单 BUY 品种 AL10 下单K线 2018.08.22 01:14:00 公式:Formula81 窗格ID:Main 代码行:5
2018-08-21 21:14:00.843    【图表】模型下单 1
2018-08-21 21:14:00.843    【图表】下单系数调整后 手数:1
2018-08-21 21:14:00.843    【图表】直接下单
2018-08-21 21:14:00.843    【图表】AL10 运行完毕
2018-08-21 21:14:00.843    【下单】AL10 价14705.000000 量1 买卖0 类型0 开平1 账户625045 Formula 1
2018-08-21 21:14:00.843    【下单】已提交,订单ID :-959393290
2018-08-21 21:14:00.843    【下单】AL10 价14705.000000 量1 买卖0 类型0 开平0 账户625045 Formula 1
2018-08-21 21:14:00.843    【下单】调整为只平仓模式
2018-08-21 21:14:00.843    【下单】已提交,订单ID :-959393289
2018-08-21 21:14:00.906    【指令】收到回报指令 ID = -959393290
2018-08-21 21:14:00.937    【回报】625045 : AL10 - 已报单 1 价格:14705 平 买
2018-08-21 21:14:00.937    【指令】报单被拒 ID = -959393289
2018-08-21 21:14:00.937    【回报】625045 : al1810 - 可平数量不足
2018-08-21 21:14:00.937    【指令】收到回报指令 ID = -959393290
2018-08-21 21:14:00.937    【指令】收到Order回报指令 ID = -959393290 Status = 3
2018-08-21 21:14:05.250    【追单】发送了首次追单下单指令到队列 追单数量:1 账户625045 报单:1 成交0
2018-08-21 21:14:05.250    【追单】追单队列 撤单操作 订单号:-959393290 账户:625045
2018-08-21 21:14:05.328    【回报】625045 : AL10 沪铝1810 - 已撤单 量:1
2018-08-21 21:14:05.343    【下单】AL10 价14710.000000 量1 买卖0 类型0 开平1 账户625045 Formula 1
2018-08-21 21:14:05.343    【下单】已提交,订单ID :-959393288
2018-08-21 21:14:05.343    【追单】撤单成功,发送追单指令
2018-08-21 21:14:05.343    【指令】收到回报指令 ID = -959393290
2018-08-21 21:14:05.406    【指令】收到回报指令 ID = -959393288
2018-08-21 21:14:05.421    【回报】625045 : AL10 - 已报单 1 价格:14710 平 买
2018-08-21 21:14:05.421    【指令】收到回报指令 ID = -959393288
2018-08-21 21:14:05.421    【指令】收到Order回报指令 ID = -959393288 Status = 3
2018-08-21 21:14:05.437    【指令】收到回报指令 ID = -959393288
2018-08-21 21:14:05.453    【指令】收到成交回报指令 ORDERID = -959393288
2018-08-21 21:14:05.453    【指令】平仓计量 EBuy:0 ESell:0
2018-08-21 21:14:05.468    【回报】625045 : al1810 - 已成交 1 价格:14710 平 买
2018-08-21 21:14:05.468    【回报】625045 : al1810 - 全部成交 1
2018-08-21 21:14:50.562    【回报】625045 : 连接断开


这是今天的平仓模式日志,怎么显示可平数量不足呢?这是什么原因呢?

--  作者:amao2003
--  发布时间:2018/8/21 22:54:36
--  
018-08-21 22:52:53.718    【图表】框架:Technic 触发下单 SELL 品种 AL10 下单K线 2018.08.22 02:52:00 公式:Formula81 窗格ID:Main 代码行:10
2018-08-21 22:52:53.718    【图表】模型下单 1
2018-08-21 22:52:53.718    【图表】下单系数调整后 手数:1
2018-08-21 22:52:53.718    【图表】实际持仓 2
2018-08-21 22:52:53.718    【图表】直接下单
2018-08-21 22:52:53.718    【图表】框架:Technic 触发下单 BUYSHORT 品种 AL10 下单K线 2018.08.22 02:52:00 公式:Formula81 窗格ID:Main 代码行:11
2018-08-21 22:52:53.718    【图表】模型下单 1
2018-08-21 22:52:53.718    【图表】下单系数调整后 手数:1
2018-08-21 22:52:53.718    【图表】直接下单
2018-08-21 22:52:53.718    【图表】AL10 运行完毕
2018-08-21 22:52:53.718    【下单】AL10 价14685.000000 量1 买卖1 类型0 开平1 账户625045 Formula 1
2018-08-21 22:52:53.718    【下单】已提交,订单ID :-959393109
2018-08-21 22:52:53.718    【下单】AL10 价14685.000000 量1 买卖1 类型0 开平0 账户625045 Formula 1
2018-08-21 22:52:53.718    【下单】调整为只平仓模式
2018-08-21 22:52:53.734    【下单】已提交,订单ID :-959393108
2018-08-21 22:52:53.812    【指令】收到回报指令 ID = -959393109
2018-08-21 22:52:53.828    【回报】625045 : AL10 - 已报单 1 价格:14685 平 卖
2018-08-21 22:52:53.828    【指令】报单被拒 ID = -959393108
2018-08-21 22:52:53.828    【回报】625045 : al1810 - 可平数量不足
2018-08-21 22:52:53.828    【指令】收到回报指令 ID = -959393109
2018-08-21 22:52:53.828    【指令】收到Order回报指令 ID = -959393109 Status = 3
2018-08-21 22:52:53.828    【指令】收到回报指令 ID = -959393109
2018-08-21 22:52:53.890    【指令】收到成交回报指令 ORDERID = -959393109
2018-08-21 22:52:53.890    【回报】625045 : al1810 - 已成交 1 价格:14685 平 卖
2018-08-21 22:52:53.890    【回报】625045 : al1810 - 全部成交 1


--  作者:amao2003
--  发布时间:2018/8/21 23:22:38
--  
这个仓位是指哪个?是图表中的holding么,和这个虚拟持仓有关吗?
--  作者:wenarm
--  发布时间:2018/8/22 8:25:48
--  

只平模式下,平空开多,会转成平空平多,日志中,说的可平数量不足,指的是多头账户持仓数量不足,也就是说你实际账户没有多头持仓。

第二段日志正好相反。

 

3楼中的问题:

和图表虚拟持仓无关。日志中记录的仓位回报都是实际账号。

注:如果你只交易上期所的品种,完全可以使用“平老仓优先的设置”


--  作者:amao2003
--  发布时间:2018/8/22 10:21:16
--  
f 做多  then  begin   
 sellshort(1,1,limitr,close);
 buy(holding=0,1,limitr,close);
end 


if  做空  then  begin
 sell(1,1,limitr,close);
 buyshort(holding=0,1,limitr,close);
end

如果是平仓模式下,是不是这样的:

f 做多  then  begin   
 sellshort(1,1,limitr,close);
 sellshort(1,1,limitr,close);
end 


if  做空  then  begin
 sell(1,1,limitr,close);
 sell(1,1,limitr,close);
end

--  作者:amao2003
--  发布时间:2018/8/22 10:57:57
--  
账户里实际持仓是有的,多空各有5手,怎么会提示可平数量不足呢?
--  作者:FireScript
--  发布时间:2018/8/22 11:05:17
--  
 没必要写2条语句的。

sell(1,2,limitr,close);或者

sell(1,holding,limitr,close);

--  作者:amao2003
--  发布时间:2018/8/22 11:15:26
--  
两句语句是一样的,我是说如果是平仓模式下,是不是按如下的语句的意思执行呢?

f 做多  then  begin   
 sellshort(1,2,limitr,close)
end 

if  做空  then  begin
 sell(1,2,limitr,close)
end

可我运行的结果怎么只平掉了1手单呢?日志上显示可平数量不足呢? 日志里的仓位读的是什么仓位呢?实际持仓是有的,多空各有5手呀
[此贴子已经被作者于2018/8/22 11:16:58编辑过]

--  作者:amao2003
--  发布时间:2018/8/22 13:52:43
--  
图片点击可在新窗口打开查看
--  作者:FireScript
--  发布时间:2018/8/22 15:05:03
--  
  图表信号发出下单指令,比如平3手,之后系统会读取实际账号持仓做一个判断,来确定是否有足够仓位执行平仓。因此日志里面读取的是实际账号的仓位。

你上面8楼那个语句都是平仓语句,在只平仓模式下应该是会正常执行的啊。