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

 

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

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

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

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

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

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

Автор: Enrico Lambino

 

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

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

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

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

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

Автор: Enrico Lambino

Извините, но на фига это нужно?
 
Yuriy Asaulenko:
Извините, но на фига это нужно?
Чтобы портированием не заниматься
 
Кроссплатформенный советник возможно создать только в том случае, если он будет базироваться на кросплатформенном торговом движке, где торговое API и доступ к данным будут заменены ОО-версиями, внутренняя реализация которых будет определятся макросами #ifdef __MQL5__. Учитывая сказанное, статья автора как минимум наивна. Здорово конечно, что автор открыл для себя макрос #ifdef __MQL5__, но этого самого по себе недостаточно. Нужно как минимум написать движок с #ifdef на каждом шагу, а это на порядок сложнее.
Причина обращения: