- 精华
- 0
- 在线时间
- 18 小时
- UID
- 231106
- 积分
- 11
- 帖子
- 5
- 阅读权限
- 10
- 注册时间
- 2016-3-29
- 最后登录
- 2016-8-10
- 精华
- 0
- UID
- 231106
- 积分
- 11
- 帖子
- 5
- 主题
- 4
- 阅读权限
- 10
- 注册时间
- 2016-3-29
- 最后登录
- 2016-8-10
|
// 有多仓的情况
if(MarketPosition == 1 And SendOrderThisBar == False) // 满足条件4平多仓(建/加仓bar不平仓)
{
If(condition4)
{
Sell(0,open);
}Else // 加仓
{
If( High >= (1 + X) * preEntryprice )
{
myEntryprice = (1 + X) * preEntryprice;
myEntryprice = IIF(myEntryprice < open ,Open,myEntryprice); // 向上跳空时
preEntryprice = myEntryprice;
Buy(lots,myEntryprice);
SendOrderThisBar = True;
}
While( High >= preEntryprice * (1 + X)) // 最高价判断加仓的次数(全局设置最多连续加仓2次)
{
myEntryprice = preEntryprice * (1 + X);
myEntryprice = IIF(myEntryprice < open ,Open,myEntryprice); // 向上跳空时
preEntryprice =myEntryprice;
Buy(lots,myEntryprice);
SendOrderThisBar = True;
}
}
}
// 有空仓的情况
if(MarketPosition == -1 And SendOrderThisBar == False) // 满足条件3平空仓(建/加仓bar不平仓)
{
If(condition3)
{
BuyToCover(0,open);
}Else // 加仓
{
If( Low <= preEntryprice * (1 - X))
{
myEntryprice = preEntryprice * (1 - X);
myEntryprice = IIF(myEntryprice > open ,Open,myEntryprice); // 向下跳空时
preEntryprice = myEntryprice;
SellShort(lots,myEntryprice);
SendOrderThisBar = True;
}
While( Low <= preEntryprice * (1 - X)) // 最低价判断加仓的次数(全局设置最多连续加仓2次)
{
myEntryprice = preEntryprice * (1 - X);
myEntryprice = IIF(myEntryprice > open ,Open,myEntryprice); // 向下跳空时
preEntryprice =myEntryprice;
SellShort(lots,myEntryprice);
SendOrderThisBar = True;
}
}
}
我想实现的是建仓后每高/低于上次成交价格的x%就加仓一次,但回测却只有多仓的情况有加仓,空仓没有加仓的情况,代码哪儿出问题了呢? |
|