Miscellaneous
2
Views
0
Downloads
0
Favorites
i-Spread3
//+----------------------------------------------------------------------------+
//| i-Spread.mq4 |
//| |
//| Êèì Èãîðü Â. aka KimIV |
//| http://www.kimiv.ru |
//| |
//+----------------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link "http://www.kimiv.ru"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_width1 1
#property indicator_color2 Green
#property indicator_width2 1
#property indicator_color3 Blue
#property indicator_width3 1
//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ----------------------------------------+
extern bool WriteInFile = False; // Çàïèñûâàòü â ôàéë
extern string FileName = ""; // Èìÿ ôàéëà
//------- Ãëîáàëüíûå ïåðåìåííûå èíäèêàòîðà ------------------------------------+
double maxH1,maxH4,maxD1,prevSpread;
double minH1,minH4,minD1;
int prevH1,prevH4,prevD1;
//------- Áóôåðû èíäèêàòîðà ---------------------------------------------------+
double buf0[],buf1[],buf2[];
//+----------------------------------------------------------------------------+
//| |
//| ÏÐÅÄÎÏÐÅÄÅ˨ÍÍÛÅ ÔÓÍÊÖÈÈ |
//| |
//+----------------------------------------------------------------------------+
//| Custom indicator initialization function |
//+----------------------------------------------------------------------------+
void init()
{
IndicatorDigits(2);
SetIndexBuffer(0,buf0);
SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexStyle(0,DRAW_LINE);
SetIndexLabel(0,"Max");
SetIndexBuffer(1,buf1);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexStyle(1,DRAW_LINE);
SetIndexLabel(1,"Current");
SetIndexBuffer(2,buf2);
SetIndexEmptyValue(2,EMPTY_VALUE);
SetIndexStyle(2,DRAW_LINE);
SetIndexLabel(2,"Min");
}
//+----------------------------------------------------------------------------+
//| Custom indicator iteration function |
//+----------------------------------------------------------------------------+
void start()
{
double sp=MarketInfo(Symbol(),MODE_SPREAD);
string st;
buf1[0]=sp;
if(buf0[0]==EMPTY_VALUE) buf0[0]=sp;
if(sp > buf0[0]) buf0[0]=sp;
if(sp < buf2[0]) buf2[0]=sp;
if(prevH1<iTime(NULL,PERIOD_H1,0)) { maxH1=sp; minH1=sp; }
prevH1=iTime(NULL,PERIOD_H1,0);
if(maxH1<sp) maxH1=sp;
if(minH1>sp) minH1=sp;
if(prevH4<iTime(NULL,PERIOD_H4,0)) { maxH4=sp; minH4=sp; }
prevH4=iTime(NULL,PERIOD_H4,0);
if(maxH4<sp) maxH4=sp;
if(minH4>sp) minH4=sp;
if(prevD1<iTime(NULL,PERIOD_D1,0)) { maxD1=sp; minD1=sp; }
prevD1=iTime(NULL,PERIOD_D1,0);
if(maxD1<sp) maxD1=sp;
if(minD1>sp) minD1=sp;
st=StringConcatenate("Ìàêñèìóì çà ïîñëåäíèé H1 = ",DoubleToStr(maxH1,2),"\n"
,"Ìàêñèìóì çà ïîñëåäíèé H4 = ",DoubleToStr(maxH4,2),"\n"
,"Ìàêñèìóì çà ïîñëåäíèé D1 = ",DoubleToStr(maxD1,2),"\n"
,"Òåêóùèé ñïðýä = ",DoubleToStr(sp,2),"\n"
,"Ìèíèìóì çà ïîñëåäíèé D1 = ",DoubleToStr(minD1,2),"\n"
,"Ìèíèìóì çà ïîñëåäíèé H4 = ",DoubleToStr(minH4,2),"\n"
,"Ìèíèìóì çà ïîñëåäíèé H1 = ",DoubleToStr(minH1,2),"\n"
);
Comment(st);
if(WriteInFile)
{
if(prevSpread!=sp)
{
if(StringLen(FileName)==0) FileName="spr_"+StringLower(Symbol())+"_"+GetNameTF()+".csv";
st=StringConcatenate(TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),
";",DoubleToStr(sp,2));
WritingLineInFile(FileName,st);
}
}
prevSpread=sp;
}
//+----------------------------------------------------------------------------+
//| |
//| ÏÎËÜÇÎÂÀÒÅËÜÑÊÈÅ ÔÓÍÊÖÈÈ |
//| |
//+----------------------------------------------------------------------------+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Âåðñèÿ : 01.09.2005 |
//| Îïèñàíèå : Âîçâðàùàåò íàèìåíîâàíèå òàéìôðåéìà |
//+----------------------------------------------------------------------------+
//| Ïàðàìåòðû: |
//| TimeFrame - òàéìôðåéì (êîëè÷åñòâî ñåêóíä) (0 - òåêóùèé ÒÔ) |
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0)
{
if(TimeFrame==0) TimeFrame=Period();
switch(TimeFrame)
{
case PERIOD_M1: return("M1");
case PERIOD_M5: return("M5");
case PERIOD_M15: return("M15");
case PERIOD_M30: return("M30");
case PERIOD_H1: return("H1");
case PERIOD_H4: return("H4");
case PERIOD_D1: return("Daily");
case PERIOD_W1: return("Weekly");
case PERIOD_MN1: return("Monthly");
default: return("Unknown Period");
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Âåðñèÿ : 01.09.2005 |
//| Îïèñàíèå : Âîçâðàùàåò ñòðîêó â íèæíåì ðåãèñòðå |
//+----------------------------------------------------------------------------+
string StringLower(string s)
{
int c,i,k=StringLen(s),n;
for(i=0; i<k; i++)
{
n=0;
c=StringGetChar(s, i);
if(c>64 && c<91) n=c+32; // A-Z -> a-z
if(c>191 && c<224) n=c+32; // À-ß -> à-ÿ
if(c==168) n=184; // ¨ -> ¸
if(n>0) s=StringSetChar(s,i,n);
}
return(s);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Âåðñèÿ : 01.09.2005 |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Çàïèñü ñòðîêè â ôàéë |
//| Ïàðàìåòðû: |
//| FileName - èìÿ ôàéëà |
//| text - ñòðîêà |
//+----------------------------------------------------------------------------+
void WritingLineInFile(string FileName,string text)
{
int file_handle=FileOpen(FileName,FILE_READ|FILE_WRITE," ");
if(file_handle>0)
{
FileSeek(file_handle,0,SEEK_END);
FileWrite(file_handle,text);
FileClose(file_handle);
}
}
//+----------------------------------------------------------------------------+
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
---