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

 
Oleg:

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

Звуковой файл в папке SOUNDS , при выставлении  алерта файл проигрывается нормально, а в индикаторе тишина.

Или для индикаторов специальная папка со звуками нужна?


/---- Основной цикл расчёта индикатора

   for(bar=limit; bar>=0 && !IsStopped(); bar--)
     {
      Range=(high[bar]-low[bar])/_Point;
      IndBuffer[bar]=Range;

      if(Range<5)
      {
         if (prev_calculated > 0 && Flag==0)
         {
          Flag=1;
         }
      }
      if(Range>=Threshold){
         clr=0;
         if (prev_calculated > 0 && Flag==1 )
         {
          Flag=0;

           PlaySound("zummer");


         }
      }

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
  Range=(high[bar]-low[bar])/_Point;
  IndBuffer[bar]=Range;

  if(Range<5)
  {
    if (prev_calculated > 0 && Flag==0)
    {
      Flag=1;
    }
  }

  if(Range>=Threshold) {
    clr=0;
    if (prev_calculated > 0 && Flag==1 )
    {
      Flag=0;
      ResetLastError();
      PlaySound("zummer");
      Print(__FUNCTION__, " Error #", GetLastError());
    }
  }
}



И напишите сюда, какую ошибку выдаёт.

 
Иван:
Всем доброго времени. Вопрос: в МТ4 при работе в тестере с кроссами (парами без бакса) как тестер считает результаты по закрытым позициям, если счёт, на котором идёт тестирование, долларовый? Тестер для пересчёта итога позиции в доллары берёт курс базовой валюты кросса к доллару на текущий момент или на момент исследуемого интервала? Я сильно подозреваю, что на текущий момент. Если да, то нельзя ли заставить его считать на момент интервала?

Taras Slobodyanik:

считать самому MODE_TICKVALUE для каждого тика.

Ну, допустим, посчитал. А как тестер "попросить" вывести в таблицу "Результаты" посчитанное мной значение, а не его кривой расчёт?
 
Mihail Matkovskij:

Посмотрите внимательно пример https://www.mql5.com/ru/forum/160683/page1208#comment_17279150 . Ничего там не нашли?... 

Вот эта функция:

Вам следует быть немножко внимательней!

Может быть мы не допоняли друг друга, или я не совсем точно сформулировал вопрос, но....я внимательно посмотрел список всех функций в Справочнике MQL4 и в Справочнике  MQL5

Ни в одном из них функции  

searshValue(double & array2D[2][], const int _len, const int _index, const double _value)

я не нашел. Я посмотрел пример по Вашей ссылке. Увидел код который Вы мне скинули и в котором присутствует неизвестная мне функция. Но ответа на свой вопрос - из какого языка эта функция я так и не нашел. Ведь если бы она была из  MQL4  и  MQL5, то , как мне кажется, она присутствовала бы в списке функций в Справочниках этих языков.

Потом я предположил, что это пользовательская функция. Но у Ковалева написано, что вычисления пользовательской функции производятся за нижними пределами функции start()
А еще я читал, что при написании кода в МТ возможно применять функции из других языков, а не только  MQL4  и  MQL5. 

В качестве параметров этой функции перечислены переменные с идентификаторами  CONST . Я их тоже еще не встречал в   MQL4 и это так же ввело меня в ступор.
Понимаю что Ваш уровень владения программированием на огромное количество порядков отличается от моего. Я только только начал что то понимать. Поэтому прошу не судить меня строго и проявлять по мере возможности снисходительность ко мне, если я буду тупить и задавать глупые с Вашей точки зрения вопросы.Понимаю , что объяснять мне элементарные для Вас вещи , может быть очень обременительно для Вас. Поэтому буду Вам признателен, если скинете мне ссылки на нужную мне информацию, или скажете что и где почитать.

И еще.... я создал новый советник и скопировал в него первый код, который Вы мне выслали, скомпилировал код без ошибок . Не вносил в него никаких изменений ... и сильно удивился тому, в Журнале  отсутствуют записи функции Print()после прогона советника в Тестере. Тогда как в советнике она исполняется неоднократно.
Еще раз спасибо за информационную поддержку и ценную для меня информацию.

 
ANDREY:

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

Андрей, только не подумайте, что я Вас строго сужу. Если непонятно, откуда взялась та или иная функция, то нажимаете правой кнопкой мыши по ней и выбираете команду "Перейти к определению Alt+G". И не комплексуйте если чего-то не знаете. Это нормально.

Как научиться программированию. Для этого Вам нужно ответить на вопрос, для чего это вам?... Если для создания торговых роботов и программ технического анализа, то это только соответствующие примеры, уроки и статьи на MQL. Возможно, даже книги. Но, поскольку, когда я познакомился с MQL, то уже достаточно хорошо владел кодом и никаких книг не читал, а читал документацию. Вам же советую, для начала, понять, что такое программа. Для этого, начните с изучения событийной модели MQL:  https://docs.mql4.com/ru/basis/function/events . Это основа. Если овладеете ею, то легко сможете двигаться дальше. Может быть это вам поможет:  Знакомство с MQL5: написание простого советника и индикатора (воспользовался поиском). Еще: Основы языка . В частности: Вызов функции и Передача параметров (то где у Вас возникают вопросы). Если при изучении возникнут вопросы (а они будут), то можете воспользоваться поиском Гугла или Ютубом. Или задать вопросы сюда. В идеале хорошо бы изучить C++. Если будете гуглить что-нибудь касательно синтаксиса, то также можете добавлять "C++".

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Mihail Matkovskij:

Андрей, только не подумайте, что я Вас строго сужу. Если непонятно, откуда взялась та или иная функция, то нажимаете правой кнопкой мыши по ней и выбираете команду "Перейти к определению Alt+G". И не комплексуйте если чего-то не знаете. Это нормально.

Как научиться программированию. Для этого Вам нужно ответить на вопрос, для чего это вам?... Если для создания торговых роботов и программ технического анализа, то это только соответствующие примеры, уроки и статьи на MQL. Возможно, даже книги. Но, поскольку, когда я познакомился с MQL, то уже достаточно хорошо владел кодом и никаких книг не читал, а читал документацию. Вам же советую, для начала, понять, что такое программа. Для этого, начните с изучения событийной модели MQL:  https://docs.mql4.com/ru/basis/function/events . Это основа. Если овладеете ею, то легко сможете двигаться дальше. Может быть это вам поможет:  Знакомство с MQL5: написание простого советника и индикатора (воспользовался поиском). Еще: Основы языка . В частности: Вызов функции и Передача параметров (то где у Вас возникают вопросы). Если при изучении возникнут вопросы (а они будут), то можете воспользоваться поиском Гугла или Ютубом. Или задать вопросы сюда. В идеале хорошо бы изучить C++. Если будете гуглить что-нибудь касательно синтаксиса, то также можете добавлять "C++".

