Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1439

 
ANDREY:

Спасибо за ценный совет. Сейчас я читаю документацию только параллельно написанием кода, когда сталкиваюсь с каким то вопросом на который не знаю ответ. По ходу написания прошлых кодов с необходимостью  записи данных в файлы я никогда не сталкивался, поэтому для меня это абсолютно новая тема.
Скажите , а разве нельзя мою идею реализовать проще, без записи в файл? Как в моем коде. Это не рабочий код а для иллюстрации моей идеи того как найти минимум между соседними ордерами открывшимися на одной минутной свече
Спасибо за помощь

То есть  я записывал цены каждого тика сразу в массив , а не в файл.

Ну, я не знаю как можно так читать. Когда я начинал программировать, залезая в документацию по какому либо пустяку программирование просто останавливалось. Я черпал оттуда всё больше и больше… Вы же прочли об одной функции записи в файл и рядом ничего не увидели. Вам сказали о другой и у вас эйфория от услышанного. А что ещё есть? Вы хоть что-то прочли? Какие ещё есть функции записи в файл? И как-же надо читать, чтобы задавать такие вопросы? Я вам сказал писать массив и читать массив. А вы хотите писать .csv и читать в массив. Так не бывает. А если вам всё это нужно только вот… в текущий момент, то зачем писать в файл?
 
Valeriy Yastremskiy:

ну как бы не понятно что за переменаая х лоу в первом ордере. это время или цена. и далее. идут тики.вы получаете их цену, можете фиксировать время но вы ждете нового ордера. а потом спрашиваете время максимального или минимального тика. тик он и в африке тик. 

Спасибо за ответ. Это не переменная   х лоу , а выражение   Х =  LoY[1].     LoY[1] - это цена.....без вариантов.
".....а потом спрашиваете время максимального или минимального тика...."  

В том то и дело что в этой идее время не участвует совсем ..... только минимальная  цена свечи, которую я узнаю только два раза. Первый раз во время открытия первого ордера и второй раз во время открытия второго ордера. Потом сравниваю эти цены и делаю вывод - открылся первый ордер до образования  LoY[] , или после его образования. Я по началу считал что для решения моей задачи нужна информация о времени. А потом меня осенило....и оказалось, что можно обойтись вообще без времени, и достаточно только минимальной цены свечи.

 
Alexey Viktorov:
Ну, я не знаю как можно так читать. Когда я начинал программировать, залезая в документацию по какому либо пустяку программирование просто останавливалось. Я черпал оттуда всё больше и больше… Вы же прочли об одной функции записи в файл и рядом ничего не увидели. Вам сказали о другой и у вас эйфория от услышанного. А что ещё есть? Вы хоть что-то прочли? Какие ещё есть функции записи в файл? И как-же надо читать, чтобы задавать такие вопросы? Я вам сказал писать массив и читать массив. А вы хотите писать .csv и читать в массив. Так не бывает. А если вам всё это нужно только вот… в текущий момент, то зачем писать в файл?

Я считаю, что целесообразно смотреть на то что рядом, когда материал логически связан между собой по смыслу и излагается в понятной последовательности. Как это происходит обычно в учебниках. А в Справочнике я почему то такой связи и последовательности не чувствую. Хотя я допускаю , что возможно оии там есть , но дело в  моих когнитивных особенностях.

Я не понимаю пока главного. Зачем вообще данные из моего кода писать в файл, если можно не писать. При каких обстоятельствах возникает целесообразность записи  данных программы в файл .... вообще и в моем случае. Как мне показалось из Ваших слов целесообразность записи в файл каким то образом обусловлена тем как часто я буду пользоваться своим кодом. Но смысла этой обусловленности я пока так же не улавливаю. Может быть смысл в том, что те же самые данные из файла можно использовать так же из другой моей программы? Но тогда другой программе нужны будут именно эти данные записанные в файл. А это далеко не факт...
Спасибо за помощь.

 
Коллеги, хай! Плиз, киньте ссыль или поделитесь информацией - сам коде базе индикаторы рою, дошел до 58 страницы с конца в начало, нужен индикатор эквити, чтобы желательно показывал в процентах текущую просадку по эквити, ну и там понятно кривые реал тайм и баланса и эквити. На мухе  мониторинг сейчас не делаю, ради этого.
 
Alexey Viktorov:
Я вам сказал писать массив и читать массив. А вы хотите писать .csv и читать в массив. Так не бывает. А если вам всё это нужно только вот… в текущий момент, то зачем писать в файл?

Так же меня заинтриговала красная фраза. Потому что я не хотел писать   .csv и читать в массив. Потому что я пока не знаю как это делается. Знаю, что есть текстовые файл с расширением  .csv. Но разве я в своем коде хоть каким то образом касался файла с таким расширением? Из массива .... читал.... раскаиваюсь :=)...но читать в массив я так же пока не умею и пока не понимаю что это значит. 
Я был бы Вам очень признателен, если бы Вы переделали мой код(благо он короткий) таким образом что бы в нем была функция записи в файл и функция чтения из файла.
Поскольку этот код мой, я быстро усвою новую для меня информацию.
Спасибо еще раз и извините за то, что я не такой продвинутый как Вы и часто задаю возможно глупые ,на Ваш профессиональный взгляд, вопросы.

И мое желание освоить как следует mql4 , а потом и mql5 очень стабильно. Это не сиюминутное увлечение. Тем более , что сейчас для этого у меня появилось очень много времени.
Другое дело что новую информацию я усваиваю не так быстро как хотелось бы....но усваиваю. В том числе благодаря Вам и другим участникам этого форума. За что всем благодарен.

 
ANDREY:

Так же меня заинтриговала красная фраза. Потому что я не хотел писать   .csv и читать в массив. Потому что я пока не знаю как это делается. Знаю, что есть текстовые файл с расширением  .csv. Но разве я в своем коде хоть каким то образом касался файла с таким расширением? Из массива .... читал.... раскаиваюсь :=)...но читать в массив я так же пока не умею и пока не понимаю что это значит. 
Я был бы Вам очень признателен, если бы Вы переделали мой код(благо он короткий) таким образом что бы в нем была функция записи в файл и функция чтения из файла.
Поскольку этот код мой, я быстро усвою новую для меня информацию.
Спасибо еще раз и извините за то, что я не такой продвинутый как Вы и часто задаю возможно глупые ,на Ваш профессиональный взгляд, вопросы.

Андрей, я в чужих кодах не копаюсь. Я предпочитаю объяснить, если смогу, в случае непонимания написанного в документации. Если вы не читали документацию, или читая не вникали в написанное, то естественно ничего не поняли. А так как вы предлагаете, будет не обучение, а «рыбка» по которой вы хотите сделать что-то похожее в будущем. Но такой подход далеко не всегда работает.

 
ANDREY:

Спасибо за совет. Но...... Вот скрин Документации о файловых операциях

Как мне кажется справочник рассчитан на уже продвинутых пользователей. Вот Ковалев в своем учебнике подробно объяснял что и для чего нужно прежде чем углубляться в детали.

Но его учебник , как здесь утверждают, безнадежно устарел, и даже опасен для новичков.

нет, не устарел. Читать просто нужно понимая, что были улучшения языка и есть изменения. Код лучше вставлять, сперва создав шаблон программы в метаэдиторе. Ошибок будет меньше. В логике алгоритмов учебник актуален. И запись в файл там корректна. А по мкл5 у Дмитрия Федосеева посмотрите. Он на гуглплей  свой вроде выставил.

 
Valeriy Yastremskiy:

нет, не устарел. Читать просто нужно понимая, что были улучшения языка и есть изменения. Код лучше вставлять, сперва создав шаблон программы в метаэдиторе. Ошибок будет меньше. В логике алгоритмов учебник актуален. И запись в файл там корректна. А по мкл5 у Дмитрия Федосеева посмотрите. Он на гуглплей  свой вроде выставил.

