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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 1分钟下取无未来数据的5分钟MA5均线算法实例

   

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


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

主题:1分钟下取无未来数据的5分钟MA5均线算法实例

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


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
1分钟下取无未来数据的5分钟MA5均线算法实例  发帖心情 Post By:2012/8/22 15:53:56 [只看该作者]

      鉴于许多人需要夸周期引用数据,尤其是小周期引用大周期的数据或者指标者居多,而通常情况下,这种小引大的方式容易出现未来数据,从而影响计算结果和条件判断,因此,我给出下面算法,大家可以验证一下,是否可以解决未来数据问题。


//利用下面算法可以解决在1分钟周期下引用5分钟MA均线产生未来数据的问题
//下面例子以在1分钟周期下引用5分钟周期下的MA5均线为例作为讲解,大家可以学习方法然后扩展到任意周期任意指标;

{
算法的原理是:利用MA均线的算法可知,将前4根5分钟K线的收盘价相加,然后再加上当前1分钟的收盘价,
取得这5根K线收盘价总和之后,除以5,即是当根1分钟K线收盘那一时间点所对应的5分钟K线下的MA5均线。

这个算法解决了下面具体问题,通常情况下,例如13.53分这根K线,在1分钟周期下引用5分钟周期数据时,引用的其实是引用的13.55分
这个时间点的5分钟数据,这种情况下将出现未来数据,系统把54分和55分这两分钟的数据也归到均线中去。
所以利用下面的算法将不再产生未来数据。
}


//取上4个五分钟整点K线的和,也就是求前4根5分钟K线收盘价的和;
M5:=IF(MOD(MINUTE,5)=0,CLOSE,0);
SUMMIN5MA4:=REF(SUM(M5,20),MOD(MINUTE,5));

//把四个5分钟K线的收盘价和当前1分钟的收盘价相加,再除以5,也就得出了此刻所对应的5分钟下的MA5了;
//这里分两种情况,一种是对于5分钟整点位置的均线也就是相当于直接调用5分钟下的MA5;另一种是对于不
//能够被5整除的K线,我们应当按照把四个5分钟K线的收盘价和当前1分钟的收盘价相加再除以5的方法来计算;
IF MOD(MINUTE,5)>0 THEN BEGIN
MIN5MA5A:=(SUMMIN5MA4+CLOSE)/5;
END;
ELSE BEGIN
MIN5MA5B:="MA.MA1#MIN5";
END;

//JG就是我们所要求的无未来数据的5分钟下的MA5均价数值;
JG:IF(MOD(MINUTE,5)=0,MIN5MA5B,MIN5MA5A);


//我们来跨周期调用一下5分钟下的MA5均线看看是否相同;如果“MIN5MA5A”始终与“MIN5MA5对比”相等,则目的达到;
MIN5MA5对比:"MA.MA1#MIN5";

[此贴子已经被作者于2012-10-29 9:40:29编辑过]


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

客户服务部

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

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

service@weistock.com

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

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
董小球
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
  发帖心情 Post By:2012/8/22 15:57:42 [只看该作者]

附上图一张,写完感觉是对的,哈哈!JG那条线,就是所谓的实时的跨周期均线!


图片点击可在新窗口打开查看此主题相关图片如下:min1ma5.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2012-8-22 15:58:23编辑过]


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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/8/22 16:05:03 [只看该作者]

这个好,那天中途听你们在说 没搞明白。现在哦了图片点击可在新窗口打开查看


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

产品部

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

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
just
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:金字塔养老院 帖子:1323 积分:6764 威望:0 精华:0 注册:2011/6/14 17:27:11
  发帖心情 Post By:2012/8/22 16:30:04 [只看该作者]

图片点击可在新窗口打开查看验证下


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

客户服务部

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

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
lufuding
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:332 积分:1295 威望:0 精华:0 注册:2011/4/19 2:02:59
  发帖心情 Post By:2012/8/23 1:47:37 [只看该作者]

效果跟楼主发的图不一样,只有到5和5的倍数才有数值

[此贴子已经被作者于2012-8-23 1:48:02编辑过]

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


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
数据导出  发帖心情 Post By:2012/8/23 8:56:26 [只看该作者]

要使用逐K模式运行,另外请保证1分钟 5分钟数据没有缺失,在每根K线上都会有数值的
//JG就是我们所要求的无未来数据的5分钟下的MA5均价数值;
JG:IF(MOD(MINUTE,5)=0,MIN5MA5B,MIN5MA5A);

5倍数的K上返回MIN5MA5B,其余的返回MIN5MA5A


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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:论坛游侠 帖子:109 积分:360 威望:0 精华:0 注册:2011/7/9 18:05:33
  发帖心情 Post By:2012/8/23 20:05:07 [只看该作者]

