bezier

楼主  收藏   举报   帖子创建时间:  2019-05-05 05:06 回复:0 关注量:366
XAUUSDH1.png

  1. //+------------------------------------------------------------------+
  2. //|                                                       Bezier.mq4 |
  3. //|                      Copyright ?2007, metaQuotes Software Corp. |
  4. //|                                        http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #property copyright "Copyright ?2007, metaQuotes Software Corp."
  7. #property link      "Lizhniyk E"

  8. #property indicator_chart_window
  9. #property indicator_buffers 1
  10. #property indicator_color1 Aqua

  11. //---- input parameters
  12. extern int period=8;
  13. extern double t=0.5;
  14. extern int shift=0;
  15. extern int  Price=0;
  16. double Ext[];
  17. //+------------------------------------------------------------------+
  18. //| Custom indicator initialization function                         |
  19. //+------------------------------------------------------------------+
  20. int init()
  21.   {
  22. //---- indicators
  23.    SetIndexStyle(0,DRAW_LINE);
  24.    SetIndexBuffer(0,Ext);
  25.    SetIndexLabel(0,"Bezier("+period+","+t+")");
  26.    SetIndexShift(0,shift);
  27.    SetIndexDrawBegin(0,period);
  28.    
  29.    
  30. //----
  31.    return(0);
  32.   }
  33. //+------------------------------------------------------------------+
  34. //| Custom indicator deinitialization function                       |
  35. //+------------------------------------------------------------------+
  36. int deinit()
  37.   {
  38. //----
  39.    
  40. //----
  41.    return(0);
  42.   }
  43. //+------------------------------------------------------------------+
  44. //| Custom indicator iteration function                              |
  45. //+------------------------------------------------------------------+
  46. int start()
  47.   {
  48.    int    counted_bars=IndicatorCounted();
  49. //----

  50. for(int j=0;j<Bars-counted_bars;j++)
  51. {
  52. double r=0;
  53.    for(int i=period;i>=0;i--)
  54.     {
  55.     r+=pr(Price,j+i) *
  56.      (fact(period)/(fact(i)*fact(period-i))) *
  57.       MathPow(t,i) *
  58.        MathPow(1-t,period-i);
  59.     }
  60.   Ext[j]=r;
  61.   }  
  62. //----
  63.    return(0);
  64.   }
  65. //+------------------------------------------------------------------+
  66. double fact(int value)
  67. {
  68. double res=1;
  69. for(double j=2;j<value+1;j++)
  70. {
  71. res*=j;
  72. }
  73. return (res);
  74. }

  75. double pr(int Price,int n)
  76. {
  77. switch (Price)
  78. {
  79. case 0: {return(Close[n]);break;}
  80. case 1: {return(Open[n]);break;}
  81. case 2: {return(High[n]);break;}
  82. case 3: {return(Low[n]);break;}
  83. case 4: {return((High[n]+Low[n])/2);break;}
  84. case 5: {return((High[n]+Low[n]+Close[n])/3);break;}
  85. case 6: {return((High[n]+Low[n]+Close[n]+Close[n])/4);break;}
  86. case 7: {return(iMA(Symbol(),0,4,0,0,0,n));break;}
  87. }
  88. }

打赏