Спасибо за совет  и подсказки. Для меня все началось с того, что я несколько лет назад от нечего делать и от желания пристроить куда то свободные деньги, прошел бесплатный курс форекс в Телетрейде в Москве. Но в моей голове после окончания курса сразу засела мысль о том, что бессистемная торговля - это гарантированная потеря денег... даже несмотря на единичные выигрыши. Поэтому я сразу принял твердое решение - не играть на свои деньги пока у меня не будет системы.А перед тем  как окончить курсы - у меня не было даже компа. И вообще я человек с не математическим складом ума . И именно курсы сподвигнули меня  купить комп.И с того момента как я купил комп и на курсах мне загрузили МТ-4 я не могу оторваться от компа и МТ до сих пор. Наблюдаю за собой за стороны и не могу понять откуда взялась эта непреодолимая и иррациональная тяга . Не думаю что только из за денег. С деньгами у меня все в порядке. Я не работаю и все мое время свободное. И мне его нужно чем то занять, что бы оно не тянулось слишком долго. Я заметил когда я погружаюсь в изучение форекса вообще и теперь программирования - время летит незаметно и быстро.Таким образом , после окончания курсов, я долго осваивал компьютер и паралельно пялился в графики на МТ и пытался понять как и почему цена двигается в ту или иную сторону. Можно сказать, что график меня очаровал и околдовал и создал в моем мозгу мощную доминанту. По мере продвижения в понимании устройства компа, интернета и форекса я узнал об алгоритмической торговле и решил почитать о ней. И она меня так же затянула до такой степени что я даже научился немного кодировать по учебнику Ковалева. И чем больше материала из учебника я понимал и пытался применить при кодировании тем больше разных мыслей мне приходило , которые я пытался закодировать.В таком вялотекущем режиме я довольно долго  изучал, кодировал , тестировал , но о реальной торговле пока даже не помышлял. Но несколько месяцев назад совершенно неожиданно и случайно я увидел одну закономерность , которая очень четко проявляется на паре ЕВРО- ДОЛЛАР и ФУНТ - ДОЛЛАР. Мне удалось закодировать эту закономерность. И советник с этим кодом в тестере с 2008 года и по сегодня рисует график баланса , который идет  постоянно в вверх с приемлемыми для меня просадками. Это послужило дополнительным и мощным стимулом  , что бы я с еще большим энтузиазмом погрузился в изучение програмирования на МQL4. Пока я его еще не освоил в достаточной степень что бы начать изучать  МQL5.

А Вам еще раз спасибо за ссылки и за то что наставляете меня на путь истинный.

Это график баланса 

У меня есть мысли как сделать этот график еще более оптимальным. Но пока не хватает опыта что бы все эти мысли закодировать.

 
ANDREY:

Когда изучите MQL4 и перейдёте к MQL5, то он затянет Вас ещё больше... :)

 
Mihail Matkovskij:

Когда изучите MQL4 и перейдёте к MQL5, то он затянет Вас ещё больше... :)

Посмотрим, как быстро это произойдет...

 
Mihail Matkovskij:

 Если непонятно, откуда взялась та или иная функция, то нажимаете правой кнопкой мыши по ней и выбираете команду "Перейти к определению Alt+G". И не комплексуйте если чего-то не знаете. Это нормально.

Это ценный для меня пункт меню. И я сильно обрадовался когда узнал о нем и о его функционале от Вас. Но почему то этот пункт у меня не работает. Перепробывал разные варианты.

Наводил курсор на функцию(на то ее место которое до скобок) и нажимал правой кнопкой мыши. В контекстном меню меню  "Перейти к определению Alt+G" активно. Кликаю по нему , но ничего не происходит. Нажимаю  Alt+G в английской раскладке и в верхнем регистре - так же ничего не происходит.

А я правильно понимаю что после нажатия меня должно перебросить в Справочник , а точнее в то его место где описывается функция по которой я кликнул правой кнопкой мыши?
У меня МТ-4  build 1260
Читал Справку Метаэдитора , но не нашел ничего об этой фишке. А этот пункт меня представляет для меня очень большую ценность. Может каких то настроек в Метаэдиторе не хватает?
Буду признателен если поделитесь своими соображениями о том почему у меня этот пункт не работает.

Это панель инструментов моего Метаэдитора. Многие кнопки не активны. Может дело в какой то из этих кнопок?


 
ANDREY:

Спасибо за совет  и подсказки. Для меня все началось с того, что я несколько лет назад от нечего делать и от желания пристроить куда то свободные деньги, прошел бесплатный курс форекс в Телетрейде в Москве. Но в моей голове после окончания курса сразу засела мысль о том, что бессистемная торговля - это гарантированная потеря денег... даже несмотря на единичные выигрыши. Поэтому я сразу принял твердое решение - не играть на свои деньги пока у меня не будет системы.А перед тем  как окончить курсы - у меня не было даже компа. И вообще я человек с не математическим складом ума . И именно курсы сподвигнули меня  купить комп.И с того момента как я купил комп и на курсах мне загрузили МТ-4 я не могу оторваться от компа и МТ до сих пор. Наблюдаю за собой за стороны и не могу понять откуда взялась эта непреодолимая и иррациональная тяга . Не думаю что только из за денег. С деньгами у меня все в порядке. Я не работаю и все мое время свободное. И мне его нужно чем то занять, что бы оно не тянулось слишком долго. Я заметил когда я погружаюсь в изучение форекса вообще и теперь программирования - время летит незаметно и быстро.Таким образом , после окончания курсов, я долго осваивал компьютер и паралельно пялился в графики на МТ и пытался понять как и почему цена двигается в ту или иную сторону. Можно сказать, что график меня очаровал и околдовал и создал в моем мозгу мощную доминанту. По мере продвижения в понимании устройства компа, интернета и форекса я узнал об алгоритмической торговле и решил почитать о ней. И она меня так же затянула до такой степени что я даже научился немного кодировать по учебнику Ковалева. И чем больше материала из учебника я понимал и пытался применить при кодировании тем больше разных мыслей мне приходило , которые я пытался закодировать.В таком вялотекущем режиме я довольно долго  изучал, кодировал , тестировал , но о реальной торговле пока даже не помышлял. Но несколько месяцев назад совершенно неожиданно и случайно я увидел одну закономерность , которая очень четко проявляется на паре ЕВРО- ДОЛЛАР и ФУНТ - ДОЛЛАР. Мне удалось закодировать эту закономерность. И советник с этим кодом в тестере с 2008 года и по сегодня рисует график баланса , который идет  постоянно в вверх с приемлемыми для меня просадками. Это послужило дополнительным и мощным стимулом  , что бы я с еще большим энтузиазмом погрузился в изучение програмирования на МQL4. Пока я его еще не освоил в достаточной степень что бы начать изучать  МQL5.

А Вам еще раз спасибо за ссылки и за то что наставляете меня на путь истинный.

Это график баланса 

У меня есть мысли как сделать этот график еще более оптимальным. Но пока не хватает опыта что бы все эти мысли закодировать.

Для программиста самое важное уметь ставить задачу и находить пути её решения. А это и определяет математический склад ума. Если у вас получится переделать склад ума… дай вам Бог.

И если вы пытаясь писать на mql4 постоянно будете заглядывать в документацию mql5 находя там сходства языков, то считайте что разобравшись с mql4 уже разобрались с mql5. Языки на столько похожи, что перечислить отличия проще чем перечислить сходства.

Учебник Ковалёва написан так давно, что в большинстве случаев прежде чем писать что-то надо найти современные методы несмотря на то, что и те что используются в примерах учебника будут какое-то время работать.

Очень может помочь эта статья и не только для перехода на mql5, но и для понимания разницы того mql4 который описывал Сергей Ковалёв и современного mql4
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Alexey Viktorov:

Для программиста самое важное уметь ставить задачу и находить пути её решения. А это и определяет математический склад ума. Если у вас получится переделать склад ума… дай вам Бог.

И если вы пытаясь писать на mql4 постоянно будете заглядывать в документацию mql5 находя там сходства языков, то считайте что разобравшись с mql4 уже разобрались с mql5. Языки на столько похожи, что перечислить отличия проще чем перечислить сходства.

Учебник Ковалёва написан так давно, что в большинстве случаев прежде чем писать что-то надо найти современные методы несмотря на то, что и те что используются в примерах учебника будут какое-то время работать.

Спасибо за ценную информацию.

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

Спасибо

Причина обращения: