- 精华
- 0
- 在线时间
- 8 小时
- UID
- 110434
- 积分
- 24
- 帖子
- 3
- 阅读权限
- 10
- 注册时间
- 2012-5-12
- 最后登录
- 2012-6-27
- 精华
- 0
- UID
- 110434
- 积分
- 24
- 帖子
- 3
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2012-5-12
- 最后登录
- 2012-6-27
|
信号消失应该是由于判断条件发生了变化导致条件不符而取消交易行为,本人也困惑于其中的一些消失原因,特发帖探讨消失的技术原因,希望大家积极参与讨论,提高对判断条件运行机制的认识。我所认为信号消失的原因大致如下:
第一,序列变量如果取值为invalid 那从第一根bar开始重新计算,因此在条件判断中是否有序列变量存在invalid值导致信号消失?
第二,条件判断一般总是以类似如下形式出现
A=close;
if (marketposition==0 && A>open)
buy(0,0);
如此简单的语句,我想大家都知道会产生信号消失问题,那我不禁想深入研究下,当A>open的条件符合的时候,系统会开仓,在当前bar上行情继续更新,之后A<open的时候那开仓信号就会消失,那为何marketposition变为了1,而A还是>open的时候为何信号不会消失呢?
第三,复杂化上述代码
numeric A;
numericseries B;
A=close;
//假设close在2000点,open在1999点
if (marketposition==0 && A>open)
{
buy(0,A);
B=A;
}
if (marketposition==1 && 2001-B>0)
{
buy(1,B);
B=B+1;
}
这段代码开仓成功后到加仓部分第一次加仓信号会出现,当运行了B=B+1后,B赋值为2001之后,下一个tick信号就会消失,2001-B<0不符合加仓条件了,信号就消失了?
如何解决类似情况,希望有解决经验的同学提出宝贵见解。 |
|