欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于TBUYHOLDING值闪烁的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4100人关注过本帖树形打印复制链接

主题:关于TBUYHOLDING值闪烁的问题

帅哥哟,离线,有人找我吗?
uranusmoon
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
关于TBUYHOLDING值闪烁的问题  发帖心情 Post By:2017/5/11 11:30:49    Post IP:211.101.224.174[显示全部帖子]

估计很多后台交易者都是采用TBUYHOLDING和TSELLHOLDING提取实际持仓数量来实现后台持仓同步吧,使用中发现账号断线重连状况下,有时候TBUYHOLDING、TSELLHOLDING的提取值为零,导致程序对实际持仓判断有误而又开一次仓。我看了orderlog纪录,持仓同步的下单有时在登录前,有的在登录后。无论在前再后,时间很接近,有两点不明白请大家解惑:
(1)账号登录后下单,说明登录后TBUYHOLDING、TSELLHOLDING的值判断为零,而执行了持仓同步。那么账号登录后一瞬间TBUYHOLDING、TSELLHOLDING的提取值可能有误。
(2)账号登录前下单,这点奇怪了,账号没登录,怎么会执行开平仓操作?

注:用的模拟盘,后台1秒轮询,账号时有断线重连现象,发现有此问题。

 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 13:26:10    Post IP:211.101.224.174[显示全部帖子]

怎么判断账户ID是否正常登录?上述持仓同步,我已经用TACCOUNT(1)>0来限定。

 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 13:40:06    Post IP:211.101.224.174[显示全部帖子]

TACCOUNT(1)>0与taccount(1)=‘账户'效果一样,如果账户未登录,TACCOUNT(1)=0。正是网络不稳定才用taccount来判断账号登录状况的。问题是,既然已经判断TACCOUNT(1)>0,即账号登录了,为什么TBUYHOLDING、TSELLHOLDING还判断为0?注意,这个判断错误是在账号已经登录后的一瞬间,随后又恢复正常了,所以我的持仓同步总是多开一次仓后又马上平掉了。

 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 14:43:20    Post IP:211.101.224.174[显示全部帖子]

我认为这不是什么物理环境问题。一个月碰到几次账户无故掉线重连很正常,我要解决的是掉线重连导致的仓位判断错误以及反复开平仓和由此导致亏损的问题。其实我估计,版主你的回答已经指出的问题的所在。先说一下我的持仓同步逻辑:taccount(1)>0判断账户登录,然后tbuyholding和tsellholding判断持有多空仓,与逻辑持仓不符则立即修正仓位,与阿火的方法基本一样。问题的关键可能是:账号登录后很短的时刻内,执行tbuyholidng和tsellholding但柜台尚未返回正确的值,因此仓位判断为0,导致后续修正仓位的代码被执行。如果是这样,要解决也很简单,账号登录后可以等几秒钟再执行开平仓代码。

 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 15:36:50    Post IP:211.101.224.174[显示全部帖子]

老大,不是正好断开时候去发出信号。就借用阿火模板解释一下:
cc:=holding;
if holding>0 and c<ref(c,1) then sell(1,1,market);
if holding<0 and c>ref(c,1) then sellshort(1,1,market);
if holding=0 and c>ref(c,1) then buy(1,1,market);
if holding=0 and c<ref(c,1) then buyshort(1,1,market);
if not(islastbar) or workmode<>1 then exit;
tm:=30;//
撤单时间
ac:='800988';//
下单账户
wt:=tremainqty(0,ac,stklabel);
buyhold:=tbuyholdingex(ac,stklabel,1);
sellhold:=tsellholdingex(ac,stklabel,1);
if wt>0.5 and tsubmit(0)>tm then tcancelex(1,0,ac,stklabel);//
如果用软件自带的撤单功能,这句删除。
if wt<0.5 then begin
 kc1:=max(cc,0)-buyhold;
 kc2:=abs(min(cc,0))-sellhold;
 if kc1<-0.5 then tsell(1,abs(kc1),mkt,0,0,ac),allowrepeat;
 if kc2<-0.5 then tsellshort(1,abs(kc2),mkt,0,0,ac),allowrepeat;
 if sellhold<0.5 and kc1>0.5 then tbuy(1,kc1,mkt,0,0,ac),allowrepeat;
 if buyhold<0.5  and kc2>0.5 then tbuyshort(1,kc2,mkt,0,0,ac),allowrepeat;
end

如果账户断线后再登录,第一次执行到
buyhold:=tbuyholdingex(ac,stklabel,1);
sellhold:=tsellholdingex(ac,stklabel,1);
是不是有可能柜台未返回正确值而等于0??如果是,那么显然下面代码会修正仓位,导致再一次开仓:
 if kc1<-0.5 then tsell(1,abs(kc1),mkt,0,0,ac),allowrepeat;
 if kc2<-0.5 then tsellshort(1,abs(kc2),mkt,0,0,ac),allowrepeat;
 if sellhold<0.5 and kc1>0.5 then tbuy(1,kc1,mkt,0,0,ac),allowrepeat;
 if buyhold<0.5  and kc2>0.5 then tbuyshort(1,kc2,mkt,0,0,ac),allowrepeat;
end

如果上述分析是对的,是不是可以这样:提取实际持仓后等待几秒,等收到柜台回报再执行开仓代码。


 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 16:38:16    Post IP:211.101.224.174[显示全部帖子]

嗯,就是想找技术解决方法。判断账户资金的思路挺好,没用过资金比例控制仓位,没想到这点。多谢


 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 16:51:08    Post IP:211.101.224.174[显示全部帖子]

再问一下,判断账户资金时,用后台函数TASSET还是账户函数TACCOUNT(6)?
[此贴子已经被作者于2017/5/11 16:51:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
uranusmoon
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:415 积分:0 威望:0 精华:0 注册:2013/6/13 17:00:05
  发帖心情 Post By:2017/5/11 17:03:28    Post IP:211.101.224.174[显示全部帖子]

好的,多谢图片点击可在新窗口打开查看

 回到顶部