- 精华
- 0
- 在线时间
- 29 小时
- UID
- 228131
- 积分
- 5
- 帖子
- 4
- 阅读权限
- 10
- 注册时间
- 2016-2-15
- 最后登录
- 2021-10-24
- 精华
- 0
- UID
- 228131
- 积分
- 5
- 帖子
- 4
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2016-2-15
- 最后登录
- 2021-10-24
|
请教诸位,为什么这段代码在模拟盘跑的时候会出现持仓大于1手,而且是第三日夜盘增加的。。。。
Params
//此处添加参数
Numeric length(11);
Numeric lots(0);
Numeric takeprofitset(51);
Vars
//此处添加变量
NumericSeries ma1;
Numeric minpoint;
Numeric myentryprice;
Numeric myexitprice;
Numeric btx;
Bool con1;
Bool con2;
Bool con3;
Bool con4;
Bool con5;
Bool con6;
Bool con7;
Bool con8;
Bool con9;
Bool con10;
Bool con11;
Bool con12;
Bool con13;
Bool con14;
Begin
//此处添加代码正文
btx=GetGlobalVar(0);
If(btx==InvalidNumeric)
{
btx=0;
SetGlobalVar(0,btx);
}
ma1 = AverageFC(close,length);
PlotNumeric ("ma1",ma1);
minpoint = MinMove*PriceScale;
myentryprice = AvgEntryPrice;
con11 = Q_AskPrice>ma1[0];
con12 = Q_BidPrice<ma1[0];
con3 = GetGlobalVar(0) == 0 or GetGlobalVar(0) == -1;
con4 = GetGlobalVar(0) == 0 or GetGlobalVar(0) ==1;
con1 = con11 && (A_BuyPosition()==0) && con3;
con2 = con12 && (A_SellPosition()==0) && con4;
If(con1)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
SetGlobalVar(0,1);
}
If(con2)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);
SetGlobalVar(0,-1);
}
If(A_BuyPosition() == 1) // 有多仓的情况
{
If (high >= myentryprice+takeprofitset*minpoint) //止盈条件
{
A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
}else if (high >= ma1[0]+takeprofitset*minpoint) //动态止损
{
A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
}
}else if (A_SellPosition()==-1) //有空仓的情况
{
If ( Low <= myentryprice - takeprofitset*minpoint) //止盈条件
{
A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
}else if (Low <= ma1[0]-takeprofitset*minpoint) //止损表达式
{
A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
}
}
End |
|