- 精华
- 0
- 在线时间
- 29 小时
- UID
- 118221
- 积分
- 24
- 帖子
- 11
- 阅读权限
- 10
- 注册时间
- 2013-4-16
- 最后登录
- 2013-11-18
- 精华
- 0
- UID
- 118221
- 积分
- 24
- 帖子
- 11
- 主题
- 3
- 阅读权限
- 10
- 注册时间
- 2013-4-16
- 最后登录
- 2013-11-18
|
本帖最后由 散兵游勇 于 2013-7-10 17:56 编辑
请大家指点指点,这个逻辑错误出在哪里? Bkaiguan和Skaiguan的数只在0、1间变动,程序无法执行。
Params
Numeric Length1(5);
Numeric Length2(10);
Numeric Length3(20);
Numeric I(3);
Numeric money(100000);
Vars
NumericSeries MA1;
NumericSeries MA2;
NumericSeries MA3;
NumericSeries Bkaiguan(0);
NumericSeries Skaiguan(0);
bool con1;
bool con2;
Begin
MA1=Average(Close,Length1);
MA2=Average(Close,Length2);
MA3=Average(Close,Length3);
con1=ma1[1]>ma2[1];
con2=ma1[1]<=ma2[1];
If(Bkaiguan==0)
{
If(con1)
{
Bkaiguan=1;
Skaiguan=0;
}
}
If(Bkaiguan==1 && CrossUnder(ma1[1],ma2[1])) Bkaiguan=2;
If(Bkaiguan==2 && CrossOver(ma1[1],ma2[1])) Bkaiguan=3;
If(Bkaiguan==3 && MarketPosition==0 )
{
Buy(1,o);
Skaiguan=0;
}
If(Skaiguan==0)
{
If(con2)
{
Skaiguan=1;
Bkaiguan=0;
}
}
If(Skaiguan==1 && CrossOver(ma1[1],ma2[1])) Skaiguan=2;
If(Skaiguan==2 && CrossUnder(ma1[1],ma2[1])) Skaiguan=3;
If(Skaiguan==3 && MarketPosition==0)
{
SellShort(1,o);
Bkaiguan=0;
} |
|