以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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));
DRAWTEXT(CURRBARSCOUNT>B,HIGH,\'2\');

//-去掉最后一天,只在最后一天之前的最高价显示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
--  

图片点击可在新窗口打开查看就是说假如回测的是1个月 ,那么这么函数,就是这一个月K线总和的递减,,假如最后一天有80个K 那么只要 CURRBARSCOUNT>80

就可以是吧,

多谢,老师


--  作者:jinzhe
--  发布时间:2016/1/7 13:59:35
--  
是的