Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1282
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проблема в советнике. Кстати, правилами на виртуальном хостинге dll запрещены.
Раньше все чудесно работало. Надо было на бесплатном хостинге попробовать. В общем подарил метаквотам 15 баксов )))
Спасибо за ответ!
Советник открывает рыночные ордера, а потом модифицирует их, устанавливает ТП и СЛ. Проверка в тестере. Первый ордер модифицируется, нужными параметрами. Открывается второй ордер, в том же направлении, при действующем первом, но модифицируется первый ордер, по параметрам второго, а второй остается с нулевыми СЛ и ТП. При этом в условии стоит - если СЛ == 0 и ТП == 0, а модифицируется, почему то, тот у которого эти показатели уже не нулевые. Почему? Изменение перебора, от первого к последнему, ни чего не меняет.
И еще. В тестере, в графе прибыль, при открытых двух ордерах прибыль ордеров указана наоборот - у первого открытого ордера указана прибыль второго и наоборот. Почему?
И еще. Нужно нарисовать трендовую линию по двум экстремумам. Линия рисуется, но огрызок, от бара до бара. Это не трендовая линия, а просто отрезок, а хотелось бы видеть именно линию.
Советник открывает рыночные ордера, а потом модифицирует их, устанавливает ТП и СЛ. Проверка в тестере. Первый ордер модифицируется, нужными параметрами. Открывается второй ордер, в том же направлении, при действующем первом, но модифицируется первый ордер, по параметрам второго, а второй остается с нулевыми СЛ и ТП. При этом в условии стоит - если СЛ == 0 и ТП == 0, а модифицируется, почему то, тот у которого эти показатели уже не нулевые. Почему? Изменение перебора, от первого к последнему, ни чего не меняет.
И еще. В тестере, в графе прибыль, при открытых двух ордерах прибыль ордеров указана наоборот - у первого открытого ордера указана прибыль второго и наоборот. Почему?
И еще. Нужно нарисовать трендовую линию по двум экстремумам. Линия рисуется, но огрызок, от бара до бара. Это не трендовая линия, а просто отрезок, а хотелось бы видеть именно линию.
1. Не ОРДЕРА, а ПОЗИЦИИ
2. Сформулируйте свой вопрос - пока увидел повествование, а вопроса и алгоритма "как хочется, чтобы работало" я не увидел.
1. Не ОРДЕРА, а ПОЗИЦИИ
2. Сформулируйте свой вопрос - пока увидел повествование, а вопроса и алгоритма "как хочется, чтобы работало" я не увидел.
И так понятно что позиции, раз это на языке mql5. И в коде стоит position. Вопрос - почему модифицируется первая позиция, а не последняя, хотя в условии указано:
И так понятно что позиции, раз это на языке mql5. И в коде стоит position. Вопрос - почему модифицируется первая позиция, а не последняя, хотя в условии указано:
Вопрос где??? Опишите алгоритм "я хочу чтобы алгоритм был такой ...".
Вопрос где??? Опишите алгоритм "я хочу чтобы алгоритм был такой ...".
При пробое трендовой линии и закрытии бара выше/ниже онной, открывается позиция с нулевыми СЛ и ТП. Сразу же после открытия, устанавливается нужные ТП и СЛ (позиция модифицируется). Почему модифицируется не последняя позиция, а предыдущая, при этом нарушая условие:
Теперь понятно? Даже если в условие ввести время открытие позиции, ни чего не меняется. Ограничения по количеству позиций нет.
При пробое трендовой линии и закрытии бара выше/ниже онной, открывается позиция с нулевыми СЛ и ТП. Сразу же после открытия, устанавливается нужные ТП и СЛ (позиция модифицируется). Почему модифицируется не последняя позиция, а предыдущая, при этом нарушая условие:
Теперь понятно? Даже если в условие ввести время открытие позиции, ни чего не меняется. Ограничения по количеству позиций нет.
У Вы уверены, что в момент модификации новая позиция уже есть? (отослать торговый приказ - это ещё не гарантия, что позиция есть).
Когда входите в условие (SL == 0.0 и TP == 0.0) распечатайте тикет позиции.
У Вы уверены, что в момент модификации новая позиция уже есть? (отослать торговый приказ - это ещё не гарантия, что позиция есть).
Когда входите в условие (SL == 0.0 и TP == 0.0) распечатайте тикет позиции.
Да, вторая позиция уже есть. Я журнал читаю. Метод Sell произведен успешно, код 10009. (Тикет #3). А потом следует модификация, только позиции с тикетом #2, которая тоже выполнена успешно (модификация, хотя, подчеркиваю, по условиям происходить не должна, СЛ уже не равен 0!).
Уже писал, пробовал и по времени открытия, и по тикету, ни фига, модифицирует предыдущую позицию. Например:
Да, вторая позиция уже есть. Я журнал читаю. Метод Sell произведен успешно, код 10009. (Тикет #3). А потом следует модификация, только позиции с тикетом #2, которая тоже выполнена успешно.
Уже писал, пробовал и по времени открытия, и по тикету, ни фига, модифицирует предыдущую позицию. Например:
То есть: Вы не проверяете результат появление позиции и Вы не желаете даже распечатать тикет. В таком случае прикрепите полный код (прикрепите при помощи кнопки
)
То есть: Вы не проверяете результат появление позиции и Вы не желаете даже распечатать тикет. В таком случае прикрепите полный код (прикрепите при помощи кнопки )
Вы не желаете даже распечатать тикет - это не понял. Вот выписка журнала.
2021.02.01 12:54:55.338 2018.01.02 17:00:00 market sell 0.01 EURUSD (1.20384 / 1.20402)
2021.02.01 12:54:55.338 2018.01.02 17:00:00 deal #2 sell 0.01 EURUSD at 1.20384 done (based on order #2)
2021.02.01 12:54:55.338 2018.01.02 17:00:00 deal performed [#2 sell 0.01 EURUSD at 1.20384]
2021.02.01 12:54:55.338 2018.01.02 17:00:00 order performed sell 0.01 at 1.20384 [#2 sell 0.01 EURUSD at 1.20384]
2021.02.01 12:54:55.344 2018.01.02 17:00:00 CTrade::OrderSend: market sell 0.01 EURUSD [done at 1.20384]
2021.02.01 12:54:55.344 2018.01.02 17:00:00 Метод Sell() виконаний успішно. Код повернення = 10009 (done at 1.20384)
2021.02.01 12:54:55.344 2018.01.02 17:00:00 position modified [#2 sell 0.01 EURUSD 1.20384 sl: 1.20813 tp: 1.20013]
2021.02.01 12:54:55.346 2018.01.02 17:00:00 CTrade::OrderSend: modify position #2 EURUSD (sl: 1.20813, tp: 1.20013) [done]
2021.02.01 12:54:55.346 2018.01.02 17:00:00 Метод PositionModify() виконаний успішно. Код повернення = 10009 (done)
============================================================================================================== разделил, появление второй позиции
2021.02.01 12:55:48.819 2018.01.03 09:00:00 market sell 0.01 EURUSD (1.20442 / 1.20460)
2021.02.01 12:55:48.819 2018.01.03 09:00:00 deal #3 sell 0.01 EURUSD at 1.20442 done (based on order #3)
2021.02.01 12:55:48.819 2018.01.03 09:00:00 deal performed [#3 sell 0.01 EURUSD at 1.20442]
2021.02.01 12:55:48.819 2018.01.03 09:00:00 order performed sell 0.01 at 1.20442 [#3 sell 0.01 EURUSD at 1.20442]
2021.02.01 12:55:48.821 2018.01.03 09:00:00 CTrade::OrderSend: market sell 0.01 EURUSD [done at 1.20442]
2021.02.01 12:55:48.821 2018.01.03 09:00:00 Метод Sell() виконаний успішно. Код повернення = 10009 (done at 1.20442)
====================================================================================================================== после успешно открытой позиции, модификация, но предыдущего ордера
2021.02.01 12:55:48.821 2018.01.03 09:00:00 position modified [#2 sell 0.01 EURUSD 1.20384 sl: 1.20663 tp: 1.20154]
2021.02.01 12:55:48.823 2018.01.03 09:00:00 CTrade::OrderSend: modify position #2 EURUSD (sl: 1.20663, tp: 1.20154) [done]
2021.02.01 12:55:48.823 2018.01.03 09:00:00 Метод PositionModify() виконаний успішно. Код повернення = 10009 (done)
Я выложил полный код модификации позиции на Sell, с вариантами.