Merge branch 'master' of git://repo.or.cz/mqlkit
[mqlkit.git] / indicators / RoundPriceExp.mq4
blob9779ce7c0ecff724af684516e8ba49279075b9ce
1 //+------------------------------------------------------------------+\r
2 //|                                                        RPr-E.mq4 |\r
3 //|                      Copyright © 2006, MetaQuotes Software Corp. |\r
4 //|                                        http://www.metaquotes.net |\r
5 //+------------------------------------------------------------------+\r
6 #property copyright "Copyright © 2006, HomeSoft-Tartan Corp."\r
7 #property link      "spiky@yranskeino.ru"\r
8 \r
9 #property indicator_chart_window\r
10 #property indicator_buffers 1\r
11 #property indicator_color1 Gold\r
13 extern int t3_period=21;\r
14 extern double b=0.7;\r
15 extern int mBar =3000;\r
19 //---- buffers\r
20 double ExtMapBuffer1[];\r
22 //+------------------------------------------------------------------+\r
23 //| Custom indicator initialization function                         |\r
24 //+------------------------------------------------------------------+\r
25 int init()\r
26   {\r
27 //---- indicators\r
28    SetIndexStyle(0,DRAW_LINE);\r
29    SetIndexBuffer(0,ExtMapBuffer1);\r
30 //----\r
31    return(0);\r
32   }\r
33 //+------------------------------------------------------------------+\r
34 //| Custom indicator iteration function                              |\r
35 //+------------------------------------------------------------------+\r
36 int start()\r
37   {\r
38    double e1, e2, e3, e4, e5, e6, c1, c2, c3, c4, n, w1, w2, b2, b3;\r
39    double dpo, t3;\r
40    \r
41    b2=b*b;\r
42    b3=b2*b;\r
43    c1=-b3;\r
44    c2=(3*(b2+b3));\r
45    c3=-3*(2*b2+b+b3);\r
46    c4=(1+3*b+b3+3*b2);\r
47    n=t3_period;\r
49    if (n<1) n=1;\r
50    n = 1 + 0.5*(n-1);\r
51    w1 = 2 / (n + 1);\r
52    w2 = 1 - w1;\r
53   \r
54    \r
55    \r
56    for(int i=mBar; i>=0; i--)\r
57    \r
58    {\r
59       \r
60       dpo=Close[i];\r
62       e1 = w1*dpo + w2*e1;\r
63       e2 = w1*e1 + w2*e2;\r
64       e3 = w1*e2 + w2*e3;\r
65       e4 = w1*e3 + w2*e4;\r
66       e5 = w1*e4 + w2*e5;\r
67       e6 = w1*e5 + w2*e6;\r
69       t3 = c1*e6 + c2*e5 + c3*e4 + c4*e3;\r
70       ExtMapBuffer1[i]=t3;\r
71    }\r
72    \r
73    return(0);\r
74   }\r
75 //+------------------------------------------------------------------+