欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → [5金币]等高手解決一个看似好简单的公式

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5410人关注过本帖树形打印复制链接

主题:[5金币]等高手解決一个看似好简单的公式

帅哥哟,离线,有人找我吗?
learner
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:97 威望:0 精华:0 注册:2013/3/2 2:02:27
[5金币]等高手解決一个看似好简单的公式  发帖心情 Post By:2013/3/22 16:09:55 [只看该作者]

上一次时间跟現在K线时间一样时的周期数

用处,可以知道同一时间但不同日子(可以是昨天或前兩天或一年前),那些K线曾发生过什么事
要通式,仼何周期(日以下)皆可用,仼何市场皆可用(即不同的开市/收市时间也可用)
x:=barslast(hour=9 and minute=47);
这只是指定一个时间,不是通式
也曾考慮过用for枚举所有时间,但耗CPU

首先多谢jinzhe老師提供以下的代碼:
方法一
nn:ref(todaybar,todaybar);
c1:ref(c,nn);
方法二
nn1:barslast(date<>ref(date,1));
cc1:ref(c,ref(nn1,nn1+1)+1)

这里nn/nn1就是要找的周期了,这是上一个交易同一时间但不同日子距今天的周期数
c1/cc1是对应的收市价,畫成了一个图

但以上公式需要每天的周期数一致,在1分鈡图有时会缺漏幾支棍的情況下,就不準確了,也未能用於半日市

覌察过一些品种後,发现HSI恒指连续最适合用来做测试,因为近三年其交易时间曾改过兩次,亦出現缺漏K线日及上/下

午半日市等不一致的交易日,若公式能在此品种通过,时间全部对得上的,就算成功了

-若找不到上一次周期的时间,畫图时可留空(DRAWNULL)或引用之前收市价作填充
-盡量不要耗用电腦資源,for等语句可免則免,若必須要用就用吧

这公式看似简单,實制上具挑戦性,请高手解决


查看使用道具详细信息
悬赏金币帖,要悬赏 5 个金币
 回到顶部
帅哥哟,离线,有人找我吗?
learner
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:18 积分:97 威望:0 精华:0 注册:2013/3/2 2:02:27
  发帖心情 Post By:2013/3/23 7:56:06 [只看该作者]

请教各位老師,就以上所术,是否非要用for语句不可?有沒有其他简单方法?

以上问题好直覌地令人联想起barslast,但里面的时间怎样暫时固定起来呢?

x:=barslast(time=當前K线的时间);

因为是暫时固定,所以不能用const

又或者有其他函数能代替,而自己忽畧了?

老師啊,高人啊,请给个好的指引吧,不然公式会寫得長,计算又计得慢啊 ~~

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2013/3/26 15:43:03 [只看该作者]

穷举一天所有K线的情况,要用FOR了

 

时间的暂时固定,可用以下表示

TIME1:T0TOTIME(TIMETOT0(OPENTIME(1))+1*60); //1分钟周期开盘第一根K线---1*60表示60秒即1分钟

x1:barslast(time=TIME1)+1,linethick0;



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

获得0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
klc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/4/24 21:47:14 [只看该作者]

第一种方法:只能帮你找到前一交易日的现在(就是当前最后一根K线)的周期:

nn:BARSLAST(date<>CURRENTDATE and time()=REFX(time(),DATACOUNT-BARPOS)),NODRAW;

例如,现在假如现在是周2下午2点03分,那么nn就是上一交易日(可能是周一)下午2点03分的K线,要看它的收盘价,那么:

cc:=ref(c,nn);

 

第二种方法:可以帮你找到前一交易日相同时间的周期:

bb:barslast(date()<>ref(date(),1))+1,NODRAW;
cc:refdate(c,ref(date(),bb),time());

bb是找到的那个周期那天的最后一根K线,cc是那个周期的close,上面这个代码的效果就是在今天显示昨天的收盘价线,你试试就知道了。

[此贴子已经被作者于2013-4-24 21:49:02编辑过]

获得0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
klc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/4/24 21:51:25 [只看该作者]

给个图你看吧,直观点,序列也行,逐K也行:

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-4-24 21:52:01编辑过]

获得0个金币
 回到顶部