Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Посмотрел код, немного не понял суть стратегии, например, зачем открывать сразу 2 ордера на покупку, практически по одной цене? Так должно быть или это ошибка?
Да. Именно так и задумано. В коде нет стратегии, она только у меня в голове. Я делаю полуавтомат. Когда считаю нужным, разрешаю советнику торговать. И он уже начинает тактически по условиям выставлять ордера. Там же нет условий по закрытию открытых ордеров. Потому как не решил вопрос с правильный автоматическим открытием. Я же пытаюсь понять, в чем может быть проблема и как правильнее будет указать кодом логику по, тем условиям, что я указал? Это моя главная задача сейчас, понять как. Потому как перепробовал кучу вариаций, но с переменным успехом, то работает то нет.
// Если ордеров нет (OrdersTotal()==0), зачем проверять есть среди них ордера с заданным меджиком или нет?
OrdersTotal()==0, нужен для того чтобы, советник открыл первый ордер, при условии что нету ни одного открытого в рынке. А без этой функции, он молчит как в танке, если в рынке полная тишина.
// Про Magicq4 в условии нет ничего, там про меджик Magicq3.
Пардон! :) За опечатку. Исправил:
// Если в открытых присутствуют позиции с магическими номерами Magic или Magicq1,
но при этом чтобы не было в открытых с номером Magicq4.
А сам Magicq4, инициализирован во внешних переменных.
Вот закодить все по условиям и чтобы как надо открывало и возникла проблема. Из за которой я и обратился к опытным кодерам, кто может приподать урок мне, как лучше реализовать эту логику в условиях MQL4? :-)
// Если ордеров нет (OrdersTotal()==0), зачем проверять есть среди них ордера с заданным меджиком или нет?
Если в терминале нет открытых ордеров то OrdersTotal() вернет 0, а это значит что физически не может быть ордеров с меджиками Magicq1 и Magicq2, так как открытых вообще нет.
Если в терминале появляется какие либо ордера, то OrdersTotal() вернет их количество, а это значит что это условие (с использованием &) всегда будет FALSE и нечего проверено не будет, я вот про что.
По поводу кода, чем смогу, тем помогу :)
Просто в прикрепленном файле этот кусок выглядит так:
// Если ордеров нет (OrdersTotal()==0), зачем проверять есть среди них ордера с заданным меджиком или нет?
Если в терминале нет открытых ордеров то OrdersTotal() вернет 0, а это значит что физически не может быть ордеров с меджиками Magicq1 и Magicq2, так как открытых вообще нет.
Если в терминале появляется какие либо ордера, то OrdersTotal() вернет их количество, а это значит что это условие (с использованием &) всегда будет FALSE и нечего проверено не будет, я вот про что.
По поводу кода, чем смогу, тем помогу :)
Привет! Просто если в рынке есть открытые ордера с данными магиками. То открытие ордеров с подобным магиком запрещено. Но бывает, что в рынке ноль ордеров. И чтобы советник вошел в рынок пришлось ввести дополнительное условие. А когда в рынке нету ордеров, счетчик пытается найти ордер для проверки, а его нету. Соответственно условие не проверяется и советник молчит. Только вот в условии я дополнил такое условие:
То есть. Если нет ни одного ордера, то открываем по условиям. Если ордер хоть один есть, проверяем на наличие подобного магика, если нету, то выполняем условие по открытию. :)