Проще переписать код в МТ5
Проблема в том что готового решения данной задачи нет. Надо всё равно писать шедулер по загрузке и выгрузке.
Исходный код совы имеется?
Проблема в том что готового решения данной задачи нет. Надо всё равно писать шедулер по загрузке и выгрузке.
Исходный код совы имеется?
Шедулер по примерам смогу допилить, сам скриптик загрузки бы еще найти.
Сова -это что?индикатор -гармоничные паттерны ZUP, скрипт выгрузка от Юраса YURAZ_CreaHistorCSVFromMT5forMT4.mq5
Сова - советник!
Индюк - индикатор!
Это такой сленг у пользователей МТ.
Так у вас индикатор или советник не работает на МТ5?
Если есть исходный код то проще переписать на МТ5. Ну если только там не супер навороченный код на ООП-е. Если разработчик не может перевести свой код с МТ4 на МТ5 гнать такого разработчика.
Если данный код YURAZ_CreaHistorCSVFromMT5forMT4.mq5 в свободном доступе то я гляну на него и подумаю что можно с этим сделать. Но сама идея с выгрузкой и загрузкой очень кривая.
Сова - советник!
Индюк - индикатор!
Это такой сленг у пользователей МТ.
Так у вас индикатор или советник не работает на МТ5?
Если есть исходный код то проще переписать на МТ5. Ну если только там не супер навороченный код на ООП-е. Если разработчик не может перевести свой код с МТ4 на МТ5 гнать такого разработчика.
Если данный код YURAZ_CreaHistorCSVFromMT5forMT4.mq5 в свободном доступе то я гляну на него и подумаю что можно с этим сделать. Но сама идея с выгрузкой и загрузкой очень кривая.
Таким разработчикам только благодарность что делятся с людьми "несведущими" бесплатно своими наработками .
С позволения Юраса выложу скрипт выгрузки, сам скриптик в свободном доступе
//+------------------------------------------------------------------+
//| YURAZ_CreaHistorCSVFromMT5forMT4.mq5 |
//| Copyright 2010, MetaQuotes Software Corp. (C) & YURAZ |
//| www.masterforex-v.org |
//+------------------------------------------------------------------+
//
// Создаем CSV файл истории M1, чтобы прогрузить в мт4.
// к сожалению в МТ4 в истории по некоторым парам, например в 2010 году,
// существуют дырки в истории котировок в мае 2010 в Июле Августе 2010
// А в базе котировок MT5 наблюдается качественная история
#property copyright "Copyright 2010, MetaQuotes Software Corp. & (C) YURAZ"
#property link "www.masterforex-v.org"
#property version "1.00"
#include <Files\File.mqh>
#include <Files\FileTxt.mqh>
string ExtFileName; // ="XXXXXX_PERIOD.CSV";
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
CFileTxt *File;
MqlRates rates_array[];
string sSymbol=Symbol();
string sPeriod;
PeriodToStr(Period(),sPeriod);
Comment("РАБОТАЮ... ждите... ");
// формируем имя файла EURUSD1 например
ExtFileName=sSymbol;
StringConcatenate(ExtFileName,sSymbol,"_",sPeriod,".CSV");
ArraySetAsSeries(rates_array,true);
int iMaxBar=TerminalInfoInteger(TERMINAL_MAXBARS);
string format="%G,%G,%G,%G,%d";
int iCod=CopyRates(sSymbol,Period(),0,iMaxBar,rates_array);
if(iCod>0)
{
File=new CFileTxt;
if(File==NULL)
{
//--- ошибка создания класса
printf("%s (%4d): creating error",__FILE__,__LINE__);
return;
}
// Открыть файл
File.Open(ExtFileName,FILE_WRITE|FILE_COMMON,9);
for(int i=iCod-1; i>=0; i--)
{
// формирование строки формата
// 2009.01.05,12:49,1.36770,1.36780,1.36760,1.36760,8
string sOut=StringFormat("%s",TimeToString(rates_array[i].time,TIME_DATE));
sOut=sOut+","+TimeToString(rates_array[i].time,TIME_MINUTES);
sOut=sOut+","+StringFormat(format,
rates_array[i].open,
rates_array[i].high,
rates_array[i].low,
rates_array[i].close,
rates_array[i].tick_volume);
sOut=sOut+"\n";
File.WriteString(sOut);
}
File.Close();
}
Comment("OK. готово... ");
}
//+------------------------------------------------------------------+
//| Конвертацмя периода в строку |
//+------------------------------------------------------------------+
bool PeriodToStr(ENUM_TIMEFRAMES period,string &strper)
{
bool res=true;
//---
switch(period)
{
case PERIOD_MN1 : strper="MN1"; break;
case PERIOD_W1 : strper="W1"; break;
case PERIOD_D1 : strper="D1"; break;
case PERIOD_H1 : strper="H1"; break;
case PERIOD_H2 : strper="H2"; break;
case PERIOD_H3 : strper="H3"; break;
case PERIOD_H4 : strper="H4"; break;
case PERIOD_H6 : strper="H6"; break;
case PERIOD_H8 : strper="H8"; break;
case PERIOD_H12 : strper="H12"; break;
case PERIOD_M1 : strper="M1"; break;
case PERIOD_M2 : strper="M2"; break;
case PERIOD_M3 : strper="M3"; break;
case PERIOD_M4 : strper="M4"; break;
case PERIOD_M5 : strper="M5"; break;
case PERIOD_M6 : strper="M6"; break;
case PERIOD_M10 : strper="M10"; break;
case PERIOD_M12 : strper="M12"; break;
case PERIOD_M15 : strper="M15"; break;
case PERIOD_M20 : strper="M20"; break;
case PERIOD_M30 : strper="M30"; break;
default : res=false;
}
//---
return(res);
}
Таким разработчикам только благодарность что делятся с людьми "несведущими" бесплатно своими наработками .
С позволения Юраса выложу скрипт выгрузки, сам скриптик в свободном доступе
//+------------------------------------------------------------------+
//| YURAZ_CreaHistorCSVFromMT5forMT4.mq5 |
//| Copyright 2010, MetaQuotes Software Corp. (C) & YURAZ |
//| www.masterforex-v.org |
//+------------------------------------------------------------------+
//
// Создаем CSV файл истории M1, чтобы прогрузить в мт4.
// к сожалению в МТ4 в истории по некоторым парам, например в 2010 году,
// существуют дырки в истории котировок в мае 2010 в Июле Августе 2010
// А в базе котировок MT5 наблюдается качественная история
#property copyright "Copyright 2010, MetaQuotes Software Corp. & (C) YURAZ"
#property link "www.masterforex-v.org"
#property version "1.00"
#include <Files\File.mqh>
#include <Files\FileTxt.mqh>
string ExtFileName; // ="XXXXXX_PERIOD.CSV";
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
CFileTxt *File;
MqlRates rates_array[];
string sSymbol=Symbol();
string sPeriod;
PeriodToStr(Period(),sPeriod);
Comment("РАБОТАЮ... ждите... ");
// формируем имя файла EURUSD1 например
ExtFileName=sSymbol;
StringConcatenate(ExtFileName,sSymbol,"_",sPeriod,".CSV");
ArraySetAsSeries(rates_array,true);
int iMaxBar=TerminalInfoInteger(TERMINAL_MAXBARS);
string format="%G,%G,%G,%G,%d";
int iCod=CopyRates(sSymbol,Period(),0,iMaxBar,rates_array);
if(iCod>0)
{
File=new CFileTxt;
if(File==NULL)
{
//--- ошибка создания класса
printf("%s (%4d): creating error",__FILE__,__LINE__);
return;
}
// Открыть файл
File.Open(ExtFileName,FILE_WRITE|FILE_COMMON,9);
for(int i=iCod-1; i>=0; i--)
{
// формирование строки формата
// 2009.01.05,12:49,1.36770,1.36780,1.36760,1.36760,8
string sOut=StringFormat("%s",TimeToString(rates_array[i].time,TIME_DATE));
sOut=sOut+","+TimeToString(rates_array[i].time,TIME_MINUTES);
sOut=sOut+","+StringFormat(format,
rates_array[i].open,
rates_array[i].high,
rates_array[i].low,
rates_array[i].close,
rates_array[i].tick_volume);
sOut=sOut+"\n";
File.WriteString(sOut);
}
File.Close();
}
Comment("OK. готово... ");
}
//+------------------------------------------------------------------+
//| Конвертацмя периода в строку |
//+------------------------------------------------------------------+
bool PeriodToStr(ENUM_TIMEFRAMES period,string &strper)
{
bool res=true;
//---
switch(period)
{
case PERIOD_MN1 : strper="MN1"; break;
case PERIOD_W1 : strper="W1"; break;
case PERIOD_D1 : strper="D1"; break;
case PERIOD_H1 : strper="H1"; break;
case PERIOD_H2 : strper="H2"; break;
case PERIOD_H3 : strper="H3"; break;
case PERIOD_H4 : strper="H4"; break;
case PERIOD_H6 : strper="H6"; break;
case PERIOD_H8 : strper="H8"; break;
case PERIOD_H12 : strper="H12"; break;
case PERIOD_M1 : strper="M1"; break;
case PERIOD_M2 : strper="M2"; break;
case PERIOD_M3 : strper="M3"; break;
case PERIOD_M4 : strper="M4"; break;
case PERIOD_M5 : strper="M5"; break;
case PERIOD_M6 : strper="M6"; break;
case PERIOD_M10 : strper="M10"; break;
case PERIOD_M12 : strper="M12"; break;
case PERIOD_M15 : strper="M15"; break;
case PERIOD_M20 : strper="M20"; break;
case PERIOD_M30 : strper="M30"; break;
default : res=false;
}
//---
return(res);
}
Вы так то могли просто ссылку на скрипт в КодаБэйз дать.
https://www.mql5.com/ru/code/232
Не пробовали со своим вопросом обратиться напрямую к разработчику данного скрипта - Юре Зайцеву?
![YURAZ_CreateCSV_HistoryFile_From_MT5_For_MT4 YURAZ_CreateCSV_HistoryFile_From_MT5_For_MT4](https://c.mql5.com/36/20/yuraz-createcsv-historyfile-from.jpg)
- www.mql5.com
Вы так то могли просто ссылку на скрипт в КодаБэйз дать.
https://www.mql5.com/ru/code/232
Не пробовали со своим вопросом обратиться напрямую к разработчику данного скрипта - Юре Зайцеву?
Александр, спасибо за разъяснения.
В первую очередь интересует автоматическая загрузкой в МТ4, поэтому и спрашиваю может кто сталкивался, видел, знает.
Александр, спасибо за разъяснения.
В первую очередь интересует автоматическая загрузкой в МТ4, поэтому и спрашиваю может кто сталкивался, видел, знает.
Для автоматической загрузки пишете свой советник/индикатор/скрипт, который подменяет hst-файлы. Простой пример того, как это делается, имеется в штатном скрипте period_converter.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья, добрый вечер!
Подскажите студенту-филологу, пожалуйста, как можно попроще автоматизировать передачу графиков из из MT5 в MT4 (в mt5 не работает советник, а в mt4 нет нужного инструмента)
Сейчас выгружаю скриптиком в csv и потом руками гружу в MT4.
1.как задать шедулер выполнения скрипта выгрузки?
2.есть готовые решения для автоматической загрузки csv в mt4?
спасибо!
ссылочки приветствуются, только по теме :)