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

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

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

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

Где:

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

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

      //--- calculate first visible value

ExtPosBuffer[ExtPeriodRSI]=SumP/ExtPeriodRSI;
ExtNegBuffer[ExtPeriodRSI]=SumN/ExtPeriodRSI;
if(ExtNegBuffer[ExtPeriodRSI]!=0.0)
ExtRSIBuffer[ExtPeriodRSI]=100.0-(100.0/(1.0+ExtPosBuffer[ExtPeriodRSI]/ExtNegBuffer[ExtPeriodRSI]));
else
{
if(ExtPosBuffer[ExtPeriodRSI]!=0.0)
ExtRSIBuffer[ExtPeriodRSI]=100.0;
else
ExtRSIBuffer[ExtPeriodRSI]=50.0;
}
//--- prepare the position value for main calculation
pos=ExtPeriodRSI+1;
}
//--- the main loop of calculations
for(i=pos;i {
diff=price-price[i-1];
ExtPosBuffer=(ExtPosBuffer[i-1]*(ExtPeriodRSI-1)+(diff>0.0?diff:0.0))/ExtPeriodRSI;
ExtNegBuffer=(ExtNegBuffer[i-1]*(ExtPeriodRSI-1)+(diff<0.0?-diff:0.0))/ExtPeriodRSI;
if(ExtNegBuffer!=0.0)
ExtRSIBuffer=100.0-100.0/(1+ExtPosBuffer/ExtNegBuffer);
else
{
if(ExtPosBuffer!=0.0)
ExtRSIBuffer=100.0;
else
ExtRSIBuffer=50.0;
}
}
//--- OnCalculate done. Return new prev_calculated.
return(rates_total);
}
//+------------------------------------------------------------------+


Очевидно, из школьной программы, 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:
Бессонов Артём
МедальКубокГрамота
Сообщений: 657
Прежде чем дальше изучать язык программирования MQL5. Следует повторить основы стандартных (классических) языков: Бейсик, Паскаль и Си, т.к. основы MQL5 идентичны с классикой, в которую входят: "Типы данных", "Операторы", "Переменные", "Операции и Выражения" и " Функции". Их описывать не стоит, т.к. это можно найти в любом самоучителе по программированию, хоть на Бейсике, хоть на Паскале. Также они подробно расписаны в справочной системе MQL5.


Отметить необходимо то, что в функциях следует различать термины «Параметр функции» и «Аргумент функции». Тем не менее, в MQL5 на этом не заостряют внимание. Арифметические операции, операции отношения и логические операции идут стандартно, как и в других языках программирования.

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

В состав MQL5 включено большое количество функций, необходимых для анализа текущих и пришедших ранее котировок, встроены основные индикаторы и функции по управлению торговыми позициями и контролю над ними.
Сообщений: 0
Нужно не интуитивно изучать программирование, а под конкретные задачи, что впрочем не означает что не надо знать основ. Конечно же бесполезно все нюансы и тонкости того же си шарпа изучать, жизни не хватит просто, только под решение конкретных вопросов.
МедальКубокГрамота
Сообщений: 657
Сведем изучение к 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 отрабатывал только сигналы пересечения нулевого уровня? Спасибо...
МедальКубокГрамота
Сообщений: 657
yuliyasuper1 в данном варианте доступно исключительно самообучение на началах энтузиазма. Любой другой вид обучения за отдельную плату. kooss Тема раскрывается с описания индикатора Relative Strength Index, на примере которого, каждый желающий, просматривает свои собственные алгоритмы построение индикаторов alligatora и другие.
Как сделать так что бы допустим MACD отрабатывал только сигналы пересечения нулевого уровня?
вопрос скорее к программистам, чем к преподавателям. Задача преподавателя - обучить элементам языка.
В связи с переносом ранее открытых тем в неоплачиваемые разделы, данная тема также ликвидируется.
:smile:
Бессонов Артём
В начало страницы 
|
Перейти на форум:

← Назад