Вернее не исходники а функции работающие непосредственно с истор. файлами.
В скрипте period_convertor показана вся работа с файлами hst.
почитайте https://www.mql5.com/ru/articles/81 неплозая статья, где указаны реализации вышеперечисленных ф-ций средствами MQL5, по сути Си++, а формат файла .hst и в кодобазе и в сети есть
Это все понятно, но чтобы не писать отлаживать думал уже где-то лежит.
Пока дошел до сих пор (думал будет сложнее) Спасиб.
int handle.iBars; int handle.iOpen; int start(){ Alert("iOpen(0,0,0) "+iOpen(0,0,0)); Alert("iOpen_(0,0,0) "+iOpen_(0,0,0)); Alert("iLow(0,0,0) "+iLow(0,0,0)); Alert("iLow_(0,0,0) "+iLow_(0,0,0)); } int iBars_( string symbol, int timeframe){ if(symbol=="0"||symbol=="")symbol=Symbol(); if(timeframe==0)timeframe=Period(); string FileName = symbol + timeframe + ".hst"; int handle.iBars = FileOpenHistory(FileName, FILE_BIN|FILE_READ); int kolvo_barov=(FileSize(handle.iBars)-148)/44; FileClose(handle.iBars); return (kolvo_barov); } //OLHCV //******************************************************************************************** double iOpen_( string symbol, int timeframe, int shift) { if(symbol=="0"||symbol=="")symbol=Symbol(); if(timeframe==0)timeframe=Period(); string FileName = symbol + timeframe + ".hst"; int handle.iOpen = FileOpenHistory(FileName, FILE_BIN|FILE_READ); FileSeek(handle.iOpen, 148, SEEK_SET); //смещаем от начала на 148байт int kolvo_barov=(FileSize(handle.iOpen)-148)/44; if(kolvo_barov<shift)return(0); FileSeek(handle.iOpen, -44*(1+shift), SEEK_END); //смещаем от текущего положения на FileSeek(handle.iOpen, 4, SEEK_CUR); //смещаем от текущего положения на double dou=FileReadDouble(handle.iOpen,DOUBLE_VALUE); FileClose(handle.iOpen); return(dou); } //******************************************************************************************** double iLow_( string symbol, int timeframe, int shift) { if(symbol=="0"||symbol=="")symbol=Symbol(); if(timeframe==0)timeframe=Period(); string FileName = symbol + timeframe + ".hst"; int handle.iLow = FileOpenHistory(FileName, FILE_BIN|FILE_READ); FileSeek(handle.iLow, 148, SEEK_SET); //смещаем от начала на 148байт int kolvo_barov=(FileSize(handle.iLow)-148)/44; if(kolvo_barov<shift)return(0); FileSeek(handle.iLow, -44*(1+shift), SEEK_END); //смещаем от текущего положения на FileSeek(handle.iLow, 12, SEEK_CUR); //смещаем от текущего положения на double dou=FileReadDouble(handle.iLow,DOUBLE_VALUE); FileClose(handle.iLow); return(dou); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Встречал ли кто исходник iBars, iOpen,iBarShift...
вроде такого
Спасибо, не могу найти.