Спасибо за подсказку. Я уже начал читать раздел ФАЙЛОВЫЕ ОПЕРАЦИИ  из учебника Ковалева . Действительно... кое что начинает по немного проясняться. Понял что все советники которых я тестирую читают текстовые файлы со значениями цен баров (созданные правда не моей программой) с расширением  .cvv, которые лежат в  Каталоге терминала Тестер.
То есть в файл записывается информация(данные) из любой программы и читаются эти данные из файла, так же любой программой. Как мне показалось в файлы записываются большие количества данных которые не целесообразно хранить в самой программе. Что то  типа подключаемого файла mqh.
Если Вам не сложно можете мне объяснить что означает фраза Алексея Викторова ".... А вы хотите писать .csv и читать в массив....." из поста    применительно к моему коду из поста  
Как мне показалось он имеет в виду текстовый файл  .cvv, с ценами баров из каталога Тестер. А вот что конкретно он имеет в виду я пока не пониманию. Ведь эти файлы   .cvv пишу не я, а  программа дилера  Альпари... Как программа читает ИЗ массива - я в общих чертах немного  понимаю ... обращается к ячейке массива по ее адресу , проникает во внутрь ячейки и получает доступ к значению ячейки( то есть читает его). А как  программа может читать В массив , а не ИЗ массива? Это какое то неразрешимое противоречие....как мне кажется на мой дилетантский взгляд. Мне почему то кажется что В массив можно только записывать какие то значения. А читать можно только ИЗ массива

 
ANDREY:


Если Вам не сложно можете мне объяснить что означает фраза Алексея Викторова ".... А вы хотите писать .csv и читать в массив....." из поста    применительно к моему коду из поста  
Как мне показалось он имеет в виду текстовый файл  .cvv, с ценами баров из каталога Тестер. А вот что конкретно он имеет в виду я пока не пониманию. Ведь эти файлы   .cvv пишу не я, а  программа дилера  Альпари... Как программа читает ИЗ массива - я в общих чертах немного  понимаю ... обращается к ячейке массива по ее адресу , проникает во внутрь ячейки и получает доступ к значению ячейки( то есть читает его). А как  программа может читать В массив , а не ИЗ массива? Это какое то неразрешимое противоречие....как мне кажется на мой дилетантский взгляд. Мне почему то кажется что В массив можно только записывать какие то значения. А читать можно только ИЗ массива

Да и мне не сложно. Это ведь не в коде копаться.

FileWrite

Записывает данные в файл типа CSV или TXT

FileWriteArray

Записывает в файл типа BIN массивы любых типов, кроме строковых


Читать в массив, имелось ввиду из файла. Посмотрите функцию

uint  FileReadArray( 
   int    file_handle,               // handle файла 
   void&  array[],                   // массив для записи 
   int    start=0,                   // стартовая позиция для записи в массив 
   int    count=WHOLE_ARRAY          // сколько читать 
   );

передаётся подготовленный массив и в него происходит запись.

Использовать функцию чтения массива можно только из файла записанного функцией записи массива.

В принципе можно любой файл не содержащий строки читать в массив. Но это будет только поэлементное наполнение массива.

ps;

Спасибо случаю, я хоть сам почитал документацию и обнаружил в mql5 новые функции записи массива и чтения массива.

Документация по MQL5: Файловые операции / FileSave
Документация по MQL5: Файловые операции / FileSave
  • www.mql5.com
FileSave - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Да и мне не сложно. Это ведь не в коде копаться.

FileWrite

Записывает данные в файл типа CSV или TXT

FileWriteArray

Записывает в файл типа BIN массивы любых типов, кроме строковых



Спасибо случаю, я хоть сам почитал документацию и обнаружил в mql5 новые функции записи массива и чтения массива.

Рад тому , что и я хоть чем то смог Вам помочь :=) :=) :=)

Теперь по поводу моего кода , который наверное настолько плох что в нем неприятно копаться. Но скажите хотя бы в чем было бы преимущество моего кода, если бы я записал  единственный  массив (со значениями цены) этого кода  в файл, а потом программа   читала бы его из этого файла и использовала его значения в дальнейших вычислениях ?  Причем массив всего из 60 элементов. Что конкретно  в моем коде  стало бы оптимальнее? 
Спасибо за помощь.