路路发智能交易研发中心

 找回密码
 立即注册
查看: 4434|回复: 0

MT4智能交易编程示例 AD指标

    [复制链接]

管理员

MT4软件工程师

Rank: 9Rank: 9Rank: 9

积分
6521
帖子
2771
主题
2761
QQ
发表于 2014-4-4 14:33:03 | 显示全部楼层 |阅读模式
MT4智能交易编程示例 AD指标

  1. #property copyright   "路路发智能交易研发中心"
  2. #property link        "http://www.ea668.com"
  3. #property description "Accumulation/Distribution"
  4. #property strict

  5. //--- indicator settings
  6. #property indicator_separate_window
  7. #property indicator_buffers 1
  8. #property indicator_color1  LightSeaGreen
  9. //--- buffers
  10. double ExtADbuffer[];
  11. //+------------------------------------------------------------------+
  12. //| Custom indicator initialization function                         |
  13. //+------------------------------------------------------------------+
  14. void OnInit(void)
  15.   {
  16.    IndicatorShortName("A/D");
  17.    IndicatorDigits(0);
  18. //--- indicators
  19.    SetIndexStyle(0,DRAW_LINE);
  20.    SetIndexBuffer(0,ExtADbuffer);
  21.   }
  22. //+------------------------------------------------------------------+
  23. //| Accumulation/Distribution                                        |
  24. //+------------------------------------------------------------------+
  25. int OnCalculate(const int rates_total,
  26.                 const int prev_calculated,
  27.                 const datetime &time[],
  28.                 const double &open[],
  29.                 const double &high[],
  30.                 const double &low[],
  31.                 const double &close[],
  32.                 const long &tick_volume[],
  33.                 const long &volume[],
  34.                 const int &spread[])
  35.   {
  36. //--- prevent total recalculation
  37.    int i=rates_total-prev_calculated-1;
  38. //--- current value should be recalculated
  39.    if(i<0)
  40.       i=0;
  41. //---
  42.    while(i>=0)
  43.      {
  44.       ExtADbuffer[i]=(close[i]-low[i])-(high[i]-close[i]);
  45.       if(ExtADbuffer[i]!=0.0)
  46.         {
  47.          double diff=high[i]-low[i];
  48.          if(diff<0.000000001)
  49.             ExtADbuffer[i]=0.0;
  50.          else
  51.            {
  52.             ExtADbuffer[i]/=diff;
  53.             ExtADbuffer[i]*=(double)tick_volume[i];
  54.            }
  55.         }
  56.       if(i<rates_total-1)
  57.          ExtADbuffer[i]+=ExtADbuffer[i+1];
  58.       i--;
  59.      }
  60. //---
  61.    return(rates_total);
  62.   }
  63. //+------------------------------------------------------------------+
复制代码




外汇智能交易,成就财富梦想!
回复

使用道具 举报

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

本版积分规则


MT4编程培训|EA定制开发|QQ在线咨询|路路发智能交易研发中心

GMT+8, 2024-12-22 11:07 , Processed in 0.162852 second(s), 27 queries .

© 2009-2022 520EA.com EA668.com

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