Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1357
- Рейтинг:
- голосов: 10
- Опубликован:
- 2020.03.16 15:54
- Обновлен:
- 2022.08.30 05:10
Библиотека для работы с COM-объектами.
Эта библиотека даёт возможность работать с COM-объектами, предоставленными некоторыми приложениями.
Например: Excel, Word, Mathcad, Matlab. А также объект ADODB для работы с базами данных через драйвер ODBC.
Библиотека работает и в MT4 и в MT5.
Инициализация.
Перед работой с COM-объектами необходимо вызвать функцию CoInitialize(). Лучше всего в функции OnInit().
В функции OnDeinit() надо вызвать функцию CoUninitialize().
Класс Variant.
Это специальный тип данных, который может содержать данные разных типов.
Используется для передачи параметров между приложениями.
Класс SafeArray.
Разновидность типа Variant, в котором содержится массив.
Класс ComObject.
Это тоже тип Variant, содержащий указатель на интерфейс IDispatch COM-объекта.
Базы данных.
COM-объект ADODB предоставляет интерфейс для работы с базами данных, для которых установлен драйвер ODBC.
Прикладываю три советника, собирающих тики в базу данных MySql, MS Access и SQLite.
В них главное отличие в строке подключения 'ConnectionString'.
ConnectionString для вашей базы данных легко найдёте в интернете.
Если хотите создать базу SQLite в памяти, в качестве имени файла нужно задать: ":memory:".
Примеры: MySqlTest.mq4, SqliteTest.mq4, AccessTest.mq4.
Excel.
У Excel есть свой COM-объект "Excel.Application". Он позволяет создавать любые документы Excel.
Кроме этого, есть возможность передавать данные в Excel, при помощи SQL-запросов.
Примеры: Excel.mq4, ExcelTest.mq4.
Mathcad.
Создаём в маткаде такой документ:
A := in1 B := in2 C := A * B
И сохраняем его в файл "c:\Test\Test1.xmcd".
MQL-скрипт передаёт в маткад in1, in2 и получает переменную C.
Пример: Mathcad.mq4.

Индикатор рисует два квадрата: один от минимума вверх, а второй от максимума вниз. Высота квадрата равна ADR (5 дней).

Советник OpenTimeTral выставляет выбранные типы ордеров в назначенное время и использует трейлингстоп для первого рыночного ордера. Ограничения выбора типов ордеров: 1. Можно выбрать только один тип рыночного ордера, либо Buy, либо Sell. И с выбранным рыночным ордером нельзя выбрать отложенные ордера. 2. Отложенные и лимитные ордера можно выбирать в любом сочетании. После преобразования первого отложенного или лимитного ордера в рыночный, оставшиеся отложенные и лимитные ордера удаляются. Для рыночного ордера используется трейлингстоп. Stoploss модифицируется на расстояние, не больше значения Трейлингстоп от текущей цены Bid, для ордеров Buy, и от цены Ask, для ордеров Sell

Советник OpenTimeTral2 выставляет выбранные типы ордеров в назначенное время и использует динамический трейлингстоп и трейлингпрофит для первого рыночного ордера. После преобразования первого отложенного или лимитного ордера в рыночный, оставшиеся отложенные и лимитные ордера удаляются. Для рыночного ордера используется динамический трейлингстоп. Stoploss модифицируется на расстояние, не больше значения Трейлингстоп от текущей цены Bid, для ордеров Buy, и от цены Ask, для ордеров Sell и уменьшает Трейлингстоп при приближении к ТейкПрофит по формуле линейного уменьшения в первом варианте и убыстряющегося по обратной связи во втором варианте. Для TakeProfit так же используется трейлинг на постоянную величину. При приближении текущей цены к уровню TakeProfit, Тейкпрофит модифицируется на расстояние TralingProfit.

Индикатор отслеживает изменения Equity, сохраняет историю М1, отображает в произвольных стандартных таймфреймах изменения Эквити и баланса.