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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---