- 精华
- 0
- 在线时间
- 31 小时
- UID
- 20900
- 积分
- 122
- 帖子
- 21
- 阅读权限
- 40
- 注册时间
- 2010-12-4
- 最后登录
- 2011-12-27
- 精华
- 0
- UID
- 20900
- 积分
- 122
- 帖子
- 21
- 主题
- 3
- 阅读权限
- 40
- 注册时间
- 2010-12-4
- 最后登录
- 2011-12-27
|
模拟盘测试中,还是j时不时出现有多手仓单,尽管多数情况下是一手。请版主看一下问题。
以下是测试程序:
Params
Numeric Lots(1); // 默认的交易数量
Vars
BoolSeries BPSHORT(false); //平空条件
BoolSeries BLONG(false); //开多条件
BoolSeries SPBLONG(false); //平多条件
BoolSeries BSHORT(false); //开空条件
Begin
If (BarStatus==0)
SetGlobalVar(8,0);
//------------ 平空操作 -----------------
BPSHORT = Low[1]-Low[2]>0 And low[2]-low[3]>0; //平空条件
If(BPSHORT==True And GetGlobalVar(8)==-1 And BarStatus==2 And QuoteDataExist==True)
{
A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_BidPrice+2*MinMove*PriceScale);
SetGlobalVar(8,0);
}
//------------ 开多操作 -----------------
BLONG = Low[1]-Low[2]>0 And low[2]-low[3]>0; //开多条件
If(BLONG==True And GetGlobalVar(8)==0 And BarStatus==2 And QuoteDataExist==True) //全局变量==0
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_BidPrice+2*MinMove*PriceScale);
SetGlobalVar(8,1);
}
//------------ 平多操作 -----------------
SPBLONG = High[1]-High[2]<0 And High[2]-High[3]<0; //平多条件
If(SPBLONG==True And GetGlobalVar(8)==1 And BarStatus==2 And QuoteDataExist==True)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_AskPrice-2*MinMove*PriceScale);
SetGlobalVar(8,0);
}
//------------ 开空操作 -----------------
BSHORT = High[1]-High[2]<0 And High[2]-High[3]<0; //开空条件
If(BSHORT==True And GetGlobalVar(8)==0 And BarStatus==2 And QuoteDataExist==True)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Q_AskPrice-2*MinMove*PriceScale);
SetGlobalVar(8,-1);
}
End |
|