开拓者期货期权程序化系统交易论坛
标题:
撤单
[打印本页]
作者:
01011012
时间:
2010-6-10 09:12:12
标题:
撤单
nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
nEntryFlag = A_OrderEntryOrExit(i);//取得开平仓类型
If(nEntryFlag == Enum_Entry)
OrderPrice=IIF(OrderPrice<A_OpenOrderPrice(i),OrderPrice,A_OpenOrderPrice(i));//取得委托价格
}
If(Low>Low[1])
{
For i = 1 To nCount
{
nEntryFlag = A_OrderEntryOrExit(i);
If(nEntryFlag == Enum_Entry And OrderPrice==A_OpenOrderPrice(i))
{
A_DeleteOrder(A_OpenOrderContractNo(i));
SetGlobalVar(1,0);
}
}
}
斑竹所写的撤单代码,不能实现我想要的撤销最小委托价的开仓单。。。请斑竹再看看
作者:
01011012
时间:
2010-6-10 09:48:35
斑竹??????????
作者:
lh948
时间:
2010-6-10 13:43:04
正在测试,测试成功我会将代码贴上来的
作者:
lh948
时间:
2010-6-11 10:51:16
Vars
Numeric nCount;
Numeric nEntryFlag;
Numeric OrderPrice(9999999);
String orderNo;
Numeric i;
Begin
If(BarStatus==0)
{
SetGlobalVar(0,0);
}
nCount = A_GetOpenOrderCount();
If(nCount==InvalidInteger) Return;
If(GetGlobalVar(0)==0)
{
For i = 1 To nCount
{
nEntryFlag = A_OpenOrderEntryOrExit(i);//取得开平仓类型
If(orderprice>A_OpenOrderPrice(i) && nEntryFlag == Enum_Entry)
{
OrderPrice=A_OpenOrderPrice(i);
orderNo=A_OpenOrderContractNo(i);
}
}
A_DeleteOrder(OrderNO);
SetGlobalVar(0,1);
}
End
复制代码
作者:
01011012
时间:
2010-6-11 15:32:50
Vars
Numeric nCount;
Numeric nEntryFlag;
Numeric OrderPrice(9999999);
String orderNo;
Numeric i;
Begin
If(BarStatus==0)
{
SetGlobalVar(0,0);
}
//这
个是否可以用在tick图上?
nCount = A_GetOpenOrderCount();
If(nCount==InvalidInteger) Return;
If(GetGlobalVar(0)==0)
{
For i = 1 To nCount
{
nEntryFlag = A_OpenOrderEntryOrExit(i);//取得开平仓类型
If(
orderprice>A_OpenOrderPrice(i)
&& nEntryFlag == Enum_Entry)
//这个条件是永远成立的?
{
OrderPrice=A_OpenOrderPrice(i);
OrderPrice=Min(OrderPrice,OrderPrice[1]);
orderNo=A_OpenOrderContractNo(i);
}
}
A_DeleteOrder(OrderNO);
//按照斑竹写的这个能否撤销最小价的委托开仓单?需不需要加上上面这句话?今天模拟柜台老是登陆不上,没有办法进行测试,但是按照我的理解来看,好像还是不能实现撤销最小委托价的开仓单。。
SetGlobalVar(0,1);
}
End
还请老师指教。。。。。。。。。。。
[
本帖最后由 01011012 于 2010-6-11 15:35 编辑
]
作者:
01011012
时间:
2010-6-17 08:30:38
老大,端午节快乐。。。。。。。
作者:
aocool
时间:
2010-6-17 09:18:18
老大,你真用功,就凭你这个劲。我相信你能赚钱
作者:
01011012
时间:
2010-6-17 10:39:58
斑竹上班啦,可以回答下吗?
作者:
01011012
时间:
2010-6-17 14:00:24
请斑竹指教。。。。。。。。。。。。。。。。
作者:
lh948
时间:
2010-6-17 15:24:38
1.可以使用在tick上
2.这个是判断条件,需要在barstatus==0下增加
OrderPrice=9999999;
删除初始化那句 Numeric OrderPrice(9999999);
3.最后那一句不用加的!
作者:
01011012
时间:
2010-6-21 10:51:15
我所写的代码是当有持仓时,马上发出平仓。从平仓发单情况上来看,时间未免也延迟太多。。有没有什么好的办法?
[
本帖最后由 01011012 于 2010-6-21 10:55 编辑
]
作者:
顺势顺心
时间:
2010-9-21 12:29:58
请教斑竹。
以上提供的代码只能在tb启动后撤一次单。
如果需要多次使用这个代码的功能如何搞?
执行一次后全局变量为1,如何在上述代码执行撤单成功后将全局变量重置为0?
作者:
lh948
时间:
2010-9-21 12:47:27
以上代码会在每个tick都执行一遍的
作者:
顺势顺心
时间:
2010-9-21 16:39:26
for循环条件使用了全局变量值判断。执行过一次后,在后面的tick执行时将跳过for,不会再撤单了。
作者:
wfklhh2017
时间:
2017-8-19 08:19:16
lh948 发表于 2010-6-11 10:51
管理员同志 学习你之前的代码 If(nCount==InvalidInteger) Return 这个是什么情况下会碰到 ,如果没有未成交委托单 大不了A_GetOpenOrderCount()=0,难道是当前委托单委托回报还没返回的情况下?那A_GetOpenOrderCount()也应该是最近的数据
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2