Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это 2 терминала на 1 компьютере. На все предложения со стороны терминала обновиться - отвечаю "да".
Файл перенес на флеш с другого комьютера в виде .mql5, его открывал и компилировал разными эдиторами двух терминалов.
В общем, как понял, нужно обновить МТ..
При ручном апгрейде нужно также переносить папку /MQL5, так как она содержит огромное количество стандартных библиотек, которыми Вы пользуетесь.
Так как Вы перенесли только исполнимые файлы и свой исходник в виде mq5 файла, то совершили ошибку.
Обновился до бильда 695. Стала вылезать ошибка при компилировании инклуда Object.mqh.
Обновился до бильда 695. Стала вылезать ошибка при компилировании инклуда Object.mqh.
Автоматически штатно обновились или просто файлы перенесли?
Если штатно при хранении файлов в UserData, то скопируйте каталог /MQL5 из корня программы в каталог данных (он открывается из меню Файл).
А что случилось с экономическим календарем, он существует?
дополнительный вопрос: На основе каких данных он формировался и как его в ДЦ "подключить"?
Вот это условие
if( mn < STP || mn >= STP )
- оно по какой причине сформулировано таким образом? В нынешнем виде оно сработает при любом mn и STP. Зачем тогда его вообще вводить? А следующие два варианта - там идёт конкретное отсечение отдельных ситуаций.
А так вроде всё логично: one + two == tri (не вдаваясь в подробности расчётов one, two и tri) во всех трёх вариантах.
Об этом и речь. Я хочу общее пространство ( случай 1) разделить на две группы (случаи 2 и 3). По логике должно быть верно выражение one + two == tri, а у меня оно не выполняется. В первом условии one=148,а во-втором 172. Тоже не севпадение и для two и для tri. И в чем проблема не могу понять.
Может проблема в общем условии? Этот код еще от чего-то зависит?
Просто банальный пример:
условие (а): открываемся, если бар на H1 возрастает. TP=SL=100
условие (б): открываемся, если бар на H1 убывает. TP=SL=100
дополнительное условие: второй раз условия не проверяем, если уже есть позиция.
Тогда при включении (а) плюс (б) мы будем открываться каждый раз как только сработал TP/SL.
если включим (а) мы будем открываться во всех первых случаях плюс (!!!!) еще несколько раз, когда мы не открывались потому, что до этого открылись по условию (б)
и для включения только условия (б) аналогично
Да посмотрите внимательнее: как раз-таки это сравнение (one + two == tri) и выполняется, для каждого из вариантов.
Ну так это совсем другой вопрос, а именно: почему значение one из первого варианта не равно значению one из второго и третьего вариантов.
Вы во втором и третьем вариантах вводите ограничительное условие по сравнению с первым вариантом. Продумайте, почему, например, во втором варианте значение one увеличивается по сравнению с первым вариантом. Из приведённой части кода это пока не понятно.
К предыдущему посту.
В третьем случае: one=0, two=124, tri=124.
Данные не совпадают, а должны совпадать, т.к. второй и третий случаи являюся отдельными частями первого условия. Не могу понять в чем проблема.
ПС: input int STP=200;
1. Выбираю и пространство2 (one) и пространство3 (two); 230 = 148 + 82, т.е. пространство2 (one) = 148, а пространство3 (two)=82.
2. ... Должно остаться 148, а стало 172.
3. ... Должно остаться 82, а становится 124.
Я об этом и говорю: вопрос для Вас состоит в том, почему значение one из первого варианта не равно значению one из второго и третьего вариантов.
Чтобы найти ошибку в этом логическом допущении, предлагаю сделать очень просто: вывести на печать каждый случай увеличения "пространствХ" во всех трёх вариантах, сравнить результаты и проанализировать, по какой именно причине "значения пространств2 и пространства3" не являются одинаковыми.
Дополнение. ilunga уже намекнул, что при переходе от одного варианта к другому могут быть потеряны те или иные сделки. Ведь у Вас же в тело оператора if() включена убойная по своей силе функция/метод OpenPosition(). И в зависимости от условия, которое проверяется оператором if(), она срабатывает в разное время.