Точнее, такого вида:
--
Дата1(разделитель)Значение1(LF)
Дата2(разделитель)Значение2(LF)
...
ДатаN(разделитель)ЗначениеN(EOF)
--
Стоит задача написать индикатор для таймфрейма дневки, чтобы он брал значения из стороннего текстового файла, н-р, такого вида:
--
1.06.2010(разделитель)2.06.2010(разделитель)...
Значение1(разделитель)Значение2(разделитель)...
--
Т. о., можно было бы иметь индикаторы самых разных данных (н-р, СОТ, или опционные уровни, или еще много чего, что доступно в текстовом/табличном формате).
Как установить референцию к внешнему файлу в МТ, и как описать структуру внешнего файла в сорце индикатора, чтобы он «понимал», что откуда брать?
Заранее спасибо!
Так обычный файл в формате .csv, в чем трудности? Вот так открываем. Потом считываем строку, значения в ней должны быть разделены запятыми. Или задать другой разделитель вместо ','
string FileName = MQLInfoString(MQL_PROGRAM_NAME) + "_AllOrders" + ".ord"; int FileHandler = FileOpen(LogFileName, FILE_CSV | FILE_READ | FILE_SHARE_READ, ','); if(FileHandler == INVALID_HANDLE) Alert("Не могу открыть файл " + FileName); else { Print(FileName + " is opened"); FileSeek(FileHandler, 0, SEEK_END); }
Так обычный файл в формате .csv, в чем трудности? Вот так открываем. Потом считываем строку, значения в ней должны быть разделены запятыми. Или задать другой разделитель вместо ','
Спасибо большое. Это хоть что-то.
Я так понимаю, это лишь часть кода и надо дописывать?
Я если честно, не имею опыта в программировании.
Спасибо большое. Это хоть что-то.
Я так понимаю, это лишь часть кода и надо дописывать?
Я если честно, не имею опыта в программировании.
Да, это часть кода. Раз нет опыта, кину побольше. В предыдущем примере открыли файл .csv на чтение, но я в попыхах допустил ошибку. Вот так правильно
//+------------------------------------------------------------------+ //| TestReadCsvFile.mq4 | //| Copyright 2015, Alexey Volchanskiy | //| https://mql.gnomio.com/ - обучение программирования на MQL4, MQL5, для платформы cAlgo, Matlab | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, Alexey Volchanskiy" #property link "https://mql.gnomio.com/" #property version "1.00" #property strict #property script_show_inputs input string FileName = "EURUSD.csv"; int FileHandler = -1; void OnStart() { if(!OpenFile(FileName)) return; while(!FileIsEnding(FileHandler)) { datetime dt = FileReadDatetime(FileHandler); double bid = FileReadNumber(FileHandler); double ask = FileReadNumber(FileHandler); Print(TimeToString(dt, TIME_DATE | TIME_MINUTES | TIME_SECONDS), " ", DoubleToString(bid, Digits()), " ", DoubleToString(ask, Digits())); } FileClose(FileHandler); } bool OpenFile(string fName) { FileHandler = FileOpen(fName, FILE_CSV | FILE_READ | FILE_SHARE_READ, ','); if(FileHandler != INVALID_HANDLE) { Print(fName + " is opened"); FileSeek(FileHandler, 0, SEEK_SET); return true; } Alert("Can't open file " + fName); return false; }
Блин!!!Ну почему нельзя прикрепить файл .csv, надо обязательно зиповать!!
Файлы положить по путям
\MQL4\Scripts\TestReadCsvFile.mq4
\MQL4\Files\EURUSD.csv
Да, это часть кода. Раз нет опыта, кину побольше. В предыдущем примере открыли файл .csv на чтение, но я в попыхах допустил ошибку. Вот так правильно
Блин!!!Ну почему нельзя прикрепить файл .csv, надо обязательно зиповать!!
Файлы положить по путям
\MQL4\Scripts\TestReadCsvFile.mq4
\MQL4\Files\EURUSD.csv
Добрый вечер.
Позвольте, спросить, предназначением данного кода является открытие файла EURUSD и всё? Я расположил оба файла так, как вы указали. Но в результате выполнения скрипта у меня ничего не происходит. Единственное, если я открою csv файл до выполнения скрипта, появляется алерт (см. прикрепленные рисунки).
Мне хотелось бы в результате получить гистограмму в отдельном окне индикатора под графиком цены. Значения каждого столбца гистограммы должны забираться из файла csv.
Добрый вечер.
Позвольте, спросить, предназначением данного кода является открытие файла EURUSD и всё? Я расположил оба файла так, как вы указали. Но в результате выполнения скрипта у меня ничего не происходит. Единственное, если я открою csv файл до выполнения скрипта, появляется алерт (см. прикрепленные рисунки).
Мне хотелось бы в результате получить гистограмму в отдельном окне индикатора под графиком цены. Значения каждого столбца гистограммы должны забираться из файла csv.
Вы во вкладке Журнал пытаетесь увидеть результаты вывода? Смотрите во вкладке Эксперты.
2015.11.07 20:47:58.262 Script TestReadCsvFile GBPUSD.e,M30: removed
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: uninit reason 0
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:41 1.08796 1.08805
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:37 1.08796 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:33 1.08796 1.08807
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:25 1.08797 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:24 1.08797 1.08805
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:23 1.08795 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:21 1.08795 1.08805
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:17 1.08795 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:16 1.08795 1.08805
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:15 1.08795 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:07 1.08796 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:02 1.08795 1.08805
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:01 1.08796 1.08807
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:30:00 1.08799 1.08808
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:29:53 1.08798 1.08808
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:29:51 1.08798 1.08809
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:29:50 1.08798 1.08807
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:29:49 1.08796 1.08807
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: 2015.11.06 13:29:42 1.08796 1.08806
2015.11.07 20:47:58.262 TestReadCsvFile GBPUSD.e,M30: EURUSD.csv is opened
2015.11.07 20:47:58.238 TestReadCsvFile GBPUSD.e,M30: initialized
2015.11.07 20:47:58.233 TestReadCsvFile GBPUSD.e,M30 inputs: FileName=EURUSD.csv;
2015.11.07 20:47:50.961 Script Tests\TestReadCsvFile GBPUSD.e,M30: loaded successfully
По поводу дальнейших доработок обращайтесь в личку плз.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Стоит задача написать индикатор для таймфрейма дневки, чтобы он брал значения из стороннего текстового файла, н-р, такого вида:
--
1.06.2010(разделитель)2.06.2010(разделитель)...
Значение1(разделитель)Значение2(разделитель)...
--
Т. о., можно было бы иметь индикаторы самых разных данных (н-р, СОТ, или опционные уровни, или еще много чего, что доступно в текстовом/табличном формате).
Как установить референцию к внешнему файлу в МТ, и как описать структуру внешнего файла в сорце индикатора, чтобы он «понимал», что откуда брать?
Заранее спасибо!