以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 回测问题。 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=89532) |
-- 作者:as598470298 -- 发布时间:2016/1/7 13:18:26 -- 回测问题。 A:REF(BARPOS,BARSSINCE(Date<>Ref(Date,1))); DRAWTEXT(BARPOS>A,LOW,\'1\'); //-去掉第一天,只在头一天之后的最低价显示1 B:BARSLAST(Date<>Ref(Date,1)); //-去掉最后一天,只在最后一天之前的最高价显示2
我想在回测时,去掉头尾两天。即回测 7.31-9.01这段时间,实际只回测08.01-08.31这一整个月。 就比如显示MA线好了,除了第一天和最后一天其他中间的时间段都显示它。 IF BARPOS>A and CURRBARSCOUNT>B Then F:ma(c,10); Else F:=ma(c,10); date<>CURRENTDATE 这样写只能在实盘的最后一点数据用。假如回测一年前的数据那就没用了。
但是根据我自己的思路发现上面的代码只有去掉第一天的可以,去掉最后一天的不行。
[此贴子已经被作者于2016/1/7 13:19:41编辑过]
|
-- 作者:jinzhe -- 发布时间:2016/1/7 13:28:56 -- 最后天去不掉的, |
-- 作者:as598470298 -- 发布时间:2016/1/7 13:31:08 -- a 没有别的办法了吗? |
-- 作者:jinzhe -- 发布时间:2016/1/7 13:39:41 -- 这是一种类似未来的判断,所以去不掉 类似这样的判断: dd:valuewhen(islastbar,date); date<dd 这个判断就是能判断小于最后一天的日期 但是dd的值无法被之前的历史k线所获取,是一个未来的值 |
-- 作者:as598470298 -- 发布时间:2016/1/7 13:44:17 -- 懂了,意思就是回测的机制,不是说一次性丢出所有K线,而是一个K线一个K线的走? 那假如回测一个月,回测时获取CURRBARSCOUNT 的值,那么它是这一个月K线总数递减,还是比如说现在回测走到了第三天,那么他的值是这三天的总数递减? |
-- 作者:jinzhe -- 发布时间:2016/1/7 13:51:15 -- 1.一次性的计算也是要一根k线接一根k线过去的 2.CURRBARSCOUNT,这个函数倒是可以这没用去掉尾巴,CURRBARSCOUNT>=最后一天的k线数量 k线数量手工去数好了 [此贴子已经被作者于2016/1/7 13:52:05编辑过]
|
-- 作者:as598470298 -- 发布时间:2016/1/7 13:55:21 --
就可以是吧, 多谢,老师 |
-- 作者:jinzhe -- 发布时间:2016/1/7 13:59:35 -- 是的 |