- 精华
- 3
- 在线时间
- 12229 小时
- UID
- 5
- 积分
- 26584
- 帖子
- 12686
- 阅读权限
- 200
- 注册时间
- 2007-7-20
- 最后登录
- 2021-11-3
- 精华
- 3
- UID
- 5
- 积分
- 26584
- 帖子
- 12686
- 主题
- 49
- 阅读权限
- 200
- 注册时间
- 2007-7-20
- 最后登录
- 2021-11-3
|
本帖最后由 小米 于 2015-9-17 10:15 编辑
wu82088465 发表于 2015-9-13 21:17
@小米 请帮我看看。。。 - Params
- Numeric lots(1);
- Vars
- Numeric ma4;
- Numeric ma9;
- Numeric ma10;
- Numeric ma18;
- Numeric ma20;
- Numeric ma50;
- boolseries con1;
- boolseries con2;
- Begin
- ma4=AverageFC(Close,4);
- ma9=AverageFC(Close,9);
- ma10=AverageFC(Close,10);
- ma18=AverageFC(Close,18);
- ma20=AverageFC(Close,20);
- ma50=AverageFC(Close,50);
- con1 = Close[1]>ma10 && ma10>ma20 && ma20>ma50) || (Close[1]>ma4 && ma4>ma9 && ma9>ma18;
- con2 = Close[1]<ma10 && ma10<ma20 && ma20<ma50) || (Close[1]<ma4 && ma4<ma9 && ma9<ma18;
- If(Close[1]>Close[2])
- {
- If(con1[1] ==true)
- Buy(lots,Open);
- }
- If(Close[1]<Close[2])
- {
- If((con2[1]==true))
- SellShort(lots,Open);
- }
- End
复制代码 你的公式里有信号消失的原因在于使用了close的判断以及close计算的变量结果。
当一个bar没有结束前,这个close是会变动的。。于是这个值可能会在满足条件与不满足条件之间来回跳动。
当前的处理办法是在这个bar结束时再判断条件是否满足,即在下一个bar一开始时就进行判断条件并决定是否下单 。 |
|