Commission для открытой позиции - страница 3

 
Aleksander Gladkov #:

Это не возможно объяснить:

Функция 

ulong  HistoryDealGetTicket(
   int  index      // номер сделки
   );

периодически выдает 0 при обращении к существующей сделке

воистину не случайно не реализовали функцию Commission().

История предварительно должна быть запрошена. У вас тут не понятно, что делаете. 
 
Artyom Trishkin #:
История предварительно должна быть запрошена. У вас тут не понятно, что делаете. 

Все верно, у меня в цикле инициированным HistorySelect(), был вызов процедуры для определения комиссии использующей HistorySelectByPosition()

Спасибо.

К сожалению я не успел завершить отладку, так как мой брокер xChief в данный момент убрал комиссию для BTCUSD

 
fxsaber #:

Что эта рекомендация ошибочна.

Ошибки никакой нет. Лучше было бы уточнить нюансы, а не вводить людей в заблуждение.

Да, вопрос сформулирован относительно "открытой" позиции, но это никак не меняет алгоритм подсчета комиссий на основе торговых API MQL5. А именно:

Комиссии начисляются только при сделках и только по ним могут считаться. Т.е. фактически это всегда восстанавливается по истории. Перебор сделок по заданной позиции дает возможность узнать сумму комиссий к данному моменту - позиция может быть просто открытой, долитой, частично закрытой или закрытой вовсе.

Если кто-то продал 1 лот, а потом купил 0.2 лота, все релевантные комиссии будут в этих сделках. Это будет комиссия по данной еще открытой позиции.

По поводу будущих комиссий (когда позиция еще не закрыта) сотрудники MQ писали, что это нетривиальная задача, не имеющая гарантированно точного решения, поэтому можно только спекулировать на аналогичных сделках в прошлом.

 
Stanislav Korotky #:
По поводу будущих комиссий (когда позиция еще не закрыта) сотрудники MQ писали, что это нетривиальная задача, не имеющая гарантированно точного решения, поэтому можно только спекулировать на аналогичных сделках в прошлом.

Однако же им как-то удалось её решить в МТ4!