- 精华
- 0
- 在线时间
- 784 小时
- UID
- 7437
- 积分
- 2872
- 帖子
- 537
- 阅读权限
- 80
- 注册时间
- 2010-3-15
- 最后登录
- 2013-11-15
- 精华
- 0
- UID
- 7437
- 积分
- 2872
- 帖子
- 537
- 主题
- 133
- 阅读权限
- 80
- 注册时间
- 2010-3-15
- 最后登录
- 2013-11-15
|
本帖最后由 欲速不达 于 2011-6-24 15:54 编辑
目前MarketPosition不能与帐户持仓函数A_BuyPosition()或A_SellPosition()进行组合用buy,sell在当前bar去处理一些特殊情况。导致的麻烦是:如果当前bar已开仓,因故系统退出重新加载公式时系统又再次开仓,如果能在当前bar配合帐户仓位函数去检查持仓就能很好地解决这个问题,当然开仓代码要分当前bar和非当前bar写,这是麻烦之一;其二是不能用MarketPosition配合帐户持仓用sell去处理因故导致的无信号有持仓的异常情况(如:平仓信号bar因故未触发平仓、信号消失等留下的持仓,在有上10个品种以上交易再加上多帐户时不用程序去控制,人工是很难发现的,到发现时损失已经不小了,虽然说要避免信号消失,但有些情况还无法杜绝,比如突破上下轨开仓系统,遇到妖魔行情一根K线同时穿上下轨,是开空还是开多,这样在一个bar急涨急跌上100点的行情空和多参与都不是很好,如果不控制在此bar是多空都会开仓,同时还造成测试时信号反复不真实,为了尽量减少一些损失只能在条件中限制开多时要求Low大于下轨,但当开多后如果出现low小于下轨信号就消失,这样就只损失一次,使用这种未来数据也是无赖之举,目前还无其它好办法)。
希望V4版能够对下面代码执行:
if(BarStatus==2)
{
if(MarketPosition==0&&A_BuyPosition()==0&&??) buy(1,open);//控制当前bar有持仓不重复开仓
}else
{
if( if(MarketPosition==0&&??) buy(1,open);//解决历史bar信号问题
}
if(BarStatus==2&&MarketPosition!=1&&A_BuyPosition()>0) sell;//处理当前帐户持仓与图表信号不符的持仓。(虽然在理论上说不会有,但错误总是难免的,只要在市场长期交易这种情况一定遇到过) |
|