设为首页收藏本站

 找回密码
 注册
楼主: 文韦
打印 上一主题 下一主题

漏单现象! [复制链接]

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
21#
发表于 2010-11-16 12:50:47 |只看该作者
不知道为什么原因,总之,感觉网卡的时候,重复发单次数就多,网快的时候,就好点。就是因为找不出原因,才不敢用发单方式开仓。
请教检查持仓手数用那个函数?

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
8209
积分
3268
帖子
413
主题
78
阅读权限
80
注册时间
2010-4-6
最后登录
2013-3-18
22#
发表于 2010-11-16 13:17:03 |只看该作者
A_BuyPosition和A_SellPosition

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
4647
积分
1403
帖子
432
主题
31
阅读权限
60
注册时间
2009-6-16
最后登录
2019-10-27
23#
发表于 2010-11-16 13:49:58 |只看该作者
避免重复发单的办法之一就是不要将仓位检查(A_BuyPosition和A_SellPosition)直接作为开平仓的条件之一。实在需要,就将它改由数据库数据来传递。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
24#
发表于 2010-11-16 13:52:59 |只看该作者
23# liq77

本来就不懂编程,已经很头大了。请教如何通过数据库来设置,能否举个例子,谢谢

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1307
积分
866
帖子
134
主题
37
阅读权限
60
注册时间
2008-3-11
最后登录
2020-4-26
25#
发表于 2010-11-16 22:31:18 |只看该作者
我用TradeState参数储存在数据库中,代替MarketPosition。发单后修改此参数并储存。下一个Tick来了首先读取此参数。由于此参数已修改,因此不会再次发单。发单是用的A函数,价格是(Q_AskPrice+MinPoint)或(Q_BidPrice-MinPoint),最大限度保证单子能成交。发单后过几个TICK用A_BuyPosition和A_SellPosition检查交易是否成功(也可过几秒检查)。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
26#
发表于 2010-11-18 13:04:39 |只看该作者
25# CFXQM

