Самообучение языку MQL5 с полного нуля - страница 54

 
MrBrooklin:

Большое спасибо, Андрей! Про Magic всё понятно, потому что на одном символе, действительно, могут быть открыты сразу несколько позиций, но возник встречный вопрос. Советник будет перебирать открытые позиции сразу по всем символам, если ему явно не указать на текущий символ? И это даже не смотря на то, что он установлен на конкретную валютную пару, например, EURUSD? Честно говоря, не совсем пойму вот этот момент.

С уважением, Владимир.

Исторически сложилось, что искать надо по всему торговому окружению. Как бы защита от дурака. Пользователь не знает на какой символ кидает советник))))

ОрдерТотал и ПозишнТотал возвращают количество всех ордеров / позиций в терминале. Узнать сколько позиций на символе можно только перебором с учетом фильтра равенства символа ордера / позиции символу текущего окна)))

Позиция может быть в неттинге только одна. Тикет позиции не меняется никогда и используется при обращении к позиции. Поэтому для одной позиции можно запомнить ее тикет и не перебирать позиции. Для хеджа можно запомнить 2 тикета.

Для отложенных ордеров можно запомнить их тикеты в разные переменные, или в массив. Но это сложнее.

 
Valeriy Yastremskiy:

Исторически сложилось, что искать надо по всему торговому окружению. Как бы защита от дурака. Пользователь не знает на какой символ кидает советник))))

ОрдерТотал и ПозишнТотал возвращают количество всех ордеров / позиций в терминале. Узнать сколько позиций на символе можно только перебором с учетом фильтра равенства символа ордера / позиции символу текущего окна)))

Не забывайте о маджике и типе ордера/позиции, что помогает точно отсортировать и определить количество искомых открытых позиций)

 
VVT:

Не забывайте о маджике и типе ордера/позиции, что помогает точно отсортировать и определить количество искомых открытых позиций)

Само собой. Вопрос почему мы делаем поиск по всем ордерам. Потому что есть функция которая возвращает общее количество ордеров на всех инструментах и нет функции, которая возвращала бы количество ордеров на заданном инструменте. А жаль) 

 
Valeriy Yastremskiy:

Само собой. Вопрос почему мы делаем поиск по всем ордерам. Потому что есть функция которая возвращает общее количество ордеров на всех инструментах и нет функции, которая возвращала бы количество ордеров на заданном инструменте. А жаль) 

добавить в параметр поиска искомый символ не пробовали?

 
Надо и мне поучиться хоть чему нибудь
 
VVT:

добавить в параметр поиска искомый символ не пробовали?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Самообучение языку MQL5 с полного нуля

Valeriy Yastremskiy, 2020.10.12 15:18

Исторически сложилось, что искать надо по всему торговому окружению. Как бы защита от дурака. Пользователь не знает на какой символ кидает советник))))

ОрдерТотал и ПозишнТотал возвращают количество всех ордеров / позиций в терминале. Узнать сколько позиций на символе можно только перебором с учетом фильтра равенства символа ордера / позиции символу текущего окна)))

Позиция может быть в неттинге только одна. Тикет позиции не меняется никогда и используется при обращении к позиции. Поэтому для одной позиции можно запомнить ее тикет и не перебирать позиции. Для хеджа можно запомнить 2 тикета.

Для отложенных ордеров можно запомнить их тикеты в разные переменные, или в массив. Но это сложнее.

Да конечно)))))
 

Всем большое спасибо за подсказки и советы! Пришлось отъехать на несколько часов, поэтому не смог сразу всем ответить.

С уважением, Владимир.

 
Vasiliy Sokolov:

Сделал кое-какие правки

Василий, спасибо! Это не кое-какие поправки, а настоящий деловой совет, в который вложен конкретный смысл. Пытался расписать всё последовательно и подробно только потому, что это результат технического мышления. Сейчас уже прекрасно понимаю, что нужно мыслить, как программист, а не как электронщик. Надеюсь, что в плане мышление скоро всё наладится.

С уважением, Владимир.

 
Valeriy Yastremskiy:

Исторически сложилось, что искать надо по всему торговому окружению. Как бы защита от дурака. Пользователь не знает на какой символ кидает советник))))

ОрдерТотал и ПозишнТотал возвращают количество всех ордеров / позиций в терминале. Узнать сколько позиций на символе можно только перебором с учетом фильтра равенства символа ордера / позиции символу текущего окна)))

Позиция может быть в неттинге только одна. Тикет позиции не меняется никогда и используется при обращении к позиции. Поэтому для одной позиции можно запомнить ее тикет и не перебирать позиции. Для хеджа можно запомнить 2 тикета.

Для отложенных ордеров можно запомнить их тикеты в разные переменные, или в массив. Но это сложнее.

Спасибо, Валерий, за развёрнутый ответ и, особенно, за информацию про тикет.

С уважением, Владимир

 
Vasiliy Sokolov:

Сделал кое-какие правки

Василий, есть ещё один момент, который мне нужно уточнить. В пункте 2 алгоритма советника написал: "В советнике создаем блок входных параметров с двумя параметрами: задать "уровень трейлинга" и задать "шаг трейлинга". Что имелось ввиду под параметром задать "уровень трейлинга". Это такой "положительный" уровень текущей цены относительно цены открытия позиции, при котором бы трейлинг переносил Stop Loss на уровень цены открытия, то есть в безубыток.

С уважением, Владимир.