fatlsatlosma_v2

Author: Copyright 2012, Dmitry Shmatkov
0 Views
0 Downloads
0 Favorites
fatlsatlosma_v2
//+------------------------------------------------------------------+
//|                                                 FatlSatlOsma.mq5 |
//|                                  Copyright 2012, Dmitry Shmatkov |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
//--- àâòîðñòâî èíäèêàòîðà
#property copyright "Copyright 2012, Dmitry Shmatkov"
//--- ññûëêà íà ñàéò àâòîðà
#property link      "http://www.metaquotes.net/"
//--- íîìåð âåðñèè èíäèêàòîðà
#property version   "1.00"
//--- îòðèñîâêà èíäèêàòîðà â îòäåëüíîì îêíå
#property indicator_separate_window 
//--- äëÿ ðàñ÷åòà è îòðèñîâêè èíäèêàòîðà èñïîëüçîâàí îäèí áóôåð
#property indicator_buffers 1
//--- èñïîëüçîâàíî âñåãî îäíî ãðàôè÷åñêîå ïîñòðîåíèå
#property indicator_plots   1
//--- îòðèñîâêà èíäèêàòîðà â âèäå ëèíèè
#property indicator_type1   DRAW_LINE
//--- â êà÷åñòâå öâåòà ëèíèè èíäèêàòîðà èñïîëüçîâàí DodgerBlue öâåò
#property indicator_color1  clrDodgerBlue
//--- ëèíèÿ èíäèêàòîðà - íåïðåðûâíàÿ êðèâàÿ
#property indicator_style1  STYLE_SOLID
//--- òîëùèíà ëèíèè èíäèêàòîðà ðàâíà 2
#property indicator_width1  2
//--- îòîáðàæåíèå ìåòêè èíäèêàòîðà
#property indicator_label1  "FatlSatlOsma"
//+----------------------------------------------+
//| Âõîäíûå ïàðàìåòðû èíäèêàòîðà                 |
//+----------------------------------------------+
input int Shift=0; // ñäâèã ìóâèíãà ïî ãîðèçîíòàëè â áàðàõ 
//+----------------------------------------------+
//--- îáúÿâëåíèå è èíèöèàëèçàöèÿ ïåðåìåííîé äëÿ õðàíåíèÿ êîëè÷åñòâà ðàñ÷åòíûõ áàðîâ
int FATLPeriod=39;
//--- îáúÿâëåíèå è èíèöèàëèçàöèÿ ïåðåìåííîé äëÿ õðàíåíèÿ êîëè÷åñòâà ðàñ÷åòíûõ áàðîâ
int SATLPeriod=65;
//--- îáúÿâëåíèå äèíàìè÷åñêîãî ìàññèâà, êîòîðûé â äàëüíåéøåì
//--- áóäåò èñïîëüçîâàí â êà÷åñòâå èíäèêàòîðíîãî áóôåðà
double ExtLineBuffer[];
//--- îáúÿâëåíèå öåëî÷èñëåííûõ ïåðåìåííûõ íà÷àëà îòñ÷åòà äàííûõ
int min_rates_total;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+  
void OnInit()
  {
//--- èíèöèàëèçàöèÿ ïåðåìåííûõ íà÷àëà îòñ÷åòà äàííûõ
   min_rates_total=int(MathMax(FATLPeriod,SATLPeriod));
//--- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà ExtLineBuffer â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
//--- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà ïî ãîðèçîíòàëè íà FATLShift
   PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
//--- óñòàíîâêà ïîçèöèè, ñ êîòîðîé íà÷èíàåòñÿ îòðèñîâêà èíäèêàòîðà
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
//--- èíèöèàëèçàöèè ïåðåìåííîé äëÿ êîðîòêîãî èìåíè èíäèêàòîðà
   string shortname;
   StringConcatenate(shortname,"FatlSatlOsma(",Shift,")");
//--- ñîçäàíèå ìåòêè äëÿ îòîáðàæåíèÿ â Îêíå äàííûõ
   PlotIndexSetString(0,PLOT_LABEL,shortname);
//--- ñîçäàíèå èìåíè äëÿ îòîáðàæåíèÿ â îòäåëüíîì ïîäîêíå è âî âñïëûâàþùåé ïîäñêàçêå
   IndicatorSetString(INDICATOR_SHORTNAME,shortname);
//--- îïðåäåëåíèå òî÷íîñòè îòîáðàæåíèÿ çíà÷åíèé èíäèêàòîðà
   IndicatorSetInteger(INDICATOR_DIGITS,0);
//--- çàïðåò íà îòðèñîâêó èíäèêàòîðîì ïóñòûõ çíà÷åíèé
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,     // êîëè÷åñòâî èñòîðèè â áàðàõ íà òåêóùåì òèêå
                const int prev_calculated, // êîëè÷åñòâî èñòîðèè â áàðàõ íà ïðåäûäóùåì òèêå
                const int begin,           // íîìåð íà÷àëà äîñòîâåðíîãî îòñ÷åòà áàðîâ
                const double &price[])     // öåíîâîé ìàññèâ äëÿ ðàñ÷åòà èíäèêàòîðà
  { 
//--- ïðîâåðêà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ ðàñ÷åòà
   if(rates_total<min_rates_total+begin) return(0);
//--- îáúÿâëåíèÿ ëîêàëüíûõ ïåðåìåííûõ 
   int first,bar;
   double FATL,SATL;
//--- ðàñ÷åò ñòàðòîâîãî íîìåðà first äëÿ öèêëà ïåðåñ÷åòà áàðîâ
   if(prev_calculated>rates_total || prev_calculated<=0) // ïðîâåðêà íà ïåðâûé ñòàðò ðàñ÷åòà èíäèêàòîðà
     {
      first=min_rates_total-1+begin;  // ñòàðòîâûé íîìåð äëÿ ðàñ÷åòà âñåõ áàðîâ
      //--- óâåëè÷èì ïîçèöèþ íà÷àëà äàííûõ íà begin áàðîâ, âñëåäñòâèå ðàñ÷åòîâ íà äàííûõ äðóãîãî èíäèêàòîðà
      if(begin>0)
         PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,begin+min_rates_total);
     }
   else first=prev_calculated-1; // ñòàðòîâûé íîìåð äëÿ ðàñ÷åòà íîâûõ áàðîâ
