智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)
为论坛做贡献有奖学金,奖学金可直接换真钱 扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得
查看: 4940|回复: 9

请问如何编写20根K线的标准差

[复制链接]
发表于 2011-8-24 15:40:40 | 显示全部楼层 |阅读模式
本帖最后由 Daimons 于 2014-8-27 22:18 编辑

请问光辉老师,20根K线的 (高点-低点)的标准差如何编写?
回复

使用道具 举报

发表于 2011-8-24 16:02:43 | 显示全部楼层
  1.     double high0_20=High[iHighest(Symbol(),0,MODE_HIGH,20,0)];
  2.     //获得0号K线到20号K线的最高价
  3.     double low0_20=Low[iLowest(Symbol(),0,MODE_LOW,20,0)];
  4.     //获得0号K线到20号K线的最低价
  5.     double ok=MathAbs(high0_20-low0_20);
  6.     //获得这两个值的差的绝对值
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-24 16:39:26 | 显示全部楼层
标准差(Standard Deviation) ,也称均方差(mean square error),是各数据偏离平均数的距离的平均数,它是离均差平方和平均后的方根,用σ表示。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的,标准差未必相同。

标准差,不是差的绝对值。
回复 支持 反对

使用道具 举报

发表于 2011-8-24 17:04:59 | 显示全部楼层
你的问题不太明确。我不知道你要得到什么东西,是一个指标还是让我算一个值?
看你问题表面是让我算一个值:
20根K线的 (高点-低点)的标准差如何编写?
20根K线是哪20根K线,高点-低点是哪个高点-哪个低点?

我估计你让我计算的不是一个值,而是一个指标。
这个指标其实是MT4系统自带的指标:
Snap1.gif
你要获得它的值就用icustom()函数获得这个值就行了。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-24 17:25:27 | 显示全部楼层
这个指标好像是求均线的标准差的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-24 17:26:39 | 显示全部楼层
我想要的是  高点-低点  的标准差,好像应该用 istdevonarray 函数,但不知怎么用
回复 支持 反对

使用道具 举报

发表于 2011-8-24 17:29:50 | 显示全部楼层
恩 如果 你要用特殊的 值就得用 istdevonarray 函数
好的 我等下 帮你写怎么用
回复 支持 反对

使用道具 举报

发表于 2011-8-24 18:01:30 | 显示全部楼层
  1. #property copyright "Copyright ?2011, MetaQuotes Software Corp."
  2. #property link      "http://www.metaquotes.net"
  3. #property indicator_separate_window
  4. #property  indicator_buffers 2
  5. #property  indicator_color1  Silver
  6. #property  indicator_color2  Red
  7. double ExtMapBuffer1[];
  8. double ExtMapBuffer2[];
  9. int init()
  10.   {
  11.    SetIndexStyle(0,DRAW_NONE);
  12.    SetIndexBuffer(0,ExtMapBuffer1);
  13.    SetIndexStyle(1,DRAW_LINE);
  14.    SetIndexBuffer(1,ExtMapBuffer2);
  15.    return(0);
  16.   }
  17. int deinit()
  18.   {
  19.    return(0);
  20.   }
  21. int start()
  22.   {
  23.    int limit;
  24.    int counted_bars=IndicatorCounted();
  25.    if(counted_bars>0) counted_bars--;
  26.    limit=Bars-counted_bars;
  27.    for(int i=0; i<limit; i++)
  28.      {
  29.       ExtMapBuffer1[i]=High[i]-Low[i];
  30.       // 首先构造一个最高价-最低价的序列数组ExtMapBuffer1
  31.      }
  32.    for(i=0; i<limit; i++)
  33.      {
  34.       ExtMapBuffer2[i]=iStdDevOnArray(ExtMapBuffer1,Bars,20,0,MODE_SMA,i);
  35.       //然后将ExtMapBuffer1数组赋给iStdDevOnArray函数,你要的20根K线其实就是20周期的意思
  36.      }
  37.    return(0);
  38.   }
复制代码
源代码下载:
H_LStandard.mq4 (1.01 KB, 下载次数: 235)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-24 18:37:32 | 显示全部楼层
非常感谢。非常专业,非常敬业。我最近进步很快,这里的老师给我帮助很大。
回复 支持 反对

使用道具 举报

发表于 2011-9-27 22:14:47 | 显示全部楼层
好样的,学到了,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap|智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号,苏州智德金网络科技股份有限公司版权所有 )

GMT+8, 2019-9-17 23:25 , Processed in 0.052118 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表