Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужен торговый робот? Закажи его в сервисе Фриланс!
MetaQuotes Software Corp.
Модератор
181008
MetaQuotes Software Corp. 2016.08.15 10:49 

Опубликована статья Кроссплатформенный торговый советник: Введение:

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

Обратите внимание: два исходных файла, показанные выше, одинаковы. Невозможно иметь один исходный файл, работающий на двух платформах. Причина этого — в том, как компилируются исходные файлы:

  • результат компиляции в MQ4 — создание файла EX4.
  • результат компиляции в MQ5 — создание файла EX5.

Иными словами, как уже было сказано выше, мы не можем получить один исходный файл, который будет работать на обеих платформах. Тем не менее, можно сделать так, чтобы оба исходника ссылались на один и тот же заголовочный файл — как это проиллюстрировано картинкой ниже:

Исходные и заголовочные файлы

Автор: Enrico Lambino

Sergey Pavlov
8936
Sergey Pavlov 2016.08.15 19:43  

Отличная статья: легко читается, все идеи понятны и даже свои появляются...

fxsaber
4398
fxsaber 2016.08.17 16:51  
Идея (кроссплатформенность) правильная. Но здесь предлагается создать некий свой метаязык и на нем писать кроссплатформенные советники. Метаязык видится лишним в этом решении, т.к. можно писать все на MQL4. И чтобы советники запускались не только на MT4, но и на MT5. Такое решение есть в кодобазе. В частности, при таком решении старые MQ4-коды могут запускаться в MT5 при добавлении одного инклудника. В общем, создание метаязыка видится менее универсальным и даже лишним. Однако, посмотреть продолжение цикла статей на эту тему было бы интересно. Надеюсь, сизов труд не выйдет.

Что касается самого Введения. Резанул пример со StringConcatenate. Сложно понять людей, которые пользуются в MT4/5 этой функцией. Мало того, что это громоздко, так это еще и не наглядно. Объединение строк ВСЕГДА достигалось в обеих платформах через оператор +.  Поэтому использование для строк StringConcatenate сравнимо с использованием функции "NumberSummary" для получения суммы чисел. Абсурд, короче.

Если правильно понял, то это перевод статьи. Поэтому для связи с автором, видимо, нужно писать в оригинал. Английский вариант?
Rashid Umarov
Админ
11805
Rashid Umarov 2016.08.17 18:17  
fxsaber:
Идея (кроссплатформенность) правильная. Но здесь предлагается создать некий свой метаязык и на нем писать кроссплатформенные советники. Метаязык видится лишним в этом решении, т.к. можно писать все на MQL4. И чтобы советники запускались не только на MT4, но и на MT5. 
Если правильно понял, то это перевод статьи. Поэтому для связи с автором, видимо, нужно писать в оригинал. Английский вариант?
Да
Yuriy Asaulenko
3301
Yuriy Asaulenko 2016.08.17 18:59  
MetaQuotes Software Corp.:

Опубликована статья Кроссплатформенный торговый советник: Введение:

Автор: Enrico Lambino

Извините, но на фига это нужно?
Комбинатор
15888
Комбинатор 2016.08.17 22:40  
Yuriy Asaulenko:
Извините, но на фига это нужно?
Чтобы портированием не заниматься
Vasiliy Sokolov
21645
Vasiliy Sokolov 2016.08.18 13:19  
Кроссплатформенный советник возможно создать только в том случае, если он будет базироваться на кросплатформенном торговом движке, где торговое API и доступ к данным будут заменены ОО-версиями, внутренняя реализация которых будет определятся макросами #ifdef __MQL5__. Учитывая сказанное, статья автора как минимум наивна. Здорово конечно, что автор открыл для себя макрос #ifdef __MQL5__, но этого самого по себе недостаточно. Нужно как минимум написать движок с #ifdef на каждом шагу, а это на порядок сложнее.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий