Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    Как создать робот(советник) C++

    Как создать робот (советник) для metatrader 4 на С++(длл)?
    не понимаю где массивы данных (h, o, c, l) и массив индикатора
    я такие делал для мета сток а здесь не все понятно.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Метатрейдер не предоставляет такие данные. вы можете получать через DDE только котировки в режиме реального времени. посмотрите как это делается в DDE Sample. там все просто.
    массивы данных (h, o, c, l) можно взять из файлов в папке history.
     

    Комментарий

    • #3 Свернуть

      Сообщение от aznz Посмотреть сообщение
      Как создать робот (советник) для metatrader 4 на С++(длл)?
      не понимаю где массивы данных (h, o, c, l) и массив индикатора
      я такие делал для мета сток а здесь не все понятно.
      Лично я всё делаю через бинарные файлы.
      Кому не нравится - пусть передают через параметры.

      Пишете на МТ4 маленький советник, которые в реальном времени (каждый тик) передаёт в файл нужную информацию (например: массивы данных (h, o, c, l) и данные параметров индикаторов), далее пишется программа на С++ или С#, которая читает данные из этого файла и организовывает файл приказов для вышеупомянутого советника на МТ4 (который в свою очередь исполняет эти команды (не более).

      Всё работает быстро - задержек не замечал.
       

      Комментарий

      • #4 Свернуть

        Дисковые операции с большими массивами через файл- это просто в реализации ,но может может порой притормаживать. Есть еще один вариант через через общую разделяемую память. по сути это тоже самое только файл создается не на диске, а в оперативной памяти. пример такого взаимодействия хорошо описан тут http://articles.mql4.com/ru/367
        по такой схеме
         

        Комментарий

        • #5 Свернуть

          mrbags !
          Что-то по ссылке ругают ту прогу, которую предложили для тестирования.
          Но, идея понятна (в целом), спасибо !
           

          Комментарий

          • #6 Свернуть

            Сообщение от ЛЕО Посмотреть сообщение
            Пишете на МТ4 маленький советник, которые в реальном времени (каждый тик) передаёт в файл нужную информацию (например: массивы данных (h, o, c, l) и данные параметров индикаторов), далее пишется программа на С++ или С#, которая читает данные из этого файла и организовывает файл приказов для вышеупомянутого советника на МТ4 (который в свою очередь исполняет эти команды (не более).
            С передачкей данных из MQL в dll все понятно, а вот каким образом в MQL выполняются команды из файла приказов, который организовывает dll ?
            В MQL есть возможность выполнения кода записанного в строковую переменную? На подобии функции eval в языке PHP?
            Подскажите пожалуйста как Вы этот момент реализуете.

            И еще вопрос, я так понял, что для каждого советника создается своя пара файлов для обмена данными?
            Заранее благодарен

            Комментарий

            • #7 Свернуть

              Сообщение от arbit Посмотреть сообщение
              С передачкей данных из MQL в dll все понятно, а вот каким образом в MQL выполняются команды из файла приказов, который организовывает dll ?
              В MQL есть возможность выполнения кода записанного в строковую переменную? На подобии функции eval в языке PHP?
              Организация цикла в коде советника\скрипта, который будет проверять наличие команд со стороны длл и их выполнять.
              Код из строки выполнить не получится, разве что умный парсер написать.

              И еще вопрос, я так понял, что для каждого советника создается своя пара файлов для обмена данными?
              Заранее благодарен
              Ну можно каждому советнику выделять свой блок в одном общем файле.

              Комментарий

              • #8 Свернуть

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

                Комментарий

                • #9 Свернуть

                  Народ подскажите! есть сова но я на нее хочу поставить пароль, чтобы при работе с реалом спрашивал пароль)))

                  Комментарий

                  • #10 Свернуть

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

                    Комментарий

                    • #11 Свернуть

                      Сообщение от ЛЕО Посмотреть сообщение
                      Лично я всё делаю через бинарные файлы.
                      Кому не нравится - пусть передают через параметры.
                      Вообще существует куча вариантов IPC http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

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

                      Комментарий

                      • #12 Свернуть

                        Сообщение от AibekuS Посмотреть сообщение
                        Народ подскажите! есть сова но я на нее хочу поставить пароль, чтобы при работе с реалом спрашивал пароль)))
                        Поставить пароль хотите в mql часть кода (преобразуется в ex4)? Если да, то это не надежно и быстро ломается. Защита не является надежной и ее не стоит рассматривать всерьез. Можно установить проверку пароля в dll, но необходимо дополнительно защищать тогда саму dll. Делать можно это разными способами (подробнее можно посмотреть в моем блоге), но на мой взгляд наиболее оптимально добавлять защиту dll c использованием программного ключа HASP SL или аппаратного серии HASP HL. Защиты ставлю - кому надо - обращайтесь

                        Комментарий

                        • #13 Свернуть

                          Сасибо за создание темы. Меня интересует такой момент, что магического числа нету в с++ для cAlgo, но существует свой уникальный номер каждого ордера. Так же отсутсвует функция дробления лота - это когда нужно закрыть только часть лота.
                          Я создал логику, но не заню будет ли она работать.
                          Суть логики такова: учитывая, что дробление ордера невозможно, нужно открыть моножество ордеров (например десять) в ту же сторону, что открыт первый в ручную, и чтобы первому ордеру стразу был выставлен стоп, так же нужно чтобы для всех ордеров работал уровень безубытка.

                          Приблизительно это должно выглядить так :
                          данные : w // колличество ордеров
                          у // уровень бузубытка
                          z // уровень стопа
                          о// уровень профита
                          q// шаг профита
                          d// просто даные
                          с// просто даные
                          m//просто данные
                          g//просто данные
                          старт :
                          если открыт ордер то
                          {
                          если ордер бай то стоп такой с=1; иначе стоп другой с=2; d=1; x=w; m=q;
                          если х<2 то {пропуск} иначе {х--; g=q; если с=1 то покупка (bid,-z,+o+m,) ; иначе продажа (ask,+z,-o-m,) ; d=d++; m=g*d; возврат в начало строки;}
                          }
                          тикет:
                          {безубыток} // правда я не знаю как должен выглядеть безубыток для такого колличества позиций так думаю, что при такой обычной процедуре это не возможно
                          стоп:
                          {если открыт ордер то возврат в начало строки иначе возврат на строчку старта}

                          И вот я не знаю как это оформить...
                          Skype axe-441

                          Комментарий

                          • #14 Свернуть

                            Сообщение от AIV Посмотреть сообщение
                            но на мой взгляд наиболее оптимально добавлять защиту dll c использованием программного ключа HASP SL или аппаратного серии HASP HL.
                            А платить за использование этого хаспа не устанете? Да и у него надежность никакая. Достаточно только в сторону 1С посмотреть, в смысле с какой легкостью все эти хаспы там обходятся... Сегодня новая версия вышла, а завтра уже и кряк к ней готов... Вот и доверяй после этого всяким хваленым(платным!!!) распиареным хаспам и прочему хламу...
                             

                            Комментарий

                            • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                            • #15 Свернуть

                              Сообщение от arbit Посмотреть сообщение
                              В MQL есть возможность выполнения кода записанного в строковую переменную? На подобии функции eval в языке PHP?
                              Нет.

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

                              Комментарий

                              Сейчас онлайн

                              working...
                              X