嗯,支持一一下

 回到顶部
帅哥哟,离线,有人找我吗?
疯味小痴
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:4 积分:99 威望:0 精华:0 注册:2009/11/8 19:59:32
  发帖心情 Post By:2012/8/25 22:57:17 [只看该作者]

可不可以写个macd 的,多谢

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


加好友 发短信
等级:论坛游民 帖子:108 积分:433 威望:0 精华:0 注册:2012/3/22 14:42:31
  发帖心情 Post By:2012/8/26 23:54:27 [只看该作者]

很好的思路,在这个基础上应该有更好的算法。
先理解MA的算法,比如,我们求5周期均值MA5。
现在的MA5=(C+REF(C,1)+REF(C,2)+REF(C,3)+REF(C,4))/5;
上一个MA5(REF(MA5,1))=(REF(C,1)+REF(C,2)+REF(C,3)+REF(C,4)+REF(C,5))/5。
计算现在的MA5与上一个MA5(REF(MA5,1))的差,也就是台湾人所说的扣抵值
扣抵=(C-REF(C,5))/5,也就是现价和前5日收盘价的差
知道这个原理后,我们可以用新的方法在任意分钟周期里计算日线MA值,因为我们
引用的是昨日的值,没有未来函数

10MA:"MA.MA1#DAY"(10,30,60,90);//这个是10日MA值,用来引用昨日值
DAYC:="MA.MA1#DAY"(1,30,60,90);//这个是每日收盘值,用来引用昨日值
KOU:=(C-REF(DAYC,10))/10;//扣抵值
MA10:REF(10MA,1)+KOU;//昨日10MA值加扣抵值就是现在的MA10值。

比较一下10MA,MA10。


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


加好友 发短信
等级:论坛游侠 帖子:332 积分:1295 威望:0 精华:0 注册:2011/4/19 2:02:59
  发帖心情 Post By:2012/8/28 18:57:30 [只看该作者]

以下是引用董小球在2012-8-22 15:53:56的发言:
      鉴于许多人需要夸周期引用数据,尤其是小周期引用大周期的数据或者指标者居多,而通常情况下,这种小引大的方式容易出现未来数据,从而影响计算结果和条件判断,因此,我给出下面算法,大家可以验证一下,是否可以解决未来数据问题。


//利用下面算法可以解决在1分钟周期下引用5分钟MA均线产生未来数据的问题
//下面例子以在1分钟周期下引用5分钟周期下的MA5均线为例作为讲解,大家可以学习方法然后扩展到任意周期任意指标;

{
算法的原理是:利用MA均线的算法可知,将前4根5分钟K线的收盘价相加,然后再加上当前1分钟的收盘价,
取得这5根K线收盘价总和之后,除以5,即是当根1分钟K线收盘那一时间点所对应的5分钟K线下的MA5均线。

这个算法解决了下面具体问题,通常情况下,例如13.53分这根K线,在1分钟周期下引用5分钟周期数据时,引用的其实是引用的13.55分
这个时间点的5分钟数据,这种情况下将出现未来数据,系统把54分和55分这两分钟的数据也归到均线中去。
所以利用下面的算法将不再产生未来数据。
}


//取上4个五分钟整点K线的和,也就是求前4根5分钟K线收盘价的和;
M5:=IF(MOD(MINUTE,5)=0,CLOSE,0);
SUMMIN5MA4:=REF(SUM(M5,20),MOD(MINUTE,5));

//把四个5分钟K线的收盘价和当前1分钟的收盘价相加,再除以5,也就得出了此刻所对应的5分钟下的MA5了;
//这里分两种情况,一种是对于5分钟整点位置的均线也就是相当于直接调用5分钟下的MA5;另一种是对于不
//能够被5整除的K线,我们应当按照把四个5分钟K线的收盘价和当前1分钟的收盘价相加再除以5的方法来计算;
IF MOD(MINUTE,5)>0 THEN BEGIN
MIN5MA5A:=(SUMMIN5MA4+CLOSE)/5;
END
ELSE BEGIN
MIN5MA5B:="MA.MA1#MIN5";
END

//JG就是我们所要求的无未来数据的5分钟下的MA5均价数值;
JG:IF(MOD(MINUTE,5)=0,MIN5MA5B,MIN5MA5A);


//我们来跨周期调用一下5分钟下的MA5均线看看是否相同;如果“MIN5MA5A”始终与“MIN5MA5对比”相等,则目的达到;
MIN5MA5对比:"MA.MA1#MIN5";
 
 
 
请教楼主 该算法为什么不能用于MACD指标?
[此贴子已经被作者于2012-8-23 8:51:20编辑过]


 回到顶部
总数 51 1 2 3 4 5 6 下一页