This is a Tradestation easylanguage indicator that creates and update ascii data file in real time as new data appears on the Tradestation chart. Dynamic trader charting software then reads and charts these ascii file real time. Can someone help me translate this to mt5 indicator
Thanks
Vars: Directory("D:\TSDATA\"),
Interval(" "),
FileName(""),
x(0),
thisTickType(0),
ThisVolume(0),
Count(0),
IntrabarPersist LastDate(0),
IntrabarPersist LastTime(0),
barTime(0), {will force 0if daily, weekly, or monthly}
fname("");
definedllfunc: "D:\tsdata\TS.DLL",int,"SendData",float,lpstr,lpstr,lpstr,float,float,float,float,float,float,float,float;
ThisVolume = Volume;
if barnumber = 1 then
begin
if DataCompression = 0 then Interval = NumToStr(Highest(upticks + downticks,5),0);
if DataCompression = 1 then Interval = NumToStr(BarInterval,0);
if DataCompression = 2 then Interval = "Daily";
if DataCompression = 3 then Interval = "Weekly";
if DataCompression = 4 then Interval = "Monthly";
fname = getsymbolname + "_"+Interval+"."; {name & extension only}
if DataCompression = 0 then fname = fname + "dtt";
if DataCompression = 1 then fname = fname + "dti";
if DataCompression = 2 then fname = fname + "dtd";
if DataCompression = 3 then fname = fname + "dtw";
if DataCompression = 4 then fname = fname + "dtm";
FileName = Directory + fname;
Input: cf(4);
FileDelete(FileName);
FileAppend(FileName,"cf= " + NumToStr(CF,0) + newline);
if DataCompression = 0 then FileAppend(FileName,"ticks= " + Interval + NewLine);
if DataCompression = 1 then FileAppend(FileName,"min= " + Interval + NewLine);
if DataCompression > 1 then FileAppend(FileName, LeftStr(Interval,1) + NewLine);
FileAppend(FileName,"DATE TIME OPEN HIGH LOW CLOSE VOLUME" + NEWLINE);
for x = MaxBarsBack downto 1
begin
ThisVolume = iff(DataCompression =0,Upticks[x] + DownTicks[x],Volume[x]);
if DataCompression >=2 then
barTime = 0else
barTime = Time[x];
fileappend(FileName,numtostr(date[x],0) + " " + numtostr(barTime,0) + " " +
numtostr(open[x],4) + " " + numtostr(high[x],4) + " " + numtostr(low[x],4) + " " + numtostr(close[x],4) + " " +
numtostr(ThisVolume,0) + newline);
LastDate = Date; {Date & Time of last whole bar stored in file}
LastTime = barTime;
end;
end;
if DataCompression >=2 then
barTime = 0else
barTime = Time;
thisTickType = BarStatus(1); { 0 -> Open tick of bar (only for "Open Next Bar order" strategies
1 -> tick within bar
2 -> closing tick of bar
-1 -> error
}
if thisTickType = 2 then {closing tick of bar}
begin {Last Tick Of Bar, append new line to text file}
fileappend(FileName,numtostr(date,0) + " " + numtostr(barTime,0) + " " +
numtostr(open,4) + " " + numtostr(high,4) + " " + numtostr(low,4) + " " + numtostr(close,4) + " " +
numtostr(ThisVolume,0) + newline);
end;
if LastBarOnChart then
begin
if (thisTickType >= 1) then
value1 = SendData(thisTickType, GetSymbolName, Interval, fname, Date, barTime, Open, High, Low, Close, ThisVolume, OpenInt);
end;
LastDate = Date;
LastTime = barTime;
Hello guys
This is a Tradestation easylanguage indicator that creates and update ascii data file in real time as new data appears on the Tradestation chart. Dynamic trader charting software then reads and charts these ascii file real time. Can someone help me translate this to mt5 indicator
Thanks
Vars: Directory("D:\TSDATA\"), Interval(" "), FileName(""), x(0), thisTickType(0), ThisVolume(0), Count(0), IntrabarPersist LastDate(0), IntrabarPersist LastTime(0), barTime(0), {will force 0 if daily, weekly, or monthly} fname(""); definedllfunc: "D:\tsdata\TS.DLL",int,"SendData",float,lpstr,lpstr,lpstr,float,float,float,float,float,float,float,float; ThisVolume = Volume; if barnumber = 1 then begin if DataCompression = 0 then Interval = NumToStr(Highest(upticks + downticks,5),0); if DataCompression = 1 then Interval = NumToStr(BarInterval,0); if DataCompression = 2 then Interval = "Daily"; if DataCompression = 3 then Interval = "Weekly"; if DataCompression = 4 then Interval = "Monthly"; fname = getsymbolname + "_"+Interval+"."; {name & extension only} if DataCompression = 0 then fname = fname + "dtt"; if DataCompression = 1 then fname = fname + "dti"; if DataCompression = 2 then fname = fname + "dtd"; if DataCompression = 3 then fname = fname + "dtw"; if DataCompression = 4 then fname = fname + "dtm"; FileName = Directory + fname; Input: cf(4); FileDelete(FileName); FileAppend(FileName,"cf= " + NumToStr(CF,0) + newline); if DataCompression = 0 then FileAppend(FileName,"ticks= " + Interval + NewLine); if DataCompression = 1 then FileAppend(FileName,"min= " + Interval + NewLine); if DataCompression > 1 then FileAppend(FileName, LeftStr(Interval,1) + NewLine); FileAppend(FileName,"DATE TIME OPEN HIGH LOW CLOSE VOLUME" + NEWLINE); for x = MaxBarsBack downto 1 begin ThisVolume = iff(DataCompression =0,Upticks[x] + DownTicks[x],Volume[x]); if DataCompression >=2 then barTime = 0 else barTime = Time[x]; fileappend(FileName,numtostr(date[x],0) + " " + numtostr(barTime,0) + " " + numtostr(open[x],4) + " " + numtostr(high[x],4) + " " + numtostr(low[x],4) + " " + numtostr(close[x],4) + " " + numtostr(ThisVolume,0) + newline); LastDate = Date; {Date & Time of last whole bar stored in file} LastTime = barTime; end; end; if DataCompression >=2 then barTime = 0 else barTime = Time; thisTickType = BarStatus(1); { 0 -> Open tick of bar (only for "Open Next Bar order" strategies 1 -> tick within bar 2 -> closing tick of bar -1 -> error } if thisTickType = 2 then {closing tick of bar} begin {Last Tick Of Bar, append new line to text file} fileappend(FileName,numtostr(date,0) + " " + numtostr(barTime,0) + " " + numtostr(open,4) + " " + numtostr(high,4) + " " + numtostr(low,4) + " " + numtostr(close,4) + " " + numtostr(ThisVolume,0) + newline); end; if LastBarOnChart then begin if (thisTickType >= 1) then value1 = SendData(thisTickType, GetSymbolName, Interval, fname, Date, barTime, Open, High, Low, Close, ThisVolume, OpenInt); end; LastDate = Date; LastTime = barTime;