![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, Андрей!
Здравствуйте, Андрей!
Функция GetOpenPriceByLot().
Эта функция возвращает цену открытия позиции или ордера по размеру лота. Отбор учитываемых позиций задаётся внешними параметрами:
Функция GetTicketByLot().
Эта функция возвращает тикет позиции или ордера по размеру лота. Отбор учитываемых позиций задаётся внешними параметрами:
ЗЫ. Во вложении скрипт для тестирования функции GetTicketByLot().
Здравствуйте, Игорь!
Спасибо Вам большое за новые функции и что всё так оперативно. Очень всё замечательно. Функция возвращает, например тиккет ордера по условиям, которые можно задать внешними переменными или можно их не использовать. Мне немного не понятна вот эта строка:
if ((op<0 || OrderType()==op) && (OrderType()>1 && OrderType()<6))
здесь идёт проверка условия оператора if, то есть если внешняя переменная <0 , то доступен любой тип ордера ИЛИ если в вызове функции пишем, например OP_BUY , то выбор будет идти из ордеров типа OP_BUY. С этим условием понятно, а вот дальше идёт равнозначное условие, прописанное через && в котором говорится, что OrderType() должен находиться в диапазоне отложенных ордеров, то есть от 1 до 5. Наш тип OP_BUY не входит в этот диапазон и поэтому условие оператора должно быть ложным и управление должно перейти оператору, следующему за оператором if-else, то есть мне трудно сказать куда, куда-то за фигурную стрелку тела. Мне кажется, что здесь должно прописываться условие для функции рыночных ордеров и отдельной такой же функции отложенных ордеров. То есть если я хочу сделать выбор из рыночных ордеров и не знаю его точный тип, то беру внешнюю переменную <0, но обращаюсь к функции, в которой прописаны условия от 0 до 1. Аналогично для отложенных ордеров. То есть я пришел к выводу, что для каждой категории типов ордеров при использовании этого полезного условия нужно использовать свою функцию.
И ещё есть у меня проблема с подключение библиотек. Пробил поиск, почитал, но подключение выдаёт ошибку при компиляции советника, который я пишу. Времени разбираться пока нет, хочется быстрее написать прибыльный эксперт, поэтому я скопировал все нужные три библиотеки и вставил их после специальной функции start(), а их глобальные переменные вынес в глобальные переменные советника и закоментировал ссылки на них. Это не очень удобно, но работает.Мне немного не понятна вот эта строка:
if ((op<0 || OrderType()==op) && (OrderType()>1 && OrderType()<6))
Благодарю! Исправил... Это последствия копипаста, то есть использования заготовки другой функции, предназначенной для работы только с лимитными и стоповыми ордерами.
И ещё есть у меня проблема с подключение библиотек. Пробил поиск, почитал, но подключение выдаёт ошибку при компиляции советника, который я пишу. Времени разбираться пока нет, хочется быстрее написать прибыльный эксперт, поэтому я скопировал все нужные три библиотеки и вставил их после специальной функции start(), а их глобальные переменные вынес в глобальные переменные советника и закоментировал ссылки на них. Это не очень удобно, но работает.
Я, кстати, свои библиотеки в виде файлов MQH не использую. В советник я обычно копирую нужные мне функции, то есть мой обычный готовый советник представляет собой один MQ4-файл. Всё нужное внутри этого файла. Да, есть повторяемость кода. Но зато нет проблем с версиями функций.
Я тоже кстати уже заметил, что у Вас для каждой функции идут скрипты для тестов, а в них есть все нужные дополнительные функции , которые можно просто добавить в свой советник вместе с функцией и будет всё в одном файле и ничего лишнего. Функции получились простые и полезные, но для себя я с Вашего разрешения сделаю их четыре: две для отложек и две для позицый. Они получатся более универсальными как раз для тонких потребностей моего советника. Но теперь я вижу как просто это можно сделать. Спасибо Вам большое Игорь.
С уважением Андрей.
Функция TimeOpenFirstPos().
Эта функция возвращает время открытия первой открытой позиций. Отбор учитываемых позиций задаётся внешними параметрами:
Здраствуйте
Как на ваш SetRegression() (https://www.mql5.com/ru/forum/107476/page35 ) канал добавить фибу.
Здраствуйте
Как на ваш SetRegression() (https://www.mql5.com/ru/forum/107476/page35 ) канал добавить фибу.
Дак, легко: