TE
Spread recorder
08 May 2014, 17:38
I found that MT4 has a very useful indicator named "Spread recorder". This indicator will record spread in a text file when we attach it to selected chart.
Detail : http://www.forexfactory.com/showthread.php?t=195290
MQL4 code for reference
#property copyright "Zen_Leow"
#property link ""
#property indicator_chart_window
#include <stdlib.mqh>
#include <stderror.mqh>
string msg = "";
double CustomSpread = 0;
double LastKnownSpread = 0;
int PipFactor = 1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
// Cater for fractional pips
if (Digits == 3 || Digits == 5)
{
PipFactor = 10;
}
GetSpread();
msg = "";
WriteToLogFile(msg);
LastKnownSpread = CustomSpread;
WriteMessage();
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
void WriteMessage()
{
msg = "Ask: "+DoubleToStr(Ask,Digits)+" | Bid: "+DoubleToStr(Bid,Digits)+" | Spread: "+DoubleToStr(CustomSpread,2)+" pips";
WriteToLogFile(msg);
}
void GetSpread()
{
CustomSpread = (MarketInfo(Symbol(),MODE_SPREAD)) / PipFactor;
}
void WriteToLogFile(string input)
{
string filename = "Spread_Recording/"+Symbol()+"-Spread_Recorder-"+Day()+"-"+Month()+"-"+Year()+".log";
input = TimeHour(TimeCurrent())+":"+TimeMinute(TimeCurrent())+":"+TimeSeconds(TimeCurrent())+" - "+input;
int handle = FileOpen(filename,FILE_READ|FILE_WRITE);
if (handle>1)
{
FileSeek(handle, 0, SEEK_END); // go to end of file
FileWrite(handle, input);
FileClose(handle);
}
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//----
GetSpread();
if (CustomSpread != LastKnownSpread)
{
WriteMessage();
}
LastKnownSpread = CustomSpread;
//----
return(0);
}
//+------------------------------------------------------------------+
Can you guys write the same indicator for cTrader?
Many thanks!
