Miscellaneous
0
Views
0
Downloads
0
Favorites
J_TPO_v4
//+------------------------------------------------------------------+
//| J_TPO.mq4 |
//| Copyright © 2004, |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, ."
#property link ""
//----
#property indicator_separate_window
#property indicator_minimum -1
#property indicator_maximum 1
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int Len=10;
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, ExtMapBuffer1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| J_TPO indicatop |
//+------------------------------------------------------------------+
int start()
{
//int limit;
//int counted_bars=IndicatorCounted();
//---- check for possible errors
//if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
//if(counted_bars>0) counted_bars--;
//limit=Bars-counted_bars;
//---- main loop
double f0, f8, f10, f18, f20, f28, f30, f40, k,
var14, var18, var1C, var20, var24, shift, value;
int f38, f48, var6, var12, varA, varE;
double arr0[300], arr1[300], arr2[300], arr3[300];
//f38=0;
for(int i=Bars-Len-100; i>=0; i--)
{
var14=0;
var1C=0;
if(f38==0)
{
f38=1;
f40=0;
if (Len-1>= 2) f30=Len-1;
else f30=2;
f48=f30+1;
f10=Close[i];
arr0[f38]=Close[i];
k=f48;
f18=12/(k * (k - 1) * (k + 1));
f20=(f48 + 1) * 0.5;
}
else
{
if (f38<=f48) f38=f38 + 1;
else f38=f48 + 1;
f8=f10;
f10=Close[i];
if (f38 > f48)
{
for(var6=2; var6<=f48; var6++) arr0[var6-1]=arr0[var6];
arr0[f48]=Close[i];
}
else arr0[f38]=Close[i];
if ((f30>=f38) && (f8!=f10)) f40=1;
if ((f30==f38) && (f40==0)) f38=0;
}
if (f38>=f48)
{
for(varA=1; varA<=f48; varA++)
{
arr2[varA]=varA;
arr3[varA]=varA;
arr1[varA]=arr0[varA];
}
for(varA=1; varA<=(f48-1); varA++)
{
var24=arr1[varA];
var12=varA;
var6=varA + 1;
for(var6=varA+1; var6<=f48; var6++)
{
if (arr1[var6] < var24)
{
var24=arr1[var6];
var12=var6;
}
}
var20=arr1[varA];
arr1[varA]=arr1[var12];
arr1[var12]=var20;
var20=arr2[varA];
arr2[varA]=arr2[var12];
arr2[var12]=var20;
}
varA=1;
while(f48 > varA)
{
var6=varA + 1;
var14=1;
var1C=arr3[varA];
while(var14!=0)
{
if (arr1[varA]!=arr1[var6])
{
if ((var6 - varA) > 1)
{
var1C=var1C/(var6 - varA);
varE=varA;
for(varE=varA; varE<=(var6-1); varE++)
arr3[varE]=var1C;
}
var14=0;
}
else
{
var1C=var1C + arr3[var6];
var6=var6 + 1;
}
}
varA=var6;
}
var1C=0;
for(varA=1; varA<=f48; varA++)
var1C=var1C + (arr3[varA] - f20) * (arr2[varA] - f20);
//----
var18=f18 * var1C;
}
else
var18=0;
//----
value=var18;
if (value==0) value=0.00001;
//----
ExtMapBuffer1[i]=value;
}
//---- done
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
---