Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай интересные темы на форуме по автоматическому трейдингу!
MetaQuotes Software Corp.
Модератор
181164
MetaQuotes Software Corp. 2009.07.15 12:14 

Currency v1.0:

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

Author: toxa

Александр
1081
Александр 2009.07.15 21:02  

Вот функция, вытаскивает из файла 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;
}
//+------------------------------------------------------------------+
toxa
69
toxa 2009.07.15 21:10  

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

Ilnur Iksanov
5756
Ilnur Iksanov 2009.08.09 14:02  
Talex:

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

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

Александр
1081
Александр 2009.08.10 10:32  
Ilnur:
Talex:

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

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


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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий