📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    MACD_LSMA_EMA

    2017-12-27 · 4620 阅读
    EURGBPM30.png


    1. //+------------------------------------------------------------------+
    2. //|                                                MACD_LSMA_EMA.mq4 |
    3. //|                                     Copyright @2007, Robert Hill |
    4. //+------------------------------------------------------------------+
    5. #property copyright "下载更多外汇EA外汇指标,交易系统,就到【外汇EA之家】"
    6. #property link      "http://www.eazhijia.com"

    7. #property  indicator_separate_window
    8. #property  indicator_buffers 4
    9. #property  indicator_color1  Aqua
    10. #property  indicator_color2  Red
    11. #property  indicator_color3  Green
    12. #property  indicator_color4  Red

    13. input int FastEMA=12;
    14. input int SlowEMA=26;
    15. input int SignalSMA=9;

    16. double     MACD_buffer[];
    17. double     Signal_buffer[];
    18. double HistogramBufferUp[];
    19. double HistogramBufferDown[];
    20. bool   ExtParameters=false;
    21. //+------------------------------------------------------------------+
    22. //| Custom indicator initialization function                         |
    23. //+------------------------------------------------------------------+
    24. int OnInit(void)
    25.   {
    26.    IndicatorDigits(Digits+1);
    27.    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID);
    28.    SetIndexBuffer(0,MACD_buffer);
    29.    SetIndexDrawBegin(0,SlowEMA);
    30.    SetIndexStyle(1,DRAW_LINE,STYLE_DOT);
    31.    SetIndexBuffer(1,Signal_buffer);
    32.    SetIndexDrawBegin(1,SignalSMA);
    33.    SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID);
    34.    SetIndexBuffer(2,HistogramBufferUp);
    35.    SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID);
    36.    SetIndexBuffer(3,HistogramBufferDown);
    37.    IndicatorDigits(Digits+1);

    38.    IndicatorShortName("MACD_LSMA_EMA("+IntegerToString(FastEMA)+","+IntegerToString(SlowEMA)+","+IntegerToString(SignalSMA)+")");
    39.    SetIndexLabel(0,"MACD");
    40.    SetIndexLabel(1,"Signal");
    41.    SetIndexLabel(2,"Histogram");
    42.    if(FastEMA<=1 || SlowEMA<=1 || SignalSMA<=1 || FastEMA>=SlowEMA)
    43.      {
    44.       Print("Wrong input parameters");
    45.       ExtParameters=false;
    46.       return(INIT_FAILED);
    47.      }
    48.    else
    49.       ExtParameters=true;
    50.    Comment("www.eazhijia.com");
    51.     return(INIT_SUCCEEDED);
    52.   }
    53. //+------------------------------------------------------------------------+
    54. //| LSMA - Least Squares Moving Average function calculation               |
    55. //| LSMA_In_Color Indicator plots the end of the linear regression line    |
    56. //+------------------------------------------------------------------------+
    57. double LSMA(int Rperiod, int shift)
    58. {
    59.    int i;
    60.    double sum;
    61.    int length;
    62.    double lengthvar;
    63.    double tmp;
    64.    double wt;

    65.    length = Rperiod;
    66.    sum = 0;
    67.    for(i = length; i >= 1  ; i--)
    68.    {
    69.      lengthvar = length + 1;
    70.      lengthvar /= 3;
    71.      tmp = 0;
    72.      tmp = ( i - lengthvar)*Close[length-i+shift];
    73.      sum+=tmp;
    74.     }
    75.     wt = MathFloor(sum*6/(length*(length+1))/Point)*Point;
    76.     return(wt);
    77. }
    78. //+------------------------------------------------------------------+
    79. //| Moving Averages Convergence/Divergence                           |
    80. //+------------------------------------------------------------------+
    81. int OnCalculate(const int rates_total,
    82.                 const int prev_calculated,
    83.                 const datetime &time[],
    84.                 const double &open[],
    85.                 const double &high[],
    86.                 const double &low[],
    87.                 const double &close[],
    88.                 const long &tick_volume[],
    89.                 const long &volume[],
    90.                 const int &spread[])
    91.   {
    92.    double temp;
    93.    int i,limit;
    94. //---
    95.    if(rates_total<=SignalSMA || !ExtParameters)
    96.       return(0);
    97. //--- last counted bar will be recounted
    98.    limit=rates_total-prev_calculated;
    99.    if(prev_calculated>0)
    100.       limit++;

    101.    for(i=0; i<limit; i++)
    102.       MACD_buffer[i]=LSMA(FastEMA,i)-LSMA(SlowEMA,i);

    103.    for(i=0; i<limit; i++)
    104.       Signal_buffer[i]=iMAOnArray(MACD_buffer,Bars,SignalSMA,0,MODE_EMA,i);

    105.    for(i=0; i<limit; i++)
    106.    {
    107.       HistogramBufferUp[i] = 0;
    108.       HistogramBufferDown[i] = 0;
    109.       temp = MACD_buffer[i] - Signal_buffer[i];
    110.       if (temp >= 0)
    111.         HistogramBufferUp[i] = temp;
    112.       else
    113.         HistogramBufferDown[i] = temp;
    114.    }
    115.     return(rates_total);
    116.   }
    复制代码


    MACD_LSMA_EMA.mq4
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 13 个

    hnut060 LV1

    发表于 2018-5-25 00:39:39 | 显示全部楼层

    好东西!!!!!!!!!!

    xing5202 LV7

    发表于 2018-9-18 11:00:36 | 显示全部楼层

    貌似有点意思

    hov33snu LV3

    发表于 2020-6-5 22:21:35 | 显示全部楼层

    相当不错,感谢无私分享精神!

    亮台凯 LV6

    发表于 2020-7-16 12:55:45 | 显示全部楼层

    学习了,不错

    王┢┦apΡy LV3

    发表于 2020-7-20 22:55:24 | 显示全部楼层

    帮你顶下哈!!

    medley LV9

    发表于 2020-7-24 12:25:25 | 显示全部楼层

    帮你顶下哈!!

    你的太在乎 LV3

    发表于 2020-8-16 11:02:16 | 显示全部楼层

    谢谢楼主分享

    QQ1397379127 LV3

    发表于 2020-8-20 22:33:43 | 显示全部楼层

    学习了,不错

    cvllt74614 LV3

    发表于 2020-9-1 11:49:10 | 显示全部楼层

    学习了,不错
    12下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服