Советники: Currency v1.0

 

Currency v1.0:

Советник составляет список всех валютных пар, которыми позволяет торговать ДЦ

Author: toxa

 

Вот функция, вытаскивает из файла symbols.raw все символы представляемые ДЦ. Идея kiasa ('SymbolList: новые идеи...'), реализация моя :).

Пользуйтесь и не страдайте фигней ;))

#import "kernel32.dll"
   int _lopen  (string path, int of);
   int _llseek (int handle, int offset, int origin);
   int _lread  (int handle, string buffer, int bytes);
   int _lclose (int handle);
#import
string Symbols[];                                                      // массив в котором будут хранится символы
//+------------------------------------------------------------------+
//| MarketInfoToSymbols()                                            |
//| Назначение:                                                      |
//|     Записывает набор символов представляемых ДЦ в глобал. массив |
//|     Symbols[], пришлось сделать через промежуточный файл, иначе  |
//|     возникала проблема http://forum.mql4.com/ru/23603            |
//+------------------------------------------------------------------+
void MarketInfoToSymbols() {
   int i,handle,handleset,size;
   string symb="symbols     ",path;
//--------------------------------------
   size=1936;
   path=StringConcatenate(TerminalPath(),"\\history\\",AccountServer(),"\\symbols.raw");
   handle=_lopen(path,0);
   if(handle<0) {
      Print("Ошибка открытия файла symbols.raw : ",GetLastError());
      return;
   }
   handleset=FileOpen("quoting.set",FILE_READ | FILE_WRITE);
   if(handleset<0) {
      Print("Ошибка открытия файла quoting.set : ",GetLastError());
      return;
   }
   nsymb=_llseek(handle,0,2)/size;
   for(i=0;i<nsymb;i++){
      _llseek(handle,i*size,0);
      _lread(handle,symb,12);
      FileWrite(handleset,symb);
   }
   _lclose(handle);
   if(!FileSeek(handleset,0,SEEK_SET)) {
      Print("Курсор не сместился в начало файла quoting.set из-за ошибки: ",GetLastError());
   }
   ArrayResize(Symbols,nsymb);
   for(i=0;i<nsymb;i++){
      Symbols[i]=FileReadString(handleset);
   }
   FileClose(handleset);
   FileDelete("quoting.set");
   return;
}
//+------------------------------------------------------------------+
 

Согласен, это решение лучше, не знал про symbols.raw...
Спасибо =)

 
Talex:

Вот функция, вытаскивает из файла symbols.raw все символы представляемые ДЦ. Идея kiasa ('SymbolList: новые идеи...'), реализация моя :).

Эту задачу можно реализовать и на "чистом" MQL без применения функций API. Пример реализации показан здесь.

 
Ilnur:
Talex:

Вот функция, вытаскивает из файла symbols.raw все символы представляемые ДЦ. Идея kiasa ('SymbolList: новые идеи...'), реализация моя :).

Эту задачу можно реализовать и на "чистом" MQL без применения функций API. Пример реализации показан здесь.


Да я уже видел и заменил в своей библиотеке эту функцию на Вашу, большое спасибо.

Причина обращения: