//+------------------------------------------------------------------+
//| Info_SymbolList.mq4 |
//| Copyright © 2012, Oleg Kitaev |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Oleg Kitaev"
#property link "e-mail: kit144@rbcmail.ru"
#include <WinUser32.mqh>
#include <stderror.mqh>
#include <stdlib.mqh>
#import "user32.dll"
#import "kernel32.dll"
int _lclose (int);
int _lopen (string,int);
int _llseek (int,int,int);
int _lread (int,string,int);
#import
int start()
{
bool Selected;
string SymbolsFileName;
int Offset, SymbolsNumber;
string symbolName;
//Îïðåäåëÿåì èìåíà ôàéëîâ ñ ñèìâîëàìè
if(Selected) SymbolsFileName = "symbols.sel";
else SymbolsFileName = "symbols.raw";
// Îòêðûâàåì ôàéë ñ îïèñàíèåì ñèìâîëîâ
int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
if(hFile < 0) return(-1);
// Îïðåäåëÿåì êîëè÷åñòâî ñèìâîëîâ, çàðåãèñòðèðîâàííûõ â ôàéëå
if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116; }
else { SymbolsNumber = FileSize(hFile) / 1936; Offset = 1924; }
// Ñ÷èòûâàåì ñèìâîëû èç ôàéëà
if(Selected) FileSeek(hFile, 4, SEEK_SET);
int handle=FileOpen("Orders_Total.csv",FILE_WRITE|FILE_CSV,"\t");
if(handle < 1) return(0);
else
{
// çàïèøåì çàãîëîâîê â ôàéë
FileWrite(handle,"Èìÿ Ñèìâîëà:","Ñïðýä:","Ìèíèìàëüíûé ëîò:","Çàëîã çà ìèíèìàëüíûé ëîò:","Öåíà 100 ïóíêòîâ:","Ìèíèìàëüíûé ñòîï:","Òîðãîâëÿ (Äà/Íåò):");
// Íà÷èíàåì öèêë ïåðåáîðà ñèìâîëîâ
for(int i = 0; i < SymbolsNumber; i++)
{
symbolName = FileReadString(hFile, 12);
FileSeek(hFile, Offset, SEEK_CUR);
// îïðåäåëÿåì ðàçðåøåíèå íà òðîãîâëþ
string str2;
if(MarketInfo(symbolName,MODE_TRADEALLOWED)==0)
str2="çàïðåùåíà";
else
str2="ðàçðåøåíà";
// Çàïèñûâàåì ïîëó÷åííûå ðåçóëüòàòû â ôàéë %SystemDrive%\%"Program Files"%\"TerminalPath()+AccountServer()"\experts\files\Orders_Total.csv
FileWrite(handle,symbolName,":\t",MarketInfo(symbolName,MODE_SPREAD),":\t",MarketInfo(symbolName,MODE_MINLOT),":\t",MarketInfo(symbolName,MODE_MARGINREQUIRED)*MarketInfo(symbolName,MODE_MINLOT),":\t",(MarketInfo(symbolName,MODE_TICKVALUE)*MarketInfo(symbolName,MODE_MINLOT))*100,":\t",MarketInfo(symbolName,MODE_STOPLEVEL),":\t",str2,":\t\n");
}
//Çàêðûâàåì ôàéë
FileClose(handle);
} // âîçâðàò ê íà÷àëó öèêëà ïîêà íå äîñòèãíåò êîíöàêîëè÷åñòâî ñèìâîëîâ íóëþ.
//*****************************************************************************
Print("Îáùåå ÷èñëî Ñèìâîëîâ: ", SymbolsNumber);
_lclose(hFile);
//*****************************************************************************
return;
}
Comments