- 精华
- 0
- 在线时间
- 280 小时
- UID
- 5525
- 积分
- 1473
- 帖子
- 429
- 阅读权限
- 60
- 注册时间
- 2009-9-22
- 最后登录
- 2022-5-23
- 精华
- 0
- UID
- 5525
- 积分
- 1473
- 帖子
- 429
- 主题
- 93
- 阅读权限
- 60
- 注册时间
- 2009-9-22
- 最后登录
- 2022-5-23
|
回答的不到位。
(1)信号消失与序列函数无关,只与是否使用所谓的未来函数有关,如Close,因为在当前Bar结束之前,Close值是一直在变化的;
(2)使用历史数据来作为判断条件就能完全避免信号消失,如 if (Close[1]>Average(Close[1],10) buy(1,open);
当然也可以用Open、Low或High作为判断条件,关键是如何在判断条件中使用,使其一旦条件成立则不管如何行情变化而该判断条件始终不会变化。
如: If (Open>Average(Close[1],10) buy(1,open); 或 If (High>Average(Close[1],10) buy(1,open); 但不能使用这样的语句 If (xxx>High) buy(1,open)自己想一想其中的区别。
(3)序列函数千万不能放在If等条件语句内赋值,这在V4版本中是一种错误的用法,对序列函数赋值一定要放在程序的最外面,也就是要保证每一个Bar或Tick都要执行一遍,不然序列函数就会产生非法值,给逻辑判断产生不可预想的错误。
|
|