谢谢!能否发一段代码?实在是不懂.不好意思

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
1307
积分
866
帖子
134
主题
37
阅读权限
60
注册时间
2008-3-11
最后登录
2020-4-26
27#
发表于 2010-11-18 17:39:22 |只看该作者
  1. //初始化
  2.         If(BarStatus==0)
  3.         {      
  4.                                 SetGlobalVar(1,0);        //储存的是开多仓或开空仓时的控制标记
  5.                                 SetGlobalVar(6,0);        //TICK  计数清零
  6.                                 tradState = 0;
  7.                                 SetTBProfileString(pKey,pKeyTradState,Text(tradState));
  8.                                 SetTBProfileString(pKey,pKeytradeNO,Text(0));
  9.                                 SetTBProfileString(pKey,pKeyBarMark,Text(0));
  10.                 Return;
  11.         }
  12.         Else
  13.                 {       

  14.                         tradState=Value(GetTBProfileString(pKey,pKeyTradState));
  15.                         tradeNO=  Value(GetTBProfileString(pKey,pKeytradeNO));
  16.                         BarMark=Value(GetTBProfileString(pKey,pKeyBarMark));
  17.                         RiQiDo=GetTBProfileString(pKey,"ruDo");// 初始化时设置,程序重启后,最后一根bar有信号,避免重复发单
  18.                         RiQi=DateTimeToString(Date+Time);
  19.                         RiQi=Mid(RiQi,0,18);

  20.                 }


  21. //做多执行模块
  22.         If(tradeNO == 1 && BarMark == (CurrentBar - 1))
  23.         {

  24.                 If(BarStatus == 2 && TU_MA_CWKZ(1) && tradetime  && GetGlobalVar(1)==0 && TurtleUnits > 0)
  25.                 {
  26.                         If (RiQi==RiQiDo)
  27.             {
  28.                                 tradState=1 ;
  29.                                 SetTBProfileString(pKey,pKeyTradState,Text(tradState));
  30.                                 SetTBProfileString(pKey,pKeyBarMark,Text(0));
  31.                                 SetTBProfileString(pKey,pKeytradeNO,Text(0));
  32.                                 Return;
  33.                         }
  34.                         SetGlobalVar(1,1);  
  35.                         SetTBProfileString(pKey1,name+"_B",Text(1));
  36.                         SetTBProfileString(pKey1,name+"_S",Text(0));


  37.                 }
  38.                 If(GetGlobalVar(1)==1)
  39.                 {
  40.                         TCount = GetGlobalVar(6);
  41.                         If(TCount==0)
  42.                         {
  43.                                                        
  44.                                 if(tradState == -1)
  45.                                         {
  46.                                                 A_SendOrder(Enum_Buy,Enum_Exit,Lots,(Q_AskPrice+MinPoint));
  47.                                                 TCount=TCount+1;
  48.                                         }
  49.                                 Else
  50.                                 {
  51.                                         TCount=TCount+3;
  52.                                 }
  53.                                         SetGlobalVar(6,TCount);
  54.                                                        
  55.                         }
  56.                         Else If(TCount==3)
  57.                         {
  58.                                                
  59.                                                        
  60.                                 If(A_FreeMargin()/((Q_AskPrice+MinPoint)*ContractUnit()*BigPointValue()*MarginRatio())>Lots)
  61.                                 {
  62.                                         A_SendOrder(Enum_Buy,Enum_Entry,TurtleUnits,(Q_AskPrice+MinPoint));

  63.                                 }
  64.                                 TCount=TCount+1;
  65.                                 SetGlobalVar(6,TCount);                       
  66.                                                        
  67.                         }
  68.                         Else If(TCount==6)
  69.                         {
  70.                                 tradState=1 ;
  71.                                 TCount=0;
  72.                                 SetGlobalVar(1,0);
  73.                                 SetGlobalVar(6,TCount);
  74.                                 SetTBProfileString(pKey,pKeyTradState,Text(tradState));
  75.                                 SetTBProfileString(pKey,pKeyBarMark,Text(0));
  76.                                 SetTBProfileString(pKey,pKeytradeNO,Text(0));
  77.                                 RiQiDo=DateTimeToString(Date+Time);
  78.                                 RiQiDo=Mid(RiQiDo,0,18);
  79.                                 SetTBProfileString(pKey,"ruDo",RiQiDo);
  80.                                 Commentary("已买入");
  81.                                 FileAppend(ReportPath,"时间: = "+Text(CurrentTime())+"  品种:"+symbol()+"准备买多"+Text(2 * TurtleUnits)+"手 ,实际买多"+Text(A_BuyPosition())+"手 ");
  82.                         }
  83.                         Else
  84.                         {
  85.                                                        
  86.                                 TCount=TCount+1;
  87.                                 SetGlobalVar(6,TCount);
  88.                                                        
  89.                         }
  90.                                                                                
  91.                 }
  92.                 Else If(BarStatus != 2 Or CurrentTime>0.150001)
  93.                 {
  94.                        
  95.                         myPrice = Open + nOffset*MinPoint;
  96.                         //Buy(lots,myPrice);
  97.                         TradState=1;
  98.                         BarMark=0;
  99.                         tradeNO=0;
  100.                         SetTBProfileString(pKey,pKeyTradState,Text(1));
  101.                         SetTBProfileString(pKey,pKeyBarMark,Text(0));
  102.                         SetTBProfileString(pKey,pKeytradeNO,Text(0));
  103.                         Commentary("已买入");
  104.                 }
  105.         }
复制代码

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
28#
发表于 2010-11-18 20:40:21 |只看该作者
非常感谢!研究一下

使用道具 举报

Rank: 4

精华
0
UID
23646
积分
442
帖子
64
主题
13
阅读权限
50
注册时间
2011-1-10
最后登录
2014-2-11
29#
发表于 2011-8-20 13:37:26 |只看该作者
高手,,感谢,下来研究一下,常常遇到这类问题,头都大了

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
32409
积分
896
帖子
224
主题
4
阅读权限
60
注册时间
2011-4-7
最后登录
2017-1-15
30#
发表于 2011-8-20 19:13:32 |只看该作者
我用的是BUY+SELLSHORT+交易助手,非常偶尔的情况也出现过无法解释的现象,就是图表上有交易,但是实盘账户中没有任何动作,只好手动调整。虽然出现这种情况的频率非常低,但是确实有过。
KISS顺势轻仓

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-23 04:38

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部