- 精华
- 0
- 在线时间
- 255 小时
- UID
- 377
- 积分
- 1827
- 帖子
- 222
- 阅读权限
- 70
- 注册时间
- 2007-9-19
- 最后登录
- 2021-12-9
- 精华
- 0
- UID
- 377
- 积分
- 1827
- 帖子
- 222
- 主题
- 29
- 阅读权限
- 70
- 注册时间
- 2007-9-19
- 最后登录
- 2021-12-9
|
解决反复开仓有很多的办法。
反复开仓的原因很简单,就是CLOSE来判断条件带来的麻烦。
再考虑到历史行情图表和实时行情交易的不同,问题就有点麻烦。
第一个办法是:
这是我最为推荐的解决方法!
不要用CLOSE。而是在判断条件时,多头用HIGH。空头用LOW。
代码容易。而且,无论是实时行情或历史行情图,代码很能兼容。不需要太多改变代码。
并且有利用目视。
第二招
延迟一根BAR。让一根BAR走完之后判断。这个办法的缺点是。假如你的触发价正好处于一根K线的中部。那么,也只能等K线走完再说,必须容忍。
第三招
持仓数量限定。
比如 以在资金大小时,限定能开几手,或只能使用百分之几的资金。需要使用帐户函数
这个办法也有缺点。 实盘行情中暂时触发了开仓条件,之后又退回去了,直至一BAR走完,也没能再次发出信号。 如此这般,历史行情图表上就没有指令信号,而实盘中已经下单。这都是常见问题。 另外,帐户函数用起来可要小心,读取帐户所需要的时间,对于日内短线,可能影响挺大。
所以,这也不是上策。
第四招
用全局变量
超级不推荐。
思路是:实盘中触发了下单条件时,先给全局变量赋个值。然后以此全局变量的值作为交易条件判断发出信号。
因为,全局变量所赋的值 不会随当前COLSE改变而消失。
可是,还是要解决一个问题:
当反复出现条件不成立时信号消失之后,又再次出现。于是全局变量又再次赋值,要防止他再次开仓,只能在给全局变量赋值上想办法。 比如:第一次成立赋值为1。然后消失,再次条件成立时赋值为2。 依次。。。。 只在赋值为1时,发单。
是不是够麻烦的。
还是用第一招,C改为H、L。最为省事。 |
|