Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
188152
MetaQuotes Software Corp.  

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

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

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

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

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

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

Автор: Enrico Lambino

Sergey Pavlov
10554
Sergey Pavlov  

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

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

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

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

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

Автор: Enrico Lambino

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