Форум трейдеров » Торговые роботы, советники, индикаторы » MQL4: полезные функции
+ Подписаться
Страница 2 из 2 ПерваяПервая 12
  1. 23
    Комментарии
    1
    Темы
    28
    Репутация Pro
     
    Новичок

    1 Медалей
    Значение MQL4 - MetaQuotes Language 4.
    MetaQoutes — это компания, которая создала торгговую платформу MetaTrader.
    Для того, чтобы сделать эту торговую платформу сильней платформ своих конкурентов, компания MetaQuotes снабдила её встроенным языком программирования, которые позволяют пользователю (Вам) реализовывать свои торговые стратегии.

    Этот язык позволяет нам создавать следующее:

    1 - Советники
    2 - Роботы и МТС
    2 - Индикаторы
    3 - Скрипты

    Советник — это программа, которая может автоматизировать Ваши сделки. Например, она может автоматизировать открытие Ваших сделок, закрывать их, отменять/заменять сделки.
    Роботы - это не программы волшебной генерации денег. В правильном понимании - есть профессиональные трейдеры, которые разрабатывают торговые системы и по ним торгуют, если система прибыльная, то фактически програмисты переводят алгоритм действия трейдера на язык програмирования, в результате создаётся программа, которая будет торговать как профессиональный трейдер по заданному алгоритму.
    Индикатор — это программа, которая позволяет Вам пользоваться функциями технических индикаторов, но не может автоматизировать Ваши сделки в части принятия торговых решений и таким образом плавно перекочевать в разряд советников.
    Скрипт — Это программа, выполняющая одну функцию. В отличии от советников, скрипты исполняются однократно — при востребовании, а не на каждом тике. И, конечно же, скрипт не имеет доступа к техническим индикаторам.
    Это были ответы на вопросы: «Что» такое MQL4? «Почему» надо использовать MQL4?
    «На чем» писать MQL4? Расскажу завтра
  2. 23
    Комментарии
    1
    Темы
    28
    Репутация Pro
     
    Новичок

    1 Медалей
    Было бы не плохо когда все под рукой)
  3. 23
    Комментарии
    1
    Темы
    28
    Репутация Pro
     
    Новичок

    1 Медалей
    Итак сегодня рассмотрим как написать простенький скрипт
    1)#property copyright "Bomjik"
    2)#property show_inputs
    3)extern double a = 5;
    4)extern double b = 3;
    5)double c;

    6)int start()
    7){
    8)c=a+b;

    9)Alert(c);
    10)return(0);
    11) }
  4. 23
    Комментарии
    1
    Темы
    28
    Репутация Pro
     
    Новичок

    1 Медалей
    Объясню что и как)
    1)Эту строчку можно и не использовать.В ней прописываются авторские права на файл. Пишется #property copyright "" В кавычках имя.

    2)При прикреплении скрипта к графику эта функция даёт возможность менять переменные которые в файле имеют приписку extern. В советниках и индикаторах чтобы увидеть, при прикреплении файла к графику, переменные с припиской extern этой функции не надо. Пишется #property show_inputs

    3) Называется объявлением переменной. Это делается для того чтобы файл знал с какой переменной имеет дело, какого она типа, её значение и выводить ли переменную в свойства файла при прикреплении файла к графику. Желательно, рекомендовано и необходимо объявлять переменные вначале файла(но не обязательно. можно и в самой функции). Итак.
    3.1)extern - значит что мы выводим переменную в свойства файла при прикреплении его к графику.
    3.2)double - значит что мы указываем тип переменной(урок 2). В нашем случае переменная может быть с дробной частью.
    3.3)a значит что мы указываем название переменной.
    3.4)= значит что мы присваиваем переменной какое то значение.
    3.5)4 значит что мы присвоили переменной число 4.
    3.6); значит что мы закончили объявлять переменную(урок 3).
    Пишется extern double a = 4;
    4)Аналогично с 3)
    5)Мы объявили переменную, но не вывели во внешние переменные(прикрепление к графику) и не присвоили ей значения. Тоесть без extern и без =
    Пишется double c;
    6)После объявления переменных идёт название функции где проходят все вычесления. А именно фунция Старт.
    Пишется int start()
    7)Левая квадратная скобка. Обязательно должна быть после написания названия функции. Она указывает на начало расчётов в функции.
    Пишется {
    8)Собственно наш расчёт. Где a и b это нашы переменные которые мы можем менять во внешних переменных(прикрепление к графику).
    с у нас будет ровно сумме a и b(значение которых мы укажем).
    Пишется c=a+b;
    9)Это выхов сигнала при прикрепленни файла к графику. Итак.
    9.1)Alert значит что мы указали функцию, которая выведет на екран сообщение.
    9.2)(с) значит что мы указали в скобках что нам выводить в сообщении на экран. Если с, то после пересчёта его значения, в сообщении выведется результат.
    9.3); значит конец действия(по простому - точка).
    Пишется Alert(c);
    10)Это оператор. Если расчёты без ошибок он возвращает 0 и работа файла продолжается дальше. Можно не 0 писать в скобках, но в редких случаях.
    Пишется return(0);
    11)Правая квадратная скобка. Обязательно должна быть после окончания расчётов. Она указывает на конец расчётов в функции.
    Пишется }
  5. 1
    Комментарии
    0
    Темы
    0
    Репутация Pro
     
    Новичок

    1 Медалей
    Цитата Сообщение от bomjik Посмотреть сообщение
    Функция PriceOpenLastPos()
    Эта функция возвращает цену открытия последней открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
    sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. Значение NULL означает текущий инструмент.
    op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1. Значение по умолчанию -1 означает любую позицию.
    mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
    КУДА ЕЕ ВСТАВЛЯТЬ ЧТОБ РАБОТАЛА - ОШИБКУ ВЫДАЕТ

Вверх
РегистрацияX

чтобы писать, читать, комментировать