- 精华
- 0
- 在线时间
- 83 小时
- UID
- 15288
- 积分
- 382
- 帖子
- 86
- 阅读权限
- 50
- 注册时间
- 2010-8-20
- 最后登录
- 2010-10-14
- 精华
- 0
- UID
- 15288
- 积分
- 382
- 帖子
- 86
- 主题
- 18
- 阅读权限
- 50
- 注册时间
- 2010-8-20
- 最后登录
- 2010-10-14
|
想要有个这个函数的本初需求是:当时间达到设定的禁止开仓的时间限制时,停止开仓,如果尚有未成交委托开仓单则撤单。
受上面地址的代码启发,完成了我想要的函数。代码如下:
// 简称: myDelEntry
// 名称: 撤所有开仓单
// 类别: 用户函数
// 类型: 内建函数
// 输出: 布尔型
//------------------------------------------------------------------------
/*
函数功能:撤所有开仓委托。
使用注意事项:
1、发单标志应在主程序中能表明所需撤单已全被撤的地方进行“标志清零”;
清零的办法:在主程序中加入如下代码
If( A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry)==InvalidInteger && A_GetLastOpenOrderIndex(Enum_Sell,Enum_Entry)==InvalidInteger )
SetGlobalVar(9,0);
全局变量说明:9--撤所有开仓单的动作标志
*/
Vars
Numeric nCount;
Numeric nEntryFlag;
Numeric i;
Bool conReturn;
Begin
nCount = A_GetOpenOrderCount();
If(nCount==InvalidInteger)
{
conReturn=False;
Return conReturn;
}
If(GetGlobalVar(9)!=1)
{
For i = 1 To nCount
{
nEntryFlag = A_OpenOrderEntryOrExit(i);//取得开平仓类型
If( nEntryFlag == Enum_Entry)
{
A_DeleteOrder(A_OpenOrderContractNo(i));
SetGlobalVar(9,1);
conReturn=True;
}
}
}
Return conReturn;
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2010/09/21 12:16
// 版权所有 shunshisx
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------ |
|