Miscellaneous
1
Views
0
Downloads
0
Favorites
T3_3Lines
//+------------------------------------------------------------------+
//| T3.mq4 |
//| MojoFX |
//| http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+------------------------------------------------------------------+
#property copyright "MojoFX - Conversion only"
#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Green
#property indicator_color2 Blue
#property indicator_color3 Black
extern int MA_Period1 = 4;
extern int MA_Period2 = 8;
extern int MA_Period3 = 12;
extern double b = 0.6128;
double MapBuffer1[];
double MapBuffer2[];
double MapBuffer3[];
double e1[],e2[],e3[],e4[],e5[],e6[],e12[],e22[],e32[],e42[],e52[],e62[],e13[],e23[],e33[],e43[],e53[],e63[];
double c1,c2,c3,c4;
double n1,n2,n3,w1,w2,b2,b3,w12,w22,w13,w23;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators setting
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,indicator_color1);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("T3_"+MA_Period1);
SetIndexDrawBegin(0,100);
SetIndexBuffer(0,MapBuffer1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,indicator_color2);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("T3_"+MA_Period2);
SetIndexDrawBegin(1,100);
SetIndexBuffer(1,MapBuffer2);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1,indicator_color3);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("T3_"+MA_Period3);
SetIndexDrawBegin(2,100);
SetIndexBuffer(2,MapBuffer3);
//---- variable reset
//e2=0; e3=0; e4=0; e5=0; e6=0;
c1=0; c2=0; c3=0; c4=0;
n1=0; n2=0; n3=0;
w1=0; w2=0; w12=0; w22=0; w13=0; w23=0;
b2=0; b3=0;
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);
n1=MA_Period1;
n2=MA_Period2;
n3=MA_Period3;
if (n1<1) n1=1;
n1 = 1 + 0.5*(n1-1);
w1 = 2 / (n1 + 1);
w2 = 1 - w1;
if (n2<1) n2=1;
n2 = 1 + 0.5*(n2-1);
w12 = 2 / (n2 + 1);
w22 = 1 - w12;
if (n3<1) n3=1;
n3 = 1 + 0.5*(n3-1);
w13 = 2 / (n3 + 1);
w23 = 1 - w13;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if (counted_bars<0) return (-1);
if (counted_bars>0) counted_bars--;
limit=(Bars-counted_bars)-1;
//---- indicator calculation
ArrayResize(e1, Bars+1);
ArrayResize(e2, Bars+1);
ArrayResize(e3, Bars+1);
ArrayResize(e4, Bars+1);
ArrayResize(e5, Bars+1);
ArrayResize(e6, Bars+1);
ArrayResize(e12, Bars+1);
ArrayResize(e22, Bars+1);
ArrayResize(e32, Bars+1);
ArrayResize(e42, Bars+1);
ArrayResize(e52, Bars+1);
ArrayResize(e62, Bars+1);
ArrayResize(e13, Bars+1);
ArrayResize(e23, Bars+1);
ArrayResize(e33, Bars+1);
ArrayResize(e43, Bars+1);
ArrayResize(e53, Bars+1);
ArrayResize(e63, Bars+1);
for(int i=limit; i>=0; i--)
{
e1[Bars-i] = w1*Close[i] + w2*e1[(Bars-i)-1];
e2[Bars-i] = w1*e1[Bars-i] + w2*e2[(Bars-i)-1];
e3[Bars-i] = w1*e2[Bars-i] + w2*e3[(Bars-i)-1];
e4[Bars-i] = w1*e3[Bars-i] + w2*e4[(Bars-i)-1];
e5[Bars-i] = w1*e4[Bars-i] + w2*e5[(Bars-i)-1];
e6[Bars-i] = w1*e5[Bars-i] + w2*e6[(Bars-i)-1];
//Print ("I- ",i, "Bars-I ",Bars-i);
MapBuffer1[i]=c1*e6[Bars-i] + c2*e5[Bars-i] + c3*e4[Bars-i] + c4*e3[Bars-i];
}
for(i=limit; i>=0; i--)
{
e12[Bars-i] = w12*Close[i] + w22*e12[(Bars-i)-1];
e22[Bars-i] = w12*e12[Bars-i] + w22*e22[(Bars-i)-1];
e32[Bars-i] = w12*e22[Bars-i] + w22*e32[(Bars-i)-1];
e42[Bars-i] = w12*e32[Bars-i] + w22*e42[(Bars-i)-1];
e52[Bars-i] = w12*e42[Bars-i] + w22*e52[(Bars-i)-1];
e62[Bars-i] = w12*e52[Bars-i] + w22*e62[(Bars-i)-1];
//Print ("I- ",i, "Bars-I ",Bars-i);
MapBuffer2[i]=c1*e62[Bars-i] + c2*e52[Bars-i] + c3*e42[Bars-i] + c4*e32[Bars-i];
}
for(i=limit; i>=0; i--)
{
e13[Bars-i] = w13*Close[i] + w23*e13[(Bars-i)-1];
e23[Bars-i] = w13*e13[Bars-i] + w23*e23[(Bars-i)-1];
e33[Bars-i] = w13*e23[Bars-i] + w23*e33[(Bars-i)-1];
e43[Bars-i] = w13*e33[Bars-i] + w23*e43[(Bars-i)-1];
e53[Bars-i] = w13*e43[Bars-i] + w23*e53[(Bars-i)-1];
e63[Bars-i] = w13*e53[Bars-i] + w23*e63[(Bars-i)-1];
//Print ("I- ",i, "Bars-I ",Bars-i);
MapBuffer3[i]=c1*e63[Bars-i] + c2*e53[Bars-i] + c3*e43[Bars-i] + c4*e33[Bars-i];
}
//----
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
---