- 精华
- 0
- 在线时间
- 38 小时
- UID
- 254249
- 积分
- 53
- 帖子
- 37
- 阅读权限
- 30
- 注册时间
- 2017-7-20
- 最后登录
- 2019-2-12
- 精华
- 0
- UID
- 254249
- 积分
- 53
- 帖子
- 37
- 主题
- 14
- 阅读权限
- 30
- 注册时间
- 2017-7-20
- 最后登录
- 2019-2-12
|
哪位能帮我看一下这段程序,“破下限开仓”后,就再也不“破上限平仓”了,不知道哪里出了问题,平仓的信号出现了很多次了,就是不发单。
Params
Numeric N(101);
Numeric A(0.10);
Numeric Lots(1);
Vars
NumericSeries OO;
NumericSeries Mean;
NumericSeries K;
Begin
OO=Data1.Open-Data0.Open; // OO赋值
Mean=Average(OO,N); // Mean赋值
K=A*StandardDev(OO,N,1); // K赋值
If(OO<=Mean-K) //如果破下限,整体开多
{
//(被减数开多)
If(Data1.A_BuyPosition==0) //如果被减数多仓为0
{Data1.Buy(Lots,Data1.Open);} //以Open开多被减数Lots手
//(减数开空)
If(Data0.A_SellPosition==0) //如果减数空仓为0
{Data0.SellShort(Lots,Data0.Open);} //以Open开空减数Lots手
}
If(OO>=Mean+K) //如果破上限,整体平多
{
//(被减数平多)
If(Data1.A_BuyPosition!=0) //如果被减数多仓不为0
{Data1.Sell(Data1.A_BuyPosition,Data1.Open);} //以Open平多被减数全部
//(减数平空)
If(Data0.A_SellPosition!=0) //如果减数空仓不为0
{Data0.BuyToCover(Data0.A_SellPosition,Data0.Open);} //以Open平空减数全部
}
End
|
|