Author: Copyright © 2019, Vladimir Karputov
0 Views
0 Downloads
0 Favorites
Figure
ÿþ//+------------------------------------------------------------------+

//|                                                       Figure.mq5 |

//|                              Copyright © 2019, Vladimir Karputov |

//|                                           http://wmua.ru/slesar/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2019, Vladimir Karputov"

#property link      "http://wmua.ru/slesar/"

#property version   "1.000"

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_plots   3

//--- plot FATL

#property indicator_label1  "FATL"

#property indicator_type1   DRAW_LINE

#property indicator_color1  clrViolet

#property indicator_style1  STYLE_SOLID

#property indicator_width1  2

//--- plot RSTL

#property indicator_label2  "RSTL"

#property indicator_type2   DRAW_LINE

#property indicator_color2  clrWheat

#property indicator_style2  STYLE_SOLID

#property indicator_width2  2

//--- plot RFTL

#property indicator_label3  "RFTL"

#property indicator_type3   DRAW_LINE

#property indicator_color3  clrIndianRed

#property indicator_style3  STYLE_SOLID

#property indicator_width3  2

//--- indicator buffers

double         FATLBuffer[];

double         RSTLBuffer[];

double         RFTLBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int OnInit()

  {

//--- indicator buffers mapping

   SetIndexBuffer(0,FATLBuffer,INDICATOR_DATA);

   SetIndexBuffer(1,RSTLBuffer,INDICATOR_DATA);

   SetIndexBuffer(2,RFTLBuffer,INDICATOR_DATA);

//---

   ArraySetAsSeries(FATLBuffer,true);

   ArraySetAsSeries(RSTLBuffer,true);

   ArraySetAsSeries(RFTLBuffer,true);

   //---

   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);

   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);

   PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0.0);

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

  {

   if(rates_total<300)

      return(0);

   ArraySetAsSeries(close,true);

//---

   int limit=rates_total-prev_calculated+1;

   if(prev_calculated==0)

     {

      ArrayInitialize(FATLBuffer,0.0);

      ArrayInitialize(RSTLBuffer,0.0);

      ArrayInitialize(RFTLBuffer,0.0);

      limit=rates_total-1-98;

     }

   for(int i=0;i<limit;i++)

     {

     FATLBuffer[i]=

                    0.4360409450*close[i+0]

                    +0.3658689069*close[i+1]

                    +0.2460452079*close[i+2]

                    +0.1104506886*close[i+3]

                    -0.0054034585*close[i+4]

                    -0.0760367731*close[i+5]

                    -0.0933058722*close[i+6]

                    -0.0670110374*close[i+7]

                    -0.0190795053*close[i+8]

                    +0.0259609206*close[i+9]

                    +0.0502044896*close[i+10]

                    +0.0477818607*close[i+11]

                    +0.0249252327*close[i+12]

                    -0.0047706151*close[i+13]

                    -0.0272432537*close[i+14]

                    -0.0338917071*close[i+15]

                    -0.0244141482*close[i+16]

                    -0.0055774838*close[i+17]

                    +0.0128149838*close[i+18]

                    +0.0226522218*close[i+19]

                    +0.0208778257*close[i+20]

                    +0.0100299086*close[i+21]

                    -0.0036771622*close[i+22]

                    -0.0136744850*close[i+23]

                    -0.0160483392*close[i+24]

                    -0.0108597376*close[i+25]

                    -0.0016060704*close[i+26]

                    +0.0069480557*close[i+27]

                    +0.0110573605*close[i+28]

                    +0.0095711419*close[i+29]

                    +0.0040444064*close[i+30]

                    -0.0023824623*close[i+31]

                    -0.0067093714*close[i+32]

                    -0.0072003400*close[i+33]

                    -0.0047717710*close[i+34]

                    +0.0005541115*close[i+35]

                    +0.0007860160*close[i+36]

                    +0.0130129076*close[i+37]

                    +0.0040364019*close[i+38];

       RSTLBuffer[i]=

                    -0.00514293*close[i+0]

                    -0.00398417*close[i+1]

                    -0.00262594*close[i+2]

                    -0.00107121*close[i+3]

                    +0.00066887*close[i+4]

                    +0.00258172*close[i+5]

                    +0.00465269*close[i+6]

                    +0.00686394*close[i+7]

                    +0.00919334*close[i+8]

                    +0.01161720*close[i+9]

                    +0.01411056*close[i+10]

                    +0.01664635*close[i+11]

                    +0.01919533*close[i+12]

                    +0.02172747*close[i+13]

                    +0.02421320*close[i+14]

                    +0.02662203*close[i+15]

                    +0.02892446*close[i+16]

                    +0.03109071*close[i+17]

                    +0.03309496*close[i+18]

                    +0.03490921*close[i+19]

                    +0.03651145*close[i+20]

                    +0.03788045*close[i+21]

                    +0.03899804*close[i+22]

                    +0.03984915*close[i+23]

                    +0.04042329*close[i+24]

                    +0.04071263*close[i+25]

                    +0.04071263*close[i+26]

                    +0.04042329*close[i+27]

                    +0.03984915*close[i+28]

                    +0.03899804*close[i+29]

                    +0.03788045*close[i+30]

                    +0.03651145*close[i+31]

                    +0.03490921*close[i+32]

                    +0.03309496*close[i+33]

                    +0.03109071*close[i+34]

                    +0.02892446*close[i+35]

                    +0.02662203*close[i+36]

                    +0.02421320*close[i+37]

                    +0.02172747*close[i+38]

                    +0.01919533*close[i+39]

                    +0.01664635*close[i+40]

                    +0.01411056*close[i+41]

                    +0.01161720*close[i+42]

                    +0.00919334*close[i+43]

                    +0.00686394*close[i+44]

                    +0.00465269*close[i+45]

                    +0.00258172*close[i+46]

                    +0.00066887*close[i+47]

                    -0.00107121*close[i+48]

                    -0.00262594*close[i+49]

                    -0.00398417*close[i+50]

                    -0.00514293*close[i+51]

                    -0.00609634*close[i+52]

                    -0.00684602*close[i+53]

                    -0.00739452*close[i+54]

                    -0.00774847*close[i+55]

                    -0.00791630*close[i+56]

                    -0.00790940*close[i+57]

                    -0.00774085*close[i+58]

                    -0.00742482*close[i+59]

                    -0.00697718*close[i+60]

                    -0.00641613*close[i+61]

                    -0.00576108*close[i+62]

                    -0.00502957*close[i+63]

                    -0.00423873*close[i+64]

                    -0.00340812*close[i+65]

                    -0.00255923*close[i+66]

                    -0.00170217*close[i+67]

                    -0.00085902*close[i+68]

                    -0.00004113*close[i+69]

                    +0.00073700*close[i+70]

                    +0.00146422*close[i+71]

                    +0.00213007*close[i+72]

                    +0.00272649*close[i+73]

                    +0.00324752*close[i+74]

                    +0.00368922*close[i+75]

                    +0.00405000*close[i+76]

                    +0.00433024*close[i+77]

                    +0.00453068*close[i+78]

                    +0.00465046*close[i+79]

                    +0.00469058*close[i+80]

                    +0.00466041*close[i+81]

                    +0.00457855*close[i+82]

                    +0.00442491*close[i+83]

                    +0.00423019*close[i+84]

                    +0.00399201*close[i+85]

                    +0.00372169*close[i+86]

                    +0.00342736*close[i+87]

                    +0.00311822*close[i+88]

                    +0.00280309*close[i+89]

                    +0.00249088*close[i+90]

                    +0.00219089*close[i+91]

                    +0.00191283*close[i+92]

                    +0.00166683*close[i+93]

                    +0.00146419*close[i+94]

                    +0.00131867*close[i+95]

                    +0.00124645*close[i+96]

                    +0.00126836*close[i+97]

                    -0.00401854*close[i+98];







      RFTLBuffer[i]=

                    -0.02232324*close[i+0]

                    +0.02268676*close[i+1]

                    +0.08389067*close[i+2]

                    +0.14630380*close[i+3]

                    +0.19282649*close[i+4]

                    +0.21002638*close[i+5]

                    +0.19282649*close[i+6]

                    +0.14630380*close[i+7]

                    +0.08389067*close[i+8]

                    +0.02268676*close[i+9]

                    -0.02232324*close[i+10]

                    -0.04296564*close[i+11]

                    -0.03980614*close[i+12]

                    -0.02082171*close[i+13]

                    +0.00243636*close[i+14]

                    +0.01950580*close[i+15]

                    +0.02460929*close[i+16]

                    +0.01799295*close[i+17]

                    +0.00470540*close[i+18]

                    -0.00831985*close[i+19]

                    -0.01544722*close[i+20]

                    -0.01456262*close[i+21]

                    -0.00733980*close[i+22]

                    +0.00201852*close[i+23]

                    +0.00902504*close[i+24]

                    +0.01093067*close[i+25]

                    +0.00766099*close[i+26]

                    +0.00145478*close[i+27]

                    -0.00447175*close[i+28]

                    -0.00750446*close[i+29]

                    -0.00671646*close[i+30]

                    -0.00304016*close[i+31]

                    +0.00143433*close[i+32]

                    +0.00457475*close[i+33]

                    +0.00517589*close[i+34]

                    +0.00336708*close[i+35]

                    +0.00034406*close[i+36]

                    -0.00233637*close[i+37]

                    -0.00352280*close[i+38]

                    -0.00293522*close[i+39]

                    -0.00114249*close[i+40]

                    +0.00083536*close[i+41]

                    +0.00215524*close[i+42]

                    +0.00604133*close[i+43]

                    -0.00013046*close[i+44];

     }



//--- return value of prev_calculated for next call

   return(rates_total);

  }

//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---