spreadmonitor

Author: Copyright 2015, Tor
Miscellaneous
It issuies visual alerts to the screenUses files from the file systemIt writes information to file
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---