Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, Валерий! Большое спасибо, т.к. Ваш вариант "...если позиций с нашим магик и на нашем символе равно нулю то проверяем время и открываем позицию..." оказался самым простым и эффективным. Дописал в условии проверки времени && PositionTotal()==0 и стала открываться только одна позиция с нужным объёмом!
С уважением, Владимир.
К сожалению в МКЛ нет команды возвращающей количество позиций на символе. ТоталПозишн возвращает все позиции на счете на всех символах. Поэтому для получения позиций на символе нужен перебор всех позиций и сравнение символа позиция на нашей.
И еще. Логика в лоб сперва время, открываем проверяем наличие нашей позиции тралим не всегда оптимально. Иногда лучше сперва проверить открыта ли позиция с нашим магиком, и если открыта то проверяем время закрытия Иначе тралим И Иначе (else) проверяем время открытия.
Цель уменьшить количество действий советника.
К сожалению в МКЛ нет команды возвращающей количество позиций на символе. ТоталПозишн возвращает все позиции на счете на всех символах. Поэтому для получения позиций на символе нужен перебор всех позиций и сравнение символа позиция на нашей.
И еще. Логика в лоб сперва время, открываем проверяем наличие нашей позиции тралим не всегда оптимально. Иногда лучше сперва проверить открыта ли позиция с нашим магиком, и если открыта то проверяем время закрытия Иначе тралим И Иначе (else) проверяем время открытия.
Цель уменьшить количество действий советника.
Всё понятно, Валерий! Пытаюсь реализовать озвученные Вами подсказки.
С уважением, Владимир.
если позиций с нашим магик и на нашем символе равно нулю то проверяем время и открываем позицию, если равно 1 то не открываем позицию, проверяем время закрытия и тралим, если более 1 то Алерт и не работаем. Можно в свич, можно в иф проверки делать.
Здравствуйте, Валерий! Попробовал написать код без перебора позиций. Написал, проверил, всё работает.
С уважением, Владимир.Здравствуйте, Валерий! Попробовал написать код без перебора позиций. Написал, проверил, всё работает.
С уважением, Владимир.Для начала нормально, но только для начала. Слишком жесткие условия. Если на нашем символе нет позиций и нет позиций с нашим магик на всех инструментах далее вроде норм. В жизни у вас может быть открыты на одном символе 2 окна, и в другом может быть позиция. Можно вести учет просто по Магику с учетом например, как у тришкина, первых трех цифр - кода символа и следующих 2 цифр - кода скрипта/советника. И на первом этапе кодировать вручную, или формировать магик путем получения сложения строк, в зависимости от символа окна и кода скрипта и потом строку переводить в число.
Классикой почему то считается перебор всех ордеров или позиций.
Но это слишком для начала.
Поэтому для начала норм.
Для начала нормально, но только для начала. Слишком жесткие условия. Если на нашем символе нет позиций и нет позиций с нашим магик на всех инструментах далее вроде норм. В жизни у вас может быть открыты на одном символе 2 окна, и в другом может быть позиция. Можно вести учет просто по Магику с учетом например, как у тришкина, первых трех цифр - кода символа и следующих 2 цифр - кода скрипта/советника. И на первом этапе кодировать вручную, или формировать магик путем получения сложения строк, в зависимости от символа окна и кода скрипта и потом строку переводить в число.
Классикой почему то считается перебор всех ордеров или позиций.
Но это слишком для начала.
Поэтому для начала норм.
Спасибо, Валерий! Перебор всех позиций - это один из многих следующих шагов в самообучении, который обязательно сделаю.
С уважением, Владимир.
Классикой почему то считается перебор всех ордеров или позиций.
увы, такая традиция у MQL-сообщества, все ЕА разрабатываются с учетом внезапной потери связи и/или отключения эл.питания ПК
с одной стороны это хорошая методика, но с другой стороны это накладывает большие ограничения на стиль написания кода эксперта - ЕА работает только с магиками ордера, так например, если нужно написать мартингейл, то ЕА ищет в истории последний ордер со своим магиком и смотрит профит/убыток и принимается решении об увеличении или нет нового лота
... в общем с момента создания МТ - все ждут когда пропадет интернет, а сама стратегия уже не столь важна ))
увы, такая традиция у MQL-сообщества, все ЕА разрабатываются с учетом внезапной потери связи и/или отключения эл.питания ПК
с одной стороны это хорошая методика, но с другой стороны это накладывает большие ограничения на стиль написания кода эксперта - ЕА работает только с магиками ордера, так например, если нужно написать мартингейл, то ЕА ищет в истории последний ордер со своим магиком и смотрит профит/убыток и принимается решении об увеличении или нет нового лота
... в общем с момента создания МТ - все ждут когда пропадет интернет, а сама стратегия уже не столь важна ))
Здравствуйте, Игорь! Спасибо Вам за то, что поделились очень нужной информацией.
С уважением, Владимир.
увы, такая традиция у MQL-сообщества, все ЕА разрабатываются с учетом внезапной потери связи и/или отключения эл.питания ПК
с одной стороны это хорошая методика, но с другой стороны это накладывает большие ограничения на стиль написания кода эксперта - ЕА работает только с магиками ордера, так например, если нужно написать мартингейл, то ЕА ищет в истории последний ордер со своим магиком и смотрит профит/убыток и принимается решении об увеличении или нет нового лота
... в общем с момента создания МТ - все ждут когда пропадет интернет, а сама стратегия уже не столь важна ))
Защита от пожара, наводнения и дурака всегда должна быть!) Обычно стопами ограничиваюсь на случай потери связи с ДЦ.
Всем доброго дня и хорошего настроения!
Продолжаю изучение языка программирования MQL5. Приступил к досканальному изучению оператора цикла for, который согласно Справочника MQL5, цитирую:
Оператор цикла for
Выполняет оператор до тех пор, пока проверяемое выражение не станет ложным. Проверка выражения производится перед каждой итерацией
Захожу в описание оператора цикла for и там читаю о том, что:
Оператор выполняет оператор? Ну хорошо. Беру и запускаю оператор цикла for для перебора всех открытых позиций, дальше прописываю оператор if с нужными мне условиями:
а дальше ничего не происходит. Позиция Buy не открывается. Как это понять? Видимо, что-то делаю не так или вообще не правильно понимаю суть оператора цикла for?
Уважаемые специалисты! Прошу подсказать, но только не исправленным кодом, а словами, иначе так никогда не изучу язык программирования MQL5.
С уважением, Владимир.Всем доброго дня и хорошего настроения!
Продолжаю изучение языка программирования MQL5. Приступил к досканальному изучению оператора цикла for, который согласно Справочника MQL5, цитирую:
Оператор цикла for
Выполняет оператор до тех пор, пока проверяемое выражение не станет ложным. Проверка выражения производится перед каждой итерацией
Захожу в описание оператора цикла for и там читаю о том, что:
Оператор выполняет оператор? Ну хорошо. Беру и запускаю оператор цикла for для перебора всех открытых позиций, дальше прописываю оператор if с нужными мне условиями:
а ничего не происходит. Позиция Buy не открывается. Как это понять? Видимо, что-то делаю не так или вообще не правильно понимаю суть оператора цикла for?
Уважаемые специалисты! Прошу подсказать, но только не исправленным кодом, а словами, иначе так никогда не изучу язык программирования MQL5.
С уважением, Владимир.Оператор цикла и операторы в теле цикла. Не совсем классический русский язык.
Все конечно хорошо, но где итератор i в теле цикла? И для того что бы получить символ позиции и ее магик ее надо сперва выбрать. Описание позиции это структура (в мкл5 все структура и ордера и время и сделки) и она заполняется через выбор, селект по итератору который не тикет позиции, а номер позиции. и надо помнить, что в структуре описания позиции всегда последний выбор позиции.