Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
SumLogSample
//+------------------------------------------------------------------+
//| SumLogSample.mq4 |
//| Igore |
//| http://forum.alpari-idc.ru/index.php |
//+------------------------------------------------------------------+
#property copyright "Igore"
#property link "http://forum.alpari-idc.ru/index.php"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
extern bool revers=false;
double A1=1,A2=1,A3=1,A4=1;
int N;// ïåðèîä
double IndexBuffer[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
int beginBar;
double sign;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
int per=Period();
//---- indicators
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,IndexBuffer);
SetIndexBuffer(1,ExtMapBuffer1);
SetIndexBuffer(2,ExtMapBuffer2);
SetIndexBuffer(3,ExtMapBuffer3);
SetIndexBuffer(4,ExtMapBuffer4);
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexEmptyValue(2,0.0);
SetIndexEmptyValue(3,0.0);
SetIndexEmptyValue(4,0.0);
SetIndexLabel(0,"USD Index");
IndicatorShortName("Index USD Sample("+N+")");
switch (per)
{
case 15: {N=32; break;}
case 30: {N=16; break;}
case 60: {N=24; break;}
case 240: {N=30; break;}
case 1440: {N=22;break;}
default: N=0;
}
IndicatorShortName("Index USD Sample("+N+")");
if (revers) sign=-1; else sign=1;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
int i,limit,limit1,Bars1,Bars2,Bars3,Bars4;
//if (Bars>beginBar)
if (N==0)
{
Alert("Ñìåíèòå òàéì-ôðåéì");
return;
}
if (counted_bars==0)
{
Bars1=iBars("EURUSD",Period())-1;
Bars2=iBars("GBPUSD",Period())-1;
Bars3=iBars("USDJPY",Period())-1;
Bars4=iBars("AUDUSD",Period())-1;
beginBar=MathMin(MathMin(Bars1,Bars2),MathMin(Bars3,Bars4));
limit=MathMin(Bars-1,beginBar);
limit1=limit-N;
}
if (counted_bars>0)
{
limit=Bars-counted_bars;
limit1=limit;
}
if (counted_bars<0) return(-1);
limit--;
for (i=limit;i>=0;i--)
{
ExtMapBuffer1[i]=-MathLog(iClose("EURUSD",Period(),i)/iClose("EURUSD",Period(),i+1));
ExtMapBuffer2[i]=-MathLog(iClose("GBPUSD",Period(),i)/iClose("GBPUSD",Period(),i+1));
ExtMapBuffer3[i]=MathLog(iClose("USDJPY",Period(),i)/iClose("USDJPY",Period(),i+1));
ExtMapBuffer4[i]=-MathLog(iClose("AUDUSD",Period(),i)/iClose("AUDUSD",Period(),i+1));
}
for (i=limit1;i>=0;i--)
{
IndexBuffer[i]=sign*(A1*iMAOnArray(ExtMapBuffer1,0,N,0,MODE_SMA,i)+
A2*iMAOnArray(ExtMapBuffer2,0,N,0,MODE_SMA,i)+
A3*iMAOnArray(ExtMapBuffer3,0,N,0,MODE_SMA,i)+
A4*iMAOnArray(ExtMapBuffer4,0,N,0,MODE_SMA,i))*N*1000;
//if (i==0) Print(IndexBuffer[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
---