设为首页收藏本站

 找回密码
 注册
查看: 1865|回复: 13
打印 上一主题 下一主题

回测时 [复制链接]

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
跳转到指定楼层
1#
发表于 2019-3-27 18:24:32 |只看该作者 |正序浏览
一、回测时    开仓平仓除下列外一切正常
   异常举例:持多仓(但不是在本根K线上开的多),在本根K线上达到平多条件后平仓,然后价格继续下走,达到了开空的条件,但没有开仓指令,在本根K线后面的K线上一切正常有开仓指令,什么原因导致本根K线上没有开空?

二、还有就是本根K线上如果最高价和最低价相差过大的话,因为TB不记录K线上价格到达的先后顺序,所以可能会导致本根K线上有开多平多开空平空四个指令,这个在回测时属于正常现象,在实际运行时可以避免。但上述导致没有开空的现象在实际运行时能否避免?

三、下面是开仓的条件
If( (MarketPosition == 0)&&(( CurrentBar != 0)&&( CurrentBar != 1)))
{
Commentary("Hi ="+Text(Hi));
Commentary("Lo ="+Text(Lo));
If(High > Hi)
        {
         myEntryPrice = min(high, Hi + MinPoint);
         If( Open> myEntryPrice) myEntryPrice = Open;   // 大跳空的时候用开盘价代替
         Buy(0,myEntryPrice);
        }
  If(Low < Lo)
        {
        myEntryPrice = max(low, Lo - MinPoint);
       If( Open< myEntryPrice) myEntryPrice = Open;    // 大跳空的时候用开盘价代替
        SellShort(0,myEntryPrice);  
       }
}

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
14#
发表于 2019-3-28 20:31:36 |只看该作者
zhanghualawyer 发表于 2019-3-28 20:24
语句先平后开,平仓bar上再开仓的问题解决了,开仓bar上也是正常开仓的,但是开仓bar上原先设定的止损信 ...

1、2、3、的顺序不同,结果差的太悬殊了。我试着3、1、2、3 结果比1、2、3稍微好一些(1、2、3是所有信号全部往后推迟到下一根K线上,3、1、2、3是除了开仓bar上的初始止损信息丢失外,其余K线上的止损信息正常)

使用道具 举报

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
13#
发表于 2019-3-28 20:24:44 |只看该作者
小米 发表于 2019-3-28 11:04
你是先平再开,平的是之前K线开的仓对吧?
那么这个开仓价也应该是之前开的才合理吧?
所以,开仓在平后 ...

语句先平后开,平仓bar上再开仓的问题解决了,开仓bar上也是正常开仓的,但是开仓bar上原先设定的止损信息没了(我是到点位就平仓的),而且平仓bar上再开仓后也需要有设定的止损信息但没有,这个怎么解决?下面是改变开平顺序后的语句(细节就省略了)

  
   

     
1、If( (MarketPosition == 1) &&(Barssinceentry>=0) )  //持多仓的情况且开仓bar及以后
{

} Else  if ( (MarketPosition ==- 1) &&(Barssinceentry>=0) )  //持空仓的情况且开仓bar及以后
{

}


2、If( (MarketPosition == 0)&&(( CurrentBar != 0)&&( CurrentBar != 1)))
{

}   


3、If(barssinceentry==0 and marketposition<>0 ) //条件满足开仓bar时且有持仓时执行以下代码
{   
}else if (barssinceentry>=1)  //非开仓bar时进行以下运算
     {
}

使用道具 举报

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
12#
发表于 2019-3-28 11:08:47 |只看该作者
小米 发表于 2019-3-28 11:04
你是先平再开,平的是之前K线开的仓对吧?
那么这个开仓价也应该是之前开的才合理吧?
所以,开仓在平后 ...

没毛病

使用道具 举报

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
11#
发表于 2019-3-28 11:06:17 |只看该作者
小米 发表于 2019-3-28 10:24
不会开仓呢。

还有个问题,如果改为先平仓再开仓,基本能保证盘中价格只要到了我设置的价格条件就会开仓吧?(我的思路是只要价格到了就开仓,只要价格到了就平仓,无其它条件)
If( (MarketPosition == 1) &&(Barssinceentry>=0) )  //持多仓的情况且开仓bar及以后,平多仓用
{
}
if ( (MarketPosition ==- 1) &&(Barssinceentry>=0) ) //持空仓的情况且开仓bar及以后,平空仓用
{
}
If( (MarketPosition == 0)&&(( CurrentBar != 0)&&( CurrentBar != 1))) //无持仓的情况下,开仓用
{
}

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
10#
发表于 2019-3-28 11:04:43 |只看该作者
zhanghualawyer 发表于 2019-3-28 10:39
语句如果改为先平仓再开仓顺序的话   ,由于我的平仓语句里的信号需要用开仓时的开仓价,平仓时会不会取 ...

你是先平再开,平的是之前K线开的仓对吧?
那么这个开仓价也应该是之前开的才合理吧?
所以,开仓在平后语句后,并没有问题。
您可以试一下,再看看信号是否符合自己的需求。

使用道具 举报

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
9#
发表于 2019-3-28 10:39:06 |只看该作者
小米 发表于 2019-3-28 10:24
不会开仓呢。

语句如果改为先平仓再开仓顺序的话   ,由于我的平仓语句里的信号需要用开仓时的开仓价,平仓时会不会取到 用的开仓价?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2019-3-28 10:24:54 |只看该作者
zhanghualawyer 发表于 2019-3-28 10:22
好的,有个疑问,我的顺序是开仓语句在前,平仓语句在后,如果不改变顺序的话,实际运行中 平仓bar上在平 ...


不会开仓呢。

使用道具 举报

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
7#
发表于 2019-3-28 10:24:08 |只看该作者
如果不会开仓的话,就只能调换语句中开平仓的顺序来保证开仓了

使用道具 举报

Rank: 2

精华
0
UID
276245
积分
101
帖子
58
主题
11
阅读权限
30
注册时间
2019-3-1
最后登录
2021-4-6
6#
发表于 2019-3-28 10:22:11 |只看该作者
小米 发表于 2019-3-28 09:59
一,你的开仓条件是要求判断marketposition==0的状态下。。
       如果你的公式编写的顺序是开仓语句在前 ...

好的,有个疑问,我的顺序是开仓语句在前,平仓语句在后,如果不改变顺序的话,实际运行中 平仓bar上在平仓指令执行之后,会不会开仓?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-4 02:49

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部