Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:tbuyholdingex、tremainqty的变化原理是什么

1楼
阿火 发表于:2011/10/20 13:49:53

经过测试发现,

买入开仓后,1手

OrderStatusEx2的Status为"Submitted"和"PreSubmitted" 时,tremainqty(1,'888888',stklabel)的值有时候依然为0,按理应该为“1”

OrderStatusEx2的Status为Filled时,tbuyholdingex的值有时候依然为0 ,按理应该为“1”

当然,大部分是同步的

[此贴子已经被作者于2011-10-20 13:50:30编辑过]
2楼
admin 发表于:2011/10/20 13:57:35
给出日志
3楼
阿火 发表于:2011/10/20 14:41:32

后台程序,模拟账户800043

程序的动作:涨停价开多1手,16秒后 跌停价卖出平仓,再16秒后 开多,如此循环

检查方法:检查tbuyholdingex('800043',stklabel,1)和 extgbdata('kaiping') 是否一致

 

kaiping的取值来源于OrderStatusEx2

代码如下:

Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
 if filled=1 then
  if kaiping=0 then document.SetExtData "kaiping",1   '开多,且成交,kaiping置为1
  if kaiping=1 then document.SetExtData "kaiping",0   ’平多,且成交,kaiping置为0

 end if
End Sub

 

后台程序:

if not(islastbar) then exit;
abb:=extgbdata('abb');
buyhold:=tbuyholdingex('800043',stklabel,1);
if buyhold<>extgbdata('kaiping') then debugfile('c:\luntan.txt','no=%.0f',1);//如果不一致,输出 no=1
if buyhold=0 and abb=16 then begin
 tbuy(1,1,lmt,dynainfo(54),0,'800043'),allowrepeat;
 extgbdataset('abb',0);
end

if buyhold>0 and abb=10 then begin
 tsell(1,1,lmt,dynainfo(55),0,'800043'),allowrepeat;
 extgbdataset('abb',0); 
end

if abb>16 then extgbdataset('abb',abb-1);
if abb<16 then extgbdataset('abb',abb+1);

 

输出的日志:

2011-10-20 13:38:07.114    no=1
2011-10-20 13:39:57.114    no=1
2011-10-20 13:42:10.114    no=1
2011-10-20 13:42:32.114    no=1
2011-10-20 13:44:44.161    no=1
2011-10-20 13:46:56.161    no=1

4楼
admin 发表于:2011/10/20 14:43:51

同步时间下单的金字塔日志也提供一下

5楼
阿火 发表于:2011/10/20 15:03:07

或者这样检测 ,后台每10秒钟开多、平多一直循环

只交易1个品种,只开多,这样 order.Holding2("800043") 为1 就是 持有1手多单,为0就是没有任何持仓

开多成交时,检查order.Holding2是否为1 ,平多成交时,检查order.Holding2是否为0

如果不对,就输出消息。

不知道这样检测是否科学?

 

dim Acc
Sub ORDER_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
 if filled=1 then
  if kaiping=0 then acc=1
  if kaiping=1 then acc=0
  if acc<>order.Holding2("800043") then
   application.MsgOut "1"
  end if
 end if
End Sub

共5 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 3 queries.