以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]在15分钟周期上,如何知道当前的K线是本周开始的第一根bar和最后一根bar?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=11450)

--  作者:z7c9
--  发布时间:2012/5/3 9:27:59
--  [求助]在15分钟周期上,如何知道当前的K线是本周开始的第一根bar和最后一根bar?
在15分钟周期上,如何知道当前的K线是本周开始的第一根bar和最后一根bar?
--  作者:Leon
--  发布时间:2012/5/3 9:32:57
--  
参考函数列表中的BARSTATUS函数,看是否能实现需求
--  作者:z7c9
--  发布时间:2012/5/3 9:35:51
--  

函数返回数据位置状态。
1表示第1根K线,2表示最后1根K线,0表示中间的K线。
用法:
BARSTATUS
所属函数组:时间函数

 

不行吧


--  作者:董小球
--  发布时间:2012/5/3 9:39:58
--  
不考虑节假日的话,就是判断是不是周一  判断是不是9点01分的那个K线呗
--  作者:Leon
--  发布时间:2012/5/3 9:41:05
--  
要是判断本周的应该比较麻烦,能否用时间判断,判断本周一的第一根k线,不过节假日可能没办法正确判断了
--  作者:z7c9
--  发布时间:2012/5/3 9:47:00
--  
以下是引用董小球在2012-5-3 9:39:58的发言:
不考虑节假日的话,就是判断是不是周一  判断是不是9点01分的那个K线呗

不考虑节假日的话,就不发帖了,图片点击可在新窗口打开查看


--  作者:王锋
--  发布时间:2012/5/3 10:33:12
--  
目前的版本如果不用循环的话逐K线模式很难进行这种判断,下个版本考虑增加一函数,判断指定日期的星期数,这样就解决了
--  作者:王锋
--  发布时间:2012/5/3 13:41:58
--  

runmode:0;

beginweek:0;
endweek:0;

if barpos < 2 then
   exit;

thisweek:=weekday();
if thisweek <dayofweek(date[barpos-1]) then
    //本周第一个数据
    beginweek := 1;
   
if barpos < datacount then
begin
   if thisweek > dayofweek(date[barpos+1]) then
      //本周最后一笔数据
      endweek := 1;
 end

 

请等待下个版本的新函数

[此贴子已经被作者于2012-5-3 13:42:14编辑过]