Miscellaneous
0
Views
0
Downloads
0
Favorites
spreadmonitor
//+------------------------------------------------------------------+
//| SpredMonitor.mq4 |
//| Copyright 2015, Tor |
//| http://www.einvestor.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Tor"
#property link "http://www.einvestor.ru"
#property version "1.00"
#property strict
string ValPar[29];
bool OpeningCandles=true; // Work at the opening of the candles
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
ValPar[0] = Symbol();
ValPar[1] = "EURUSD";
ValPar[2] = "USDJPY";
ValPar[3] = "EURJPY";
ValPar[4] = "GBPUSD";
ValPar[5] = "USDCHF";
ValPar[6] = "USDCAD";
ValPar[7] = "AUDUSD";
ValPar[8] = "NZDUSD";
ValPar[9] = "GBPCHF";
ValPar[10] = "GBPJPY";
ValPar[11] = "EURAUD";
ValPar[12] = "EURCHF";
ValPar[13] = "EURGBP";
ValPar[14] = "EURCAD";
ValPar[15] = "EURNZD";
ValPar[16] = "CADJPY";
ValPar[17] = "GBPAUD";
ValPar[18] = "GBPCAD";
ValPar[19] = "GBPNZD";
ValPar[20] = "CHFJPY";
ValPar[21] = "AUDCAD";
ValPar[22] = "AUDJPY";
ValPar[23] = "AUDCHF";
ValPar[24] = "AUDNZD";
ValPar[25] = "CADCHF";
ValPar[26] = "NZDCHF";
ValPar[27] = "NZDCAD";
ValPar[28] = "NZDJPY";
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
static datetime nt=0; static bool alertTF=false;
static int MinSpread[29];
static int MaxSpread[29];
if(OpeningCandles){ if(Time[0]==nt){ return; } }
nt=Time[0];
if(_Period>1)
{
Alert("Please change TF to M1");
if(alertTF){ return; }
alertTF=true;
return;
}
for(int x=1; x<=28; x++)
{
int spred=(int)MarketInfo(ValPar[x],MODE_SPREAD);
if(MinSpread[x]==0){ MinSpread[x]=spred; }
if(MaxSpread[x]==0){ MaxSpread[x]=spred; }
if(MinSpread[x]>spred){ MinSpread[x]=spred; }
if(MaxSpread[x]<spred){ MaxSpread[x]=spred; }
}
if(MinSpread[1]<0.00000001 || (MinSpread[1]>0 && Minute()==58) || (MinSpread[1]>0 && Minute()==28))
{
/* save that had accumulated in the log */
string stroka=IntegerToString(Day())+"."+IntegerToString(Month())+"."+IntegerToString(Year())+"_"+IntegerToString(Hour())+"."+IntegerToString(Minute())+"|";
for(int x2=1; x2<=28; x2++)
{
stroka=stroka+""+ValPar[x2]+"="+IntegerToString(MinSpread[x2])+":"+IntegerToString(MaxSpread[x2])+"|";
}
int file_handle=FileOpen("spread.txt",FILE_TXT|FILE_READ|FILE_WRITE);
if(file_handle!=INVALID_HANDLE)
{
FileSeek(file_handle,0,SEEK_END);
FileWriteString(file_handle,stroka+"\r\n");
FileClose(file_handle);
}
/* reset data */
ArrayInitialize(MinSpread,0); ArrayInitialize(MaxSpread,0);
}
return;
}
//+------------------------------------------------------------------+
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
---