Получить 100$ на счет бесплатно!!

Получить депозит форекс за общение на форуме

[РЕШЕНО] Изучаем MQL5 интуитивно

  
Возможно ли интуитивно изучить язык MQL5?
Всего голосов: 4
Дата окончания опроса: 18-12-2012
Опрос закончен.
МедальКубокГрамота
Сообщений: 658
Можно ли интуитивно изучить язык программирования? Почему постоянно такие критические высказывания, например, "Вы не знаете язык Си и т.п. - значит Вы не сможете писать программы". Известно, языки создаются для облегчения пользователей. Предлагаю разобрать язык MQL5. Открыть терминал MQL5 и сосредоточить своё внимание на любом из индикаторов, например "Relative Strength Index" и др. В течение 2-3 часов, уже понятно становятся принципы построения языка. Формулы, по которой работают индикаторы, даны в справочной системе МТ5. Например, осциллятор RSI, определен одной формулой: RSI = 100 - (100 / (1 + U / D))

Где:

U — среднее значение положительных ценовых изменений;
D — среднее значение отрицательных ценовых изменений.

В MQL5 данное решение представлено следующим описанием:

Код PHP:
  1. //--- calculate first visible value
  2. ExtPosBuffer[ExtPeriodRSI]=SumP/ExtPeriodRSI;
  3. ExtNegBuffer[ExtPeriodRSI]=SumN/ExtPeriodRSI;
  4. if(ExtNegBuffer[ExtPeriodRSI]!=0.0)
  5. ExtRSIBuffer[ExtPeriodRSI]=100.0-(100.0/(1.0+ExtPosBuffer[ExtPeriodRSI]/ExtNegBuffer[ExtPeriodRSI]));
  6. else
  7. {
  8. if(ExtPosBuffer[ExtPeriodRSI]!=0.0)
  9. ExtRSIBuffer[ExtPeriodRSI]=100.0;
  10. else
  11. ExtRSIBuffer[ExtPeriodRSI]=50.0;
  12. }
  13. //--- prepare the position value for main calculation
  14. pos=ExtPeriodRSI+1;
  15. }
  16. //--- the main loop of calculations
  17. for(i=pos;i<rates_total && !IsStopped();i++)
  18. {
  19. diff=price[i]-price[i-1];
  20. ExtPosBuffer[i]=(ExtPosBuffer[i-1]*(ExtPeriodRSI-1)+(diff>0.0?diff:0.0))/ExtPeriodRSI;
  21. ExtNegBuffer[i]=(ExtNegBuffer[i-1]*(ExtPeriodRSI-1)+(diff<0.0?-diff:0.0))/ExtPeriodRSI;
  22. if(ExtNegBuffer[i]!=0.0)
  23. ExtRSIBuffer[i]=100.0-100.0/(1+ExtPosBuffer[i]/ExtNegBuffer[i]);
  24. else
  25. {
  26. if(ExtPosBuffer[i]!=0.0)
  27. ExtRSIBuffer[i]=100.0;
  28. else
  29. ExtRSIBuffer[i]=50.0;
  30. }
  31. }
  32. //--- OnCalculate done. Return new prev_calculated.
  33. return(rates_total);
  34. }
  35. //+------------------------------------------------------------------+
  36.  
  37.  
Очевидно, из школьной программы, For, If, else, return - операторы циклы, поэтому углубляться в их описание не будем.
Формула спрятана в следующих двух строчках
ExtRSIBuffer[ExtPeriodRSI]=100.0-(100.0/(1.0+ExtPosBuffer[ExtPeriodRSI]/ExtNegBuffer[ExtPeriodRSI]))
ExtRSIBuffer=100.0-100.0/(1+ExtPosBuffer/ExtNegBuffer)

Очевидно, что ExtPosBuffer - среднее значение положительных ценовых изменений;
ExtNegBuffer - среднее значение отрицательных ценовых изменений.

Вышеуказанные функции являются носителями двух параметров переменных:
ExtPeriodRSI и i.

Разберем их. Переводим заголовок, например с помощью Гугла. Первое вычисление предназначено для явного вычисления, второе для основного цикла расчетов.
В начале программы происходит описание переменных, констант и типа данных - известно из базового курса программирования. Думаю ни чего сложного в чтении MQL5 нет.
Редактировалось: 3 раз (Последний: 18 ноября 2012 в 22:52)
smile
Бессонов Артём
МедальКубокГрамота
Сообщений: 658
Прежде чем дальше изучать язык программирования MQL5. Следует повторить основы стандартных (классических) языков: Бейсик, Паскаль и Си, т.к. основы MQL5 идентичны с классикой, в которую входят: "Типы данных", "Операторы", "Переменные", "Операции и Выражения" и " Функции". Их описывать не стоит, т.к. это можно найти в любом самоучителе по программированию, хоть на Бейсике, хоть на Паскале. Также они подробно расписаны в справочной системе MQL5.

Отметить необходимо то, что в функциях следует различать термины «Параметр функции» и «Аргумент функции». Тем не менее, в MQL5 на этом не заостряют внимание. Арифметические операции, операции отношения и логические операции идут стандартно, как и в других языках программирования.
Есть особенные отличия в MQL5 от стандартных (классических) языков программирования это описание Торговых функций, Операций с графиками и т.п. Но это не должно особенно пугать новичков в программировании.
smile
Бессонов Артём
Сообщений: 0
MetaQuotes Language 5 (MQL5) - встроенный язык программирования торговых стратегий, разработанный компанией MetaQuotes Software Corp. на основе своего многолетнего опыта в создании торгово-информационных платформ. Этот язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и идеально подходящие для реализации собственных торговых стратегий. Кроме того, на MQL5 можно создавать собственные технические индикаторы (Custom Indicators), скрипты (Scripts) и библиотеки функций (Libraries).

В состав MQL5 включено большое количество функций, необходимых для анализа текущих и пришедших ранее котировок, встроены основные индикаторы и функции по управлению торговыми позициями и контролю над ними.
Сообщений: 0
Нужно не интуитивно изучать программирование, а под конкретные задачи, что впрочем не означает что не надо знать основ. Конечно же бесполезно все нюансы и тонкости того же си шарпа изучать, жизни не хватит просто, только под решение конкретных вопросов.
МедальКубокГрамота
Сообщений: 658
Сведем изучение к 5-10 лекциям:

1. Вводный курс.
2. Основные понятия. Типы переменных, массив и константы.
3. Основные операторы и функции.
4. Рыночные позиции, торговые операции, получение информации о счете.
5. Шаблоны индикаторов. Пользовательские индикаторы.
6. Торговая идея. Написание советника.
7. Закрепление, повторение и обобщение материала.

На мой взгляд, первые четыре темы разобраны в предыдущих двух постах. Переходим к изучению темы 5. Шаблоны индикаторов. Пользовательские индикаторы..

kooss:
на MQL5 можно создавать собственные технические индикаторы (Custom Indicators), скрипты (Scripts) и библиотеки функций (Libraries).
Не все так быстро. Начнем с индикаторов.
uranmaximum:
Нужно не интуитивно изучать программирование, а под конкретные задачи
Задача наша такая: Определяем тренд по индикаторам ЕМА, ССI и MACD. Далее открываем позицию по тренду.
Редактировалось: 2 раз (Последний: 2 января 2013 в 14:09)
smile
Бессонов Артём
Сообщений: 0
Интуитивно можно сделать и это...Помнитеся я Бейсик составляла на экзамене по инфоматике, рассчитывая лишь на свою интуицию. Трудно это, да и нервишки щекочет, полагаться лишь на свою интуицию и ничегоне понимать в этом деле. Сначала теория - потом только практика.
Сообщений: 0
Где в новом мастере модули сигналов пересечения средних скользящих? Где сигналы alligatora? У каждого индикатора где то по несколько видов сигналов. Как сделать так что бы допустим MACD отрабатывал только сигналы пересечения нулевого уровня? Спасибо...
МедальКубокГрамота
Сообщений: 658
yuliyasuper1 в данном варианте доступно исключительно самообучение на началах энтузиазма. Любой другой вид обучения за отдельную плату. kooss Тема раскрывается с описания индикатора Relative Strength Index, на примере которого, каждый желающий, просматривает свои собственные алгоритмы построение индикаторов alligatora и другие.
Как сделать так что бы допустим MACD отрабатывал только сигналы пересечения нулевого уровня?
вопрос скорее к программистам, чем к преподавателям. Задача преподавателя - обучить элементам языка.
В связи с переносом ранее открытых тем в неоплачиваемые разделы, данная тема также ликвидируется.
smile
Бессонов Артём
В начало страницы 
|
Перейти на форум:

← Назад

бездепозитный бонус