T3Taotra_v1

Author: Copyright � 2010, Nikolay Kositsin
0 Views
0 Downloads
0 Favorites
T3Taotra_v1
//+------------------------------------------------------------------+
//|                                                     T3Taotra.mq5 |
//|                         MQL5: Copyright © 2010, Nikolay Kositsin | 
//|                              Khabarovsk,   farria@mail.redcom.ru | 
//+------------------------------------------------------------------+
//| Äëÿ ðàáîòû  èíäèêàòîðà ôàéë SmoothAlgorithms.mqh                 |
//| ñëåäóåò ïîëîæèòü â ïàïêó: êàòàëîã_äàííûõ_òåðìèíàëà\\MQL5\Include |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Nikolay Kositsin"
#property link "farria@mail.redcom.ru" 
//---- íîìåð âåðñèè èíäèêàòîðà
#property version   "1.10"
//---- îòðèñîâêà èíäèêàòîðà â îòäåëüíîì îêíå
#property indicator_separate_window
//---- êîëè÷åñòâî èíäèêàòîðíûõ áóôåðîâ 6
#property indicator_buffers 6 
//---- èñïîëüçîâàíî âñåãî 6 ãðàôè÷åñêèõ ïîñòðîåíèé
#property indicator_plots   6
//+----------------------------------------------+
//|  Ïàðàìåòðû îòðèñîâêè èíäèêàòîðà              |
//+----------------------------------------------+
//---- öâåòà èíäèêàòîðà
#property indicator_color1 clrYellow
#property indicator_color2 clrRed
#property indicator_color3 clrMagenta
#property indicator_color4 clrAqua
#property indicator_color5 clrLimeGreen
#property indicator_color6 clrBlue
//---- îòðèñîâêà èíäèêàòîðà â âèäå ëèíèé
#property indicator_type1 DRAW_LINE
#property indicator_type2 DRAW_LINE
#property indicator_type3 DRAW_LINE
#property indicator_type4 DRAW_LINE
#property indicator_type5 DRAW_LINE
#property indicator_type6 DRAW_LINE
//---- ëèíèè èíäèêàòîðà - íåïðåðûâíûå êðèâûå
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID
#property indicator_style3 STYLE_SOLID
#property indicator_style4 STYLE_SOLID
#property indicator_style5 STYLE_SOLID
#property indicator_style6 STYLE_SOLID
//---- òîëùèíà ëèíèé èíäèêàòîðà ðàâíà 1
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 1
#property indicator_width5 1
#property indicator_width6 1
//---- îòîáðàæåíèå ìåòêè èíäèêàòîðà
#property indicator_label1  "T3Taotra1"
#property indicator_label2  "T3Taotra2" 
#property indicator_label3  "T3Taotra3" 
#property indicator_label4  "T3Taotra4" 
#property indicator_label5  "T3Taotra5" 
#property indicator_label6  "T3Taotra6" 
//+----------------------------------------------+
//| Îáúÿâëåíèå ïåðå÷èñëåíèÿ                      |
//+----------------------------------------------+
enum Applied_price_ //Òèï öåíîâîé êîíñòàíòû
  {
   PRICE_CLOSE_ = 1,     //PRICE_CLOSE
   PRICE_OPEN_,          //PRICE_OPEN
   PRICE_HIGH_,          //PRICE_HIGH
   PRICE_LOW_,           //PRICE_LOW
   PRICE_MEDIAN_,        //PRICE_MEDIAN
   PRICE_TYPICAL_,       //PRICE_TYPICAL
   PRICE_WEIGHTED_,      //PRICE_WEIGHTED
   PRICE_SIMPL_,         //PRICE_SIMPL
   PRICE_QUARTER_,       //PRICE_QUARTER
   PRICE_TRENDFOLLOW0_,  //PRICE_TRENDFOLLOW0
   PRICE_TRENDFOLLOW1_,  //TrendFollow_2 Price 
   PRICE_DEMARK_         //Demark Price
  };
//+----------------------------------------------+
//| Âõîäíûå ïàðàìåòðû èíäèêàòîðà                 |
//+----------------------------------------------+
input int T3_Period_1 = 3; // ïåðèîä èíäèêàòîðà 1
input int T3_Period_2 = 5; // ïåðèîä èíäèêàòîðà 2
input int T3_Period_3 = 8; // ïåðèîä èíäèêàòîðà 3
input int T3_Period_4 = 12;// ïåðèîä èíäèêàòîðà 4
input int T3_Period_5 = 21;// ïåðèîä èíäèêàòîðà 5
input int T3_Period_6 = 34;// ïåðèîä èíäèêàòîðà 6
input int Smooth_Curvature=100;
input  Applied_price_  IPC=PRICE_CLOSE_;//öåíîâàÿ êîíñòàíòà
input int Shift1 = 0;  // cäâèã èíäèêàòîðà 1 âäîëü îñè âðåìåíè 
input int Shift2 = 0;  // cäâèã èíäèêàòîðà 2 âäîëü îñè âðåìåíè
input int Shift3 = 0;  // cäâèã èíäèêàòîðà 3 âäîëü îñè âðåìåíè
input int Shift4 = 0;  // cäâèã èíäèêàòîðà 6 âäîëü îñè âðåìåíè
input int Shift5 = 0;  // cäâèã èíäèêàòîðà 5 âäîëü îñè âðåìåíè
input int Shift6 = 0;  // cäâèã èíäèêàòîðà 6 âäîëü îñè âðåìåíè
//+----------------------------------------------+
//---- èíäèêàòîðíûå áóôåðû
double Ind_Buffer1[];
double Ind_Buffer2[];
double Ind_Buffer3[];
double Ind_Buffer4[];
double Ind_Buffer5[];
double Ind_Buffer6[];
//+------------------------------------------------------------------+
// Îïèñàíèå ôóíêöèè iPriceSeries()                                   |
// Îïèñàíèå ôóíêöèè iPriceSeriesAlert()                              |
// Îïèñàíèå êëàññà  CT3                                              |
//+------------------------------------------------------------------+ 
#include <SmoothAlgorithms.mqh> 
//+------------------------------------------------------------------+   
//| T3Taotra initialization function                                 |
//+------------------------------------------------------------------+ 
void OnInit()
  {
//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(0,Ind_Buffer1,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 1 ïî ãîðèçîíòàëè
   PlotIndexSetInteger(0,PLOT_SHIFT,Shift1);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷¸òà îòðèñîâêè èíäèêàòîðà
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,1);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);

