- 精华
- 0
- 在线时间
- 2 小时
- UID
- 162959
- 积分
- 2
- 帖子
- 1
- 阅读权限
- 10
- 注册时间
- 2013-1-7
- 最后登录
- 2013-10-10
- 精华
- 0
- UID
- 162959
- 积分
- 2
- 帖子
- 1
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2013-1-7
- 最后登录
- 2013-10-10
|
本帖最后由 yaqh202102528 于 2013-8-19 00:52 编辑
为什么同样的逻辑不同的写法,值完全不一样?
对于函数的运用,也有什么讲究吗?
我编译了一个ICM 和一个IRAV 的函数,都是对收盘价、最高最低价做一些计算。
以下三个写法,回测出来的盈利大不相同,可谓天差地别。- Filter=ICM(30)>=15 && IRAV(7,65)>=0.1 ;
- c_Buy=MarketPosition!=1 && MovAvg[1]>MovAvg[2] && High>=UpBand[1] && Date==Date[1] && Filter[1]==True;
- c_SellShort=MarketPosition!=-1 && MovAvg[1]<MovAvg[2] && Low<=DnBand[1] && Date==Date[1] && Filter[1]==True;
复制代码 用焦炭半年的数据测,赚1800.
把两个函数提出来算,[1]的回溯放在Bool变量的计算里,亏500- ICMValue=ICM(30);
- IRAVValue=IRAV(7,65);
- Filter=ICMValue[1]>=15 && IRAVValue[1]>=0.1 ;
- c_Buy=MarketPosition!=1 && MovAvg[1]>MovAvg[2] && High>=UpBand[1] && Date==Date[1] && Filter==True;
- c_SellShort=MarketPosition!=-1 && MovAvg[1]<MovAvg[2] && Low<=DnBand[1] && Date==Date[1] && Filter==True;
复制代码 把两个函数提出来先算一遍,后面没用到这个函数转存的序列变量,再用函数算了一遍,亏6000- ICMValue=ICM(30);
- IRAVValue=IRAV(7,65);
- Filter=ICM(30)>=15 && IRAV(7,65)>=0.1 ;
- c_Buy=MarketPosition!=1 && MovAvg[1]>MovAvg[2] && High>=UpBand[1] && Date==Date[1] && Filter[1]==True;
- c_SellShort=MarketPosition!=-1 && MovAvg[1]<MovAvg[2] && Low<=DnBand[1] && Date==Date[1] && Filter[1]==True;
复制代码 再变换几个逻辑相同的不同写法,还测出来赚13000、赚18000
到底真真假假,谁真谁假?这是怎么回事?看信号图几乎都是一样的。
快被搞死了……请管理员解答! |
|