{Source code for the Easy Language interface to DT. } Vars: Directory("C:\DTTSDATA\"), 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: "C:\dttsdata\DTTS.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;