//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(1,Ind_Buffer2,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 2 ïî ãîðèçîíòàëè
   PlotIndexSetInteger(1,PLOT_SHIFT,Shift2);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷¸òà îòðèñîâêè èíäèêàòîðà
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,1);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);

//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(2,Ind_Buffer3,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 3 ïî ãîðèçîíòàëè
   PlotIndexSetInteger(2,PLOT_SHIFT,Shift3);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷¸òà îòðèñîâêè èíäèêàòîðà
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,1);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
   PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,EMPTY_VALUE);

//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(3,Ind_Buffer4,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 4 ïî ãîðèçîíòàëè
   PlotIndexSetInteger(3,PLOT_SHIFT,Shift4);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷¸òà îòðèñîâêè èíäèêàòîðà
   PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,1);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
   PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,EMPTY_VALUE);

//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(4,Ind_Buffer5,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 5 ïî ãîðèçîíòàëè
   PlotIndexSetInteger(4,PLOT_SHIFT,Shift5);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷¸òà îòðèñîâêè èíäèêàòîðà
   PlotIndexSetInteger(4,PLOT_DRAW_BEGIN,1);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
   PlotIndexSetDouble(4,PLOT_EMPTY_VALUE,EMPTY_VALUE);

//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
   SetIndexBuffer(5,Ind_Buffer6,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 6 ïî ãîðèçîíòàëè
   PlotIndexSetInteger(5,PLOT_SHIFT,Shift6);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷¸òà îòðèñîâêè èíäèêàòîðà
   PlotIndexSetInteger(5,PLOT_DRAW_BEGIN,1);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
   PlotIndexSetDouble(5,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- èíèöèàëèçàöèè ïåðåìåííîé äëÿ êîðîòêîãî èìåíè èíäèêàòîðà
   string shortname;
   StringConcatenate(shortname,"T3Taotra( ",T3_Period_1,", ",T3_Period_2,", ",T3_Period_3,
                     ", ",T3_Period_4,", ",T3_Period_5,", ",T3_Period_6," )");
//---- ñîçäàíèå èìåíè äëÿ îòîáðàæåíèÿ â îòäåëüíîì ïîäîêíå è âî âñïëûâàþùåé ïîäñêàçêå
   IndicatorSetString(INDICATOR_SHORTNAME,shortname);
//---- îïðåäåëåíèå òî÷íîñòè îòîáðàæåíèÿ çíà÷åíèé èíäèêàòîðà
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//---- çàâåðøåíèå èíèöèàëèçàöèè
  }
//+------------------------------------------------------------------+
//| T3.Taotra 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<0)return(0);

//---- Îáúÿâëåíèå ïåðåìåííûõ ñ ïëàâàþùåé òî÷êîé
   double series;

//---- Îáúÿâëåíèå öåëûõ ïåðåìåííûõ
   int first,bar;

//---- ðàñ÷¸ò ñòàðòîâîãî íîìåðà first äëÿ öèêëà ïåðåñ÷¸òà áàðîâ
   if(prev_calculated>rates_total || prev_calculated<=0) // ïðîâåðêà íà ïåðâûé ñòàðò ðàñ÷¸òà èíäèêàòîðà
      first=0; // ñòàðòîâûé íîìåð äëÿ ðàñ÷¸òà âñåõ áàðîâ
   else first=prev_calculated-1; // ñòàðòîâûé íîìåð äëÿ ðàñ÷¸òà íîâûõ áàðîâ

//---- îáúÿâëåíèå ìàññèâà ïåðåìåííûõ êëàññà CT3 èç ôàéëà T3Series_Cls.mqh
   static CT3 T3_[6];

//---- Îñíîâíîé öèêë ðàñ÷¸òà èíäèêàòîðà
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      series=PriceSeries(IPC,bar,open,low,high,close); 
      Ind_Buffer1[bar]=T3_[0].T3Series(0,prev_calculated,rates_total,0,Smooth_Curvature,T3_Period_1,series,bar,false);
      Ind_Buffer2[bar]=T3_[1].T3Series(0,prev_calculated,rates_total,0,Smooth_Curvature,T3_Period_2,series,bar,false);
      Ind_Buffer3[bar]=T3_[2].T3Series(0,prev_calculated,rates_total,0,Smooth_Curvature,T3_Period_3,series,bar,false);
      Ind_Buffer4[bar]=T3_[3].T3Series(0,prev_calculated,rates_total,0,Smooth_Curvature,T3_Period_4,series,bar,false);
      Ind_Buffer5[bar]=T3_[4].T3Series(0,prev_calculated,rates_total,0,Smooth_Curvature,T3_Period_5,series,bar,false);
      Ind_Buffer6[bar]=T3_[5].T3Series(0,prev_calculated,rates_total,0,Smooth_Curvature,T3_Period_6,series,bar,false);
     }
//---- çàâåðøåíèå âû÷èñëåíèé çíà÷åíèé èíäèêàòîðà 
   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 ---