Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Оцени его работу в терминале MetaTrader 5
Выгрузка котировок (баров D1, W1, MN1) по всем инструментам в файлы csv. Uploading quotes (bars D1, W1, MN1) for all instruments to csv files - скрипт для MetaTrader 4
- Просмотров:
- 2297
- Рейтинг:
- Опубликован:
- 2020.09.26 22:03
- Обновлен:
- 2020.09.27 10:14
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Код:
Консоль:
Папки:
Файлы:
Бары в csv файле:
Код:
#property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string FolderName = "Bars"; // имя папки для сохранения баров int Symbols_Total = SymbolsTotal(false); // кол-во символов (true – только символы в MarketWatch, false - возвращается общее количество всех символов) Print("--> Symbols_Total = ", Symbols_Total); // печать в консоль // загрузка истории ResetLastError(); for(int i=0; i<Symbols_Total; i++) // перебор всех инструментов { MqlRates rates[]; string Symbol_Name = SymbolName(i, false); // имя символа CopyRates( Symbol_Name, PERIOD_MN1, 0, iBars(Symbol_Name, PERIOD_MN1), rates ); CopyRates( Symbol_Name, PERIOD_W1, 0, iBars(Symbol_Name, PERIOD_W1), rates ); CopyRates( Symbol_Name, PERIOD_D1, 0, iBars(Symbol_Name, PERIOD_D1), rates ); if( _LastError == ERR_HISTORY_WILL_UPDATED ) { i=i-1; //Print("--> Ожидание истории (ERR_HISTORY_WILL_UPDATED): Symbol - ", Symbol_Name ); ResetLastError(); } } // создание файлов для все инструментов for(int i=0; i<Symbols_Total; i++) // перебор всех инструментов { string Symbol_Name = SymbolName(i, false); // имя символа string FileName; // имя файла int filehandle; // хендел файла if( _LastError == ERR_HISTORY_WILL_UPDATED) Print("--> Ожидание истории - ERR_HISTORY_WILL_UPDATED" ); // Месяц ========================================================================================= ResetLastError(); FileName = FolderName+"\\MN1\\"+Symbol_Name+".csv"; // имя файла, в который будем писать filehandle = FileOpen(FileName, FILE_WRITE|FILE_CSV); // открываем файл if(filehandle != INVALID_HANDLE) { FileWrite(filehandle, // названия столбцов "№", "Time", "Open", "High", "Low", "Close", "Volume"); for(int j=0; j<iBars(Symbol_Name, PERIOD_MN1); j++) // перебор всех бавров Месяц1 { FileWrite(filehandle, // пишем параметры бара в файл j, iTime(Symbol_Name, PERIOD_MN1, j), ReplacePoint(iOpen(Symbol_Name, PERIOD_MN1, j)), ReplacePoint(iHigh(Symbol_Name, PERIOD_MN1, j)), ReplacePoint(iLow(Symbol_Name, PERIOD_MN1, j)), ReplacePoint(iClose(Symbol_Name, PERIOD_MN1, j)), ReplacePoint(iVolume(Symbol_Name, PERIOD_MN1, j)) ); } FileClose(filehandle); // закрываем файл //Print("--> ", FileName, " - OK"); } else Print("--> Операция FileOpen(", FileName, ") неудачна, ошибка - ", _LastError); // Неделя ========================================================================================= ResetLastError(); FileName = FolderName+"\\W1\\"+Symbol_Name+".csv"; // имя файла, в который будем писать filehandle = FileOpen(FileName, FILE_WRITE|FILE_CSV); // открываем файл if(filehandle != INVALID_HANDLE) { FileWrite(filehandle, // названия столбцов "№", "Time", "Open", "High", "Low", "Close", "Volume"); for(int j=0; j<iBars(Symbol_Name, PERIOD_W1); j++) // перебор всех бавров Неделя1 { FileWrite(filehandle, // пишем параметры бара в файл j, iTime(Symbol_Name, PERIOD_W1, j), ReplacePoint(iOpen(Symbol_Name, PERIOD_W1, j)), ReplacePoint(iHigh(Symbol_Name, PERIOD_W1, j)), ReplacePoint(iLow(Symbol_Name, PERIOD_W1, j)), ReplacePoint(iClose(Symbol_Name, PERIOD_W1, j)), ReplacePoint(iVolume(Symbol_Name, PERIOD_W1, j)) ); } FileClose(filehandle); // закрываем файл //Print("--> ", FileName, " - OK"); } else Print("--> Операция FileOpen(", FileName, ") неудачна, ошибка - ", _LastError); // День ========================================================================================= ResetLastError(); FileName = FolderName+"\\D1\\"+Symbol_Name+".csv"; // имя файла, в который будем писать filehandle = FileOpen(FileName, FILE_WRITE|FILE_CSV); // открываем файл if(filehandle != INVALID_HANDLE) { FileWrite(filehandle, // названия столбцов "№", "Time", "Open", "High", "Low", "Close", "Volume"); for(int j=0; j<iBars(Symbol_Name, PERIOD_D1); j++) // перебор всех бавров День1 { FileWrite(filehandle, // пишем параметры бара в файл j, iTime(Symbol_Name, PERIOD_D1, j), ReplacePoint(iOpen(Symbol_Name, PERIOD_D1, j)), ReplacePoint(iHigh(Symbol_Name, PERIOD_D1, j)), ReplacePoint(iLow(Symbol_Name, PERIOD_D1, j)), ReplacePoint(iClose(Symbol_Name, PERIOD_D1, j)), ReplacePoint(iVolume(Symbol_Name, PERIOD_D1, j)) ); } FileClose(filehandle); // закрываем файл //Print("--> ", FileName, " - OK"); } else Print("--> Операция FileOpen(", FileName, ") неудачна, ошибка - ", _LastError); } ResetLastError(); Print("--> Скрипт - ОК"); } //+------------------------------------------------------------------+ string ReplacePoint( double in ) { string s = DoubleToString(in); StringReplace( s, ".", ","); return s; }
CORR
Скрипт для подбора коррелирующих пар
gbpusd M5 571 17.09.20Exported on 17.09.2020 from Forex Strategy Builder Professional, v3.8.8
Time Buy Sell
Советник открывает противоположные позиции в заданное времяю
Price BidОтображение цены Bid.