Lavoro terminato
Specifiche
Hi all, the simple script im currently using has the below functions Ontick:
- Takes the Bid or Ask price of the current chart pair.
- Opens/Creates a new bin file.
- Stores that Bid or Ask price at the BOTTOM of the bin file
- Reopens the bin file to read it
- Stores it into an array in order to be manipulated
I would like to be able to limit this file, because obviously right now the file just keeps getting bigger, to a certain number of lines (circular buffer?)
So that at the current tick, and lets say maxsize = 5, the file looks like this:
-E, D, C, B, A (A being the oldest bid/ask price stored at the end of the line)
on next tick
-F, E, D, C, B (A deleted and F inserted as the most recent tick price)
The code is the below:
void OnTick() { double PriceDiff = MarketInfo("AUDCAD",(MODE_ASK)); int fileHandle2 = FileOpen("Myfile.bin",FILE_BIN|FILE_READ | FILE_WRITE); FileSeek(fileHandle2, 0, SEEK_END); // Write at the end of the file. double data2 = PriceDiff; FileWriteDouble(fileHandle2,data2); FileClose(fileHandle2); double arr[]; string path= ""; ResetLastError(); int file_handle=FileOpen("Myfile.bin",FILE_READ|FILE_BIN); if(file_handle!=INVALID_HANDLE) { FileReadArray(file_handle,arr); //--- receive the array size int size=ArraySize(arr); //--- print data from the array for(int i=0;i<size;i++); Comment("Total data = ",size); //--- close the file FileClose(file_handle);
I hope the explanation is clear enough, if not we can discuss further.
Thanks in advance
Chris