При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.
При этом PositionGetDouble(POSITION_SWAP) выдает своп только одной (видимо последней) сделки из состава позиции, а не совокупный своп всей позиции.
Отсюда вопрос:
"Как получить своп для позиции если она включает в себя несколько сделок?"
Нет ничего лучше, чем код + проверка ...
И сразу ломка шаблона: если используется хэдж, о какой "совокупной позиции" идёт речь? Что Вы под этим понимаете?
В общем подробнее, сколько позиций открыто: скриншот из вкладки "Торговля".
Для визуализации ПОЗИЦИЙ используйте этот код: ListPositions.
На экран (при помощи Comment) будет выводится список всех ПОЗИЦИЙ.
Текст формируемый для каждой ПОЗИЦИИ:
text+=IntegerToString(i)+ " | "+m_position.Symbol()+ " | "+IntegerToString(m_position.Ticket())+ " | "+TimeToString(m_position.Time(),TIME_DATE|TIME_MINUTES|TIME_SECONDS)+ " | "+EnumToString(m_position.PositionType())+ " | "+DoubleToString(m_position.Volume(),2)+ " | "+DoubleToString(m_position.PriceOpen(),8)+ " | "+DoubleToString(m_position.StopLoss(),8)+ " | "+DoubleToString(m_position.TakeProfit(),8)+ " | "+DoubleToString(m_position.Swap(),8)+ " | "+DoubleToString(m_position.Profit(),8)+ "\n";
То есть Вы сможете увидеть своп для каждой ПОЗИЦИИ.
Нет ничего лучше, чем код + проверка ...
И сразу ломка шаблона: если используется хэдж, о какой "совокупной позиции" идёт речь? Что Вы под этим понимаете?
В общем подробнее, сколько позиций открыто: скриншот из вкладки "Торговля".
Уважаемый, просьба не приписывать мне чужие изречения!
Я писал не про "совокупную позицию", это видимо писал кто-то другой. У меня написано "совокупный своп всей позиции".
В виду имелось следующее: если позиция включает в себя несколько сделок, то как получить своп по всей позиции (совокупно по всем входящим в неё сделкам)?
Уважаемый, просьба не приписывать мне чужие изречения!
Я писал не про "совокупную позицию", это видимо писал кто-то другой. У меня написано "совокупный своп всей позиции".
В виду имелось следующее: если позиция включает в себя несколько сделок, то как получить своп по всей позиции (совокупно по всем входящим в неё сделкам)?
Ага, так всё-таки нужно информация по сделкам, а не по ПОЗИЦИЯМ.
Тогда наводящий вопрос: на хэдже для одной позиции Вы получаете несколько сделок при помощи частичного закрытия?
В общем мощно поступать так: зная POSITION_ID нужно при помощи HistorySelectByPosition запросить историю сделок и ордеров, имеющих указанный идентификатор позиции. Дальше остаётся пройтись по этому списку СДЕЛОК и получить для каждой сделки своп.
Примерный код есть здесь: HistorySelectByPosition - только тогда я не делал вывода свопа.
Vladimir Karputov:
1. Ага, так всё-таки нужно информация по сделкам, а не по ПОЗИЦИЯМ.
Тогда наводящий вопрос: на хэдже для одной позиции Вы получаете несколько сделок при помощи частичного закрытия?
2. В общем мощно поступать так: зная POSITION_ID нужно при помощи HistorySelectByPosition запросить историю сделок и ордеров, имеющих указанный идентификатор позиции. Дальше остаётся пройтись по этому списку СДЕЛОК и получить для каждой сделки своп.
Примерный код есть здесь: HistorySelectByPosition - только тогда я не делал вывода свопа.
1. Скорее при помощи частичного открытия :-), я открываю новые сделки к имеющейся позиции.
2. Понятно, что перебором сделок можно вычислить общий своп позиции. Но есть же стандартная PositionGetDouble(POSITION_SWAP). На кой чёрт она нужна тогда?
Как без перебора сделок получить своп позиции? Возможно ли это в принципе?
1. Скорее при помощи частичного открытия :-), я открываю новые сделки к имеющейся позиции.
...
На хедже? Каким образом? Вы уверены, что у Вас хедж счёт? Все хедж счета имеют в заголовке терминала надпись "... Hedge ...":
Покажите пожалуйста скриншот заголовка Вашего терминала.
На хедже? Каким образом? Вы уверены, что у Вас хедж счёт? Все хедж счета имеют в заголовке терминала надпись "... Hedge ...":
Покажите пожалуйста скриншот заголовка Вашего терминала.
Счет хеджевый.
Действительно, проверка показала, сделки не добавлялись в позицию. Создавались новые позиции.
Спасибо за терпение.
Итог:
В режиме хеджинга каждая позиция содержит только одну сделку.
В режиме неттинга, позиция может содержать несколько сделок.
Правильно?
Счет хеджевый.
Действительно, проверка показала, сделки не добавлялись в позицию. Создавались новые позиции.
Спасибо за терпение.
Итог:
В режиме хеджинга каждая позиция содержит только одну сделку.
В режиме неттинга, позиция может содержать несколько сделок.
Правильно?
Не совсем:
- на хэдж счёте одна позиция может состоять из БОЛЕЕ ЧЕМ ДВУХ сделок - но это скорее исключение, когда эту позицию по кусочкам закрываем встречными. А обычная ситуация на хэдж - позиция состоит из ДВУХ сделок - IN и OUT.
- на неттинге позиция может содержать как НЕСКОЛЬКО сделок - например доливка или наоборот встречное открытие будет потихоньку уменьшать эту позицию, так и может содержать ВСЕГО ДВЕ сделки - IN и OUT.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При независимом представлении позиций (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) по каждому символу одновременно может быть открыто несколько позиций.
При этом PositionGetDouble(POSITION_SWAP) выдает своп только одной (видимо последней) сделки из состава позиции, а не совокупный своп всей позиции.
Отсюда вопрос:
"Как получить своп для позиции если она включает в себя несколько сделок?"