- 精华
- 0
- 在线时间
- 1023 小时
- UID
- 38411
- 积分
- 669
- 帖子
- 160
- 阅读权限
- 60
- 注册时间
- 2011-5-8
- 最后登录
- 2023-10-4
- 精华
- 0
- UID
- 38411
- 积分
- 669
- 帖子
- 160
- 主题
- 17
- 阅读权限
- 60
- 注册时间
- 2011-5-8
- 最后登录
- 2023-10-4
|
本帖最后由 期货进行中 于 2012-4-24 07:49 编辑
假设已开多单,则从开仓的K线开始记录BBI(多空指数)的最大值(记为HBBI),当BBi<=(1-n*0.01)*hbbi时,平多开空;
从开空的K线开始记录BBI的最小值(记为LBBI),当BBI>=(1+n*0.01)*lbbi 时,平空开多,依次进行
我编了一下,HBBI和LBBI这样取值好象不对,请老大们帮忙看看哪里错了?
谢谢!
Params
Numeric N(2);
Numeric lots(1);
Vars
Numeric HBBI;
Numeric LBBI;
NumericSeries bbi;
BoolSeries conb;
BoolSeries cons;
NumericSeries startbar1(0);
NumericSeries startbar2(0);
Begin
BBI=(Average(CLOSE,3)+Average(CLOSE,6)+Average(CLOSE,12)+Average(CLOSE,24))/4;
if(currentbar<=22)
{
HBBI=0;
lbbi=0;
}Else
if(MarketPosition==0)
{
HBBI=Max(bbi,hbbi[1]);
lbbi=Min(bbi,lbbi[1]);
}
conb=BBI>=(1+n*0.01)*lbbi and MarketPosition!=1;
if(conb[1])
{
Buy(lots,open);
startbar1=CurrentBar;
hbbi=Highest(bbi,currentbar-startbar1);
}Else
cons=BBi<=(1-n*0.01)*hbbi and MarketPosition!=-1;
if (cons[1])
{
SellShort(lots,open);
startbar2=CurrentBar;
lbbi=Lowest(bbi,currentbar-startbar2);
}
End |
|