//--- îñíîâíîé öèêë ðàñ÷åòà èíäèêàòîðà
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      //--- 
      FATL = 0.4360409450 * price[bar - 0]
           + 0.3658689069 * price[bar - 1]
           + 0.2460452079 * price[bar - 2]
           + 0.1104506886 * price[bar - 3]
           - 0.0054034585 * price[bar - 4]
           - 0.0760367731 * price[bar - 5]
           - 0.0933058722 * price[bar - 6]
           - 0.0670110374 * price[bar - 7]
           - 0.0190795053 * price[bar - 8]
           + 0.0259609206 * price[bar - 9]
           + 0.0502044896 * price[bar - 10]
           + 0.0477818607 * price[bar - 11]
           + 0.0249252327 * price[bar - 12]
           - 0.0047706151 * price[bar - 13]
           - 0.0272432537 * price[bar - 14]
           - 0.0338917071 * price[bar - 15]
           - 0.0244141482 * price[bar - 16]
           - 0.0055774838 * price[bar - 17]
           + 0.0128149838 * price[bar - 18]
           + 0.0226522218 * price[bar - 19]
           + 0.0208778257 * price[bar - 20]
           + 0.0100299086 * price[bar - 21]
           - 0.0036771622 * price[bar - 22]
           - 0.0136744850 * price[bar - 23]
           - 0.0160483392 * price[bar - 24]
           - 0.0108597376 * price[bar - 25]
           - 0.0016060704 * price[bar - 26]
           + 0.0069480557 * price[bar - 27]
           + 0.0110573605 * price[bar - 28]
           + 0.0095711419 * price[bar - 29]
           + 0.0040444064 * price[bar - 30]
           - 0.0023824623 * price[bar - 31]
           - 0.0067093714 * price[bar - 32]
           - 0.0072003400 * price[bar - 33]
           - 0.0047717710 * price[bar - 34]
           + 0.0005541115 * price[bar - 35]
           + 0.0007860160 * price[bar - 36]
           + 0.0130129076 * price[bar - 37]
           + 0.0040364019 * price[bar - 38];
           //--- 
      SATL = 0.0982862174 * price[bar - 0]
            +0.0975682269 * price[bar - 1]
            +0.0961401078 * price[bar - 2]
            +0.0940230544 * price[bar - 3]
            +0.0912437090 * price[bar - 4]
            +0.0878391006 * price[bar - 5]
            +0.0838544303 * price[bar - 6]
            +0.0793406350 * price[bar - 7]
            +0.0743569346 * price[bar - 8]
            +0.0689666682 * price[bar - 9]
            +0.0632381578 * price[bar - 10]
            +0.0572428925 * price[bar - 11]
            +0.0510534242 * price[bar - 12]
            +0.0447468229 * price[bar - 13]
            +0.0383959950 * price[bar - 14]
            +0.0320735368 * price[bar - 15]
            +0.0258537721 * price[bar - 16]
            +0.0198005183 * price[bar - 17]
            +0.0139807863 * price[bar - 18]
            +0.0084512448 * price[bar - 19]
            +0.0032639979 * price[bar - 20]
            -0.0015350359 * price[bar - 21]
            -0.0059060082 * price[bar - 22]
            -0.0098190256 * price[bar - 23]
            -0.0132507215 * price[bar - 24]
            -0.0161875265 * price[bar - 25]
            -0.0186164872 * price[bar - 26]
            -0.0205446727 * price[bar - 27]
            -0.0219739146 * price[bar - 28]
            -0.0229204861 * price[bar - 29]
            -0.0234080863 * price[bar - 30]
            -0.0234566315 * price[bar - 31]
            -0.0231017777 * price[bar - 32]
            -0.0223796900 * price[bar - 33]
            -0.0213300463 * price[bar - 34]
            -0.0199924534 * price[bar - 35]
            -0.0184126992 * price[bar - 36]
            -0.0166377699 * price[bar - 37]
            -0.0147139428 * price[bar - 38]
            -0.0126796776 * price[bar - 39]
            -0.0105938331 * price[bar - 40]
            -0.0084736770 * price[bar - 41]
            -0.0063841850 * price[bar - 42]
            -0.0043466731 * price[bar - 43]
            -0.0023956944 * price[bar - 44]
            -0.0005535180 * price[bar - 45]
            +0.0011421469 * price[bar - 46]
            +0.0026845693 * price[bar - 47]
            +0.0040471369 * price[bar - 48]
            +0.0052380201 * price[bar - 49]
            +0.0062194591 * price[bar - 50]
            +0.0070340085 * price[bar - 51]
            +0.0076266453 * price[bar - 52]
            +0.0080376628 * price[bar - 53]
            +0.0083037666 * price[bar - 54]
            +0.0083694798 * price[bar - 55]
            +0.0082901022 * price[bar - 56]
            +0.0080741359 * price[bar - 57]
            +0.0077543820 * price[bar - 58]
            +0.0073260526 * price[bar - 59]
            +0.0068163569 * price[bar - 60]
            +0.0062325477 * price[bar - 61]
            +0.0056078229 * price[bar - 62]
            +0.0049516078 * price[bar - 63]
            +0.0161380976 * price[bar - 64];
      //--- èíèöèàëèçàöèÿ ÿ÷åéêè èíäèêàòîðíîãî áóôåðà ïîëó÷åííûì çíà÷åíèåì FATL
      ExtLineBuffer[bar]=(FATL-SATL)/_Point;
     }
//---    
   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 ---