Miscellaneous
0
Views
0
Downloads
0
Favorites
T3 Taotra_NK
//+------------------------------------------------------------------+
//| Version July 20, 2006 |
//| Editing Nikolay Kositsin 15.06.2006 farria@mail.redcom.ru |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| T3 Taotra.mq4 |
//| T3 code: Copyright © 1998, Tilson |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
//---- îòðèñîâêà èíäèêàòîðà â ãëàâíîì îêíå
#property indicator_chart_window
//---- êîëè÷åñòâî èíäèêàòîðíûõ áóôôåðîâ
#property indicator_buffers 6
//---- öâåòà èíäèêàòîðà
#property indicator_color1 Brown
#property indicator_color2 Red
#property indicator_color3 Purple
#property indicator_color4 Aqua
#property indicator_color5 Green
#property indicator_color6 Blue
//---- ÂÕÎÄÍÛÅ ÏÀÐÀÌÅÒÐÛ ÈÍÄÈÊÀÒÎÐÀ
extern int MA_Period_1 = 3; // ïåðèîä èíäèêàòîðà 1
extern int MA_Period_2 = 5; // ïåðèîä èíäèêàòîðà 2
extern int MA_Period_3 = 8; // ïåðèîä èíäèêàòîðà 3
extern int MA_Period_4 = 12;// ïåðèîä èíäèêàòîðà 4
extern int MA_Period_5 = 21;// ïåðèîä èíäèêàòîðà 5
extern int MA_Period_6 = 34;// ïåðèîä èíäèêàòîðà 6
//----
extern int Shift1 = 0; // cäâèã èíäèêàòîðà 1 âäîëü îñè âðåìåíè
extern int Shift2 = 0; // cäâèã èíäèêàòîðà 2 âäîëü îñè âðåìåíè
extern int Shift3 = 0; // cäâèã èíäèêàòîðà 3 âäîëü îñè âðåìåíè
extern int Shift4 = 0; // cäâèã èíäèêàòîðà 6 âäîëü îñè âðåìåíè
extern int Shift5 = 0; // cäâèã èíäèêàòîðà 5 âäîëü îñè âðåìåíè
extern int Shift6 = 0; // cäâèã èíäèêàòîðà 6 âäîëü îñè âðåìåíè
extern double b = 0.7;
//---- èíäèêàòîðíûå áóôôåðû
double Ind_Buffer1[];
double Ind_Buffer2[];
double Ind_Buffer3[];
double Ind_Buffer4[];
double Ind_Buffer5[];
double Ind_Buffer6[];
//----
double e1[6], e2[6], e3[6], e4[6], e5[6], e6[6];
double c1, c2, c3, c4, Price, Resalt[6];
double n[6], w1[6], w2[6], b2, b3;
int M[6];
//---- ââåäåíèå ïåðåìåííûõ äëÿ ñîõðàíåíèÿ ïåðåìåííûõ e1,e2,e3,e4,e5,e6
int time2;
double E1[6], E2[6], E3[6], E4[6], E5[6], E6[6];
//+------------------------------------------------------------------+
//| T3 Taotra initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- îïðåäåëåíèå ñòèëÿ èñïîëíåíèÿ ãðàôèêà
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);
//----
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
//---- èìÿ äëÿ îêîí äàííûõ è ëýéáà äëÿ ñóáúîêîí
IndicatorShortName("T3 Taotra");
//---- óñòàíîâêà íîìåðà áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò îòðèñîâûâàòüñÿ èíäèêàòîð
SetIndexDrawBegin(0, 100);
SetIndexDrawBegin(1, 100);
SetIndexDrawBegin(2, 100);
SetIndexDrawBegin(3, 100);
SetIndexDrawBegin(4, 100);
SetIndexDrawBegin(5, 100);
//---- 6 èíäèêàòîðíûõ áóôôåðîâ èñïîëüçîâàíû äëÿ ñ÷¸òà
SetIndexBuffer(0, Ind_Buffer1);
SetIndexBuffer(1, Ind_Buffer2);
SetIndexBuffer(2, Ind_Buffer3);
SetIndexBuffer(3, Ind_Buffer4);
SetIndexBuffer(4, Ind_Buffer5);
SetIndexBuffer(5, Ind_Buffer6);
//---- ãîðèçîíòàëüíûé ñäâèã èíäèêàòîðíûõ ëèíèé
SetIndexShift (0, Shift1);
SetIndexShift (1, Shift2);
SetIndexShift (2, Shift3);
SetIndexShift (3, Shift4);
SetIndexShift (4, Shift5);
SetIndexShift (5, Shift6);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
SetIndexEmptyValue(0, 0);
SetIndexEmptyValue(1, 0);
SetIndexEmptyValue(2, 0);
SetIndexEmptyValue(3, 0);
SetIndexEmptyValue(4, 0);
SetIndexEmptyValue(5, 0);
SetIndexEmptyValue(6, 0);
//---- èíèöìàëèçàöèÿ ïåðåìåííûõ
n[0] = MA_Period_1;
n[1] = MA_Period_2;
n[2] = MA_Period_3;
n[3] = MA_Period_4;
n[4] = MA_Period_5;
n[5] = MA_Period_6;
//----
b2 = b*b;
b3 = b2*b;
c1 = -b3;
c2 = (3*(b2 + b3));
c3 = -3*(2*b2 + b + b3);
c4 =(1 + 3*b + b3 + 3*b2);
//----
for(int iii = 0; iii < 6; iii++)
{
M[iii] = 4*n[iii];
if(n[iii] < 1)
n[iii] = 1;
n[iii] = 1 + 0.5*(n[iii] - 1);
w1[iii] = 2 / (n[iii] + 1);
w2[iii] = 1 - w1[iii];
}
//---- çàâåðøåíèå èíèöèàëèçàöèè
return(0);
}
//+------------------------------------------------------------------+
//| T3 Taotra iteration function |
//+------------------------------------------------------------------+
int start()
{
//----+ Ââåäåíèå öåëûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîäñ÷èòàííûõ áàðîâ
int limit, nnn, bar, MaxBar, counted_bars = IndicatorCounted();
//---- ïðîâåðêà íà âîçìîæíûå îøèáêè
if(counted_bars < 0)
return(-1);
//---- ïîñëåäíèé ïîäñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí
if(counted_bars > 0)
counted_bars--;
//---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò
// ïðîèçåä¸í ïåðåñ÷¸ò âñåõ áàðîâ
MaxBar = Bars - 1;
//---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò
// ïðîèçåä¸í ïåðåñ÷¸ò òîëüêî íîâûõ áàðîâ
limit = (Bars -1 - counted_bars);
//+--- äî îñíîâíîãî öèêëà ðàñ÷¸òà èíäèêàòîðà âîññòàíàâëèâàåì çíà÷åíèÿ
// ïåðåìåííûõ, êàêèìè îíè áûëè ïîñëå ðà÷¸òà íà âòîðîì áàðå
//+--- âîññòàíîâëåíèå çíà÷åíèé ïåðåìåííûõ
int Tnew = Time[limit+1];
if(limit < MaxBar)
if(Tnew == time2)
for(int xxx = 0; xxx < 6; xxx++)
{
e1[xxx] = E1[xxx];
e2[xxx] = E2[xxx];
e3[xxx] = E3[xxx];
e4[xxx] = E4[xxx];
e5[xxx] = E5[xxx];
e6[xxx] = E6[xxx];
}
else
{
if(Tnew > time2)
Print("ERROR01");
else
Print("ERROR02");
return(-1);
}
//----
for(bar = limit; bar >= 0; bar--)
{
//+--- Çàïîìèíàåì çíà÷åíèÿ ïåðåìåííûõ, êàêèìè îíè áûëè ïîñëå âòîðîãî áàðà
//+--- Ñîõðàíåíèå çíà÷åíèé ïåðåìåííûõ +=============+
if(bar == 1)
if(((limit == 1) && (time2 != Time[2])) || (limit > 1))
{
time2 = Time[2];
for(int yyy = 0; yyy < 6; yyy++)
{
E1[yyy] = e1[yyy];
E2[yyy] = e2[yyy];
E3[yyy] = e3[yyy];
E4[yyy] = e4[yyy];
E5[yyy] = e5[yyy];
E6[yyy] = e6[yyy];
}
}
//+---+============================================+
for(nnn = 0; nnn < 6; nnn++)
{
Price = Close[bar];
e1[nnn] = w1[nnn]*Price + w2[nnn]*e1[nnn];
e2[nnn] = w1[nnn]*e1[nnn] + w2[nnn]*e2[nnn];
e3[nnn] = w1[nnn]*e2[nnn] + w2[nnn]*e3[nnn];
e4[nnn] = w1[nnn]*e3[nnn] + w2[nnn]*e4[nnn];
e5[nnn] = w1[nnn]*e4[nnn] + w2[nnn]*e5[nnn];
e6[nnn] = w1[nnn]*e5[nnn] + w2[nnn]*e6[nnn];
//----
if(bar <= Bars - M[nnn])
Resalt[nnn] = c1*e6[nnn] + c2*e5[nnn] + c3*e4[nnn] + c4*e3[nnn];
//---- èíèöèàëèçàöèÿ íóëÿ
else
Resalt[nnn] = 0;
}
Ind_Buffer1[bar] = Resalt[0];
Ind_Buffer2[bar] = Resalt[1];
Ind_Buffer3[bar] = Resalt[2];
Ind_Buffer4[bar] = Resalt[3];
Ind_Buffer5[bar] = Resalt[4];
Ind_Buffer6[bar] = Resalt[5];
}
//----
return(0);
}
//+------------------------------------------------------------------+
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
---