设为首页收藏本站

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

回测问题 [复制链接]

Rank: 2

精华
0
UID
226268
积分
64
帖子
45
主题
10
阅读权限
30
注册时间
2016-1-6
最后登录
2023-9-28
跳转到指定楼层
1#
发表于 2016-2-26 10:33:42 |只看该作者 |倒序浏览
回测问题:
想实现以某价格吊买,但回测发现,如果早期数据比目前定价高,只要不空仓,价格高于定价,早期就总是以K线的最低价买进,比如铁矿早期价格900块,目前360块,我设定吊买价350块,回测时却发现早期以900块的价格买入,止损,再买入,再止损……与目的不符:

Params

    Numeric Price(350);//买入价格
    Numeric lots(1);//买入数量
        Numeric zhisun(2);//止损范围

Vars

        Numeric MinPoint;
       
Begin
   
    MinPoint = MinMove*PriceScale;        //一跳
       
        If(high>=Price && CurrentContracts<=lots)Buy(lots,Price);   //如果价格大于等于Price,以Price买入。
       
        If(MarketPosition==1 && Close<=AvgEntryPrice-zhisun*MinPoint)Sell(lots,AvgEntryPrice-zhisun*MinPoint);   //如果价格低于买入价-止损幅度,止损平仓。

End

回测时怎么写代码才能实现完美吊买?


       

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2016-2-26 11:06:43 |只看该作者
本帖最后由 小米 于 2016-2-26 11:15 编辑

您的入场公式写是high>price,当price设置为350,早期的价格900时,是满足900>350 即high>price的,条件满足,自然可出信号。
想要回测可兼容所有的行情价格,那么这个price为变量,随不同时间而变化的动态价格方为合理吧。

使用道具 举报

Rank: 2

精华
0
UID
226268
积分
64
帖子
45
主题
10
阅读权限
30
注册时间
2016-1-6
最后登录
2023-9-28
3#
发表于 2016-2-26 11:11:20 |只看该作者
但我要求系统以350买入,不是以900买入啊

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2016-2-26 11:16:03 |只看该作者
sss1983320 发表于 2016-2-26 11:11
但我要求系统以350买入,不是以900买入啊

那您可以写为high == price呀。。。不要使用>

使用道具 举报

Rank: 2

精华
0
UID
226268
积分
64
帖子
45
主题
10
阅读权限
30
注册时间
2016-1-6
最后登录
2023-9-28
5#
发表于 2016-2-26 11:21:29 |只看该作者
小米 发表于 2016-2-26 11:16
那您可以写为high == price呀。。。不要使用>

也就是说,如果写了high>=price,无论后面Buy的买入价格设置为多少,都会以当前高价开仓买入?有点不合理哦……

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2016-2-26 11:25:21 |只看该作者
本帖最后由 小米 于 2016-2-26 11:26 编辑
sss1983320 发表于 2016-2-26 11:21
也就是说,如果写了high>=price,无论后面Buy的买入价格设置为多少,都会以当前高价开仓买入?有点不合理 ...


这个>=这个判断式的基本逻辑就是只要high>=price就满足了呀。。
如果这个不是您想要的结果,你就得改这个判断式,不能使用>=...
不然策略是不可能知道您到底想要什么的。
合理与否取决于代码 ,取决于代码的最终表现与您的需求是否吻合。

使用道具 举报

Rank: 2

精华
0
UID
226268
积分
64
帖子
45
主题
10
阅读权限
30
注册时间
2016-1-6
最后登录
2023-9-28
7#
发表于 2016-2-26 11:35:12 |只看该作者
小米 发表于 2016-2-26 11:25
这个>=这个判断式的基本逻辑就是只要high>=price就满足了呀。。
如果这个不是您想要的结果,你就得改这个 ...

感谢小米大师的及时回复,可我还是没搞清楚,如果BUY函数设定的买入价格(350)低于当前价,当触发了这个BUY函数后,系统是以350挂单对吧,不到350,这个单就一直挂着?还是说只要触发了BUY函数,BUY函数就无视这个350,直接买入?

使用道具 举报

Rank: 2

精华
0
UID
226268
积分
64
帖子
45
主题
10
阅读权限
30
注册时间
2016-1-6
最后登录
2023-9-28
8#
发表于 2016-2-26 11:55:23 |只看该作者
本帖最后由 sss1983320 于 2016-2-26 11:58 编辑
小米 发表于 2016-2-26 11:16
那您可以写为high == price呀。。。不要使用>


当我改成high == price 之后,回测时发现,当价格从低位涨过350以之后,K线没有给出任何信号,不知道怎么回事……

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
9#
发表于 2016-2-26 13:13:34 |只看该作者
sss1983320 发表于 2016-2-26 11:55
当我改成high == price 之后,回测时发现,当价格从低位涨过350以之后,K线没有给出任何信号,不知道怎么 ...

呃。。。。建议您还是先系统地学习一下公式吧,以及一些逻辑式的表达。
high==price那就是说是最高价一定要等于350时才会发信号,超过了自然不行。。
你前面说的是一定要350,不要高于350的其它价格哟。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
10#
发表于 2016-2-26 13:13:58 |只看该作者
sss1983320 发表于 2016-2-26 11:55
当我改成high == price 之后,回测时发现,当价格从低位涨过350以之后,K线没有给出任何信号,不知道怎么 ...

呃。。。。建议您还是先系统地学习一下公式吧,以及一些逻辑式的表达。
high==price那就是说是最高价一定要等于350时才会发信号,超过了自然不行。。
你前面说的是一定要350,不要高于350的其它价格哟。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-10 14:20

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部