определение размера позиции

Автор: OldMo

определение размера позиции - Thu Apr 13 2017 09:12 AM

Определяю размер позиции следующим образом:
var buyPosSize = (int)(secRt.CurrencyBalance *0.9 / sec.FinInfo.BuyDeposit.Value);

Обычно все работает корректно, но иногда размер заявки меняется без видимых причин.
Реальный пример: скрипт выставляет заявку на 27 лотов, как ему и положено. Она держится 10+ пересчетов скрипта, затем заменяется заявкой на 3 лота и на следующем пересчете снова заменяется на 27.
Подозреваю, что дело в брокере (Финам). Если это так, то есть ли способы решить эту проблему не меняя брокера?
Автор: ViL

Re: определение размера позиции - Thu Apr 13 2017 10:06 AM

не факт, что это брокер виноват, нужно изучать, напишите в поддержку http://support.tslab.ru/ с примером.
Автор: OldMo

Re: определение размера позиции - Thu Apr 27 2017 01:12 PM

делюсь ответом. Цифры другие, суть та же:

Добрый день,
secRt.CurrencyBalance - это ОСТАТОК денег, т.е. свободные.
если нужна оценка портфеля, то нужно брать EstimatedBalance
далее, в Транзаке CurrencyBalance - это просто free из присылаемых данных.
По логу видно, что пока это была условная заявка - резервирования денег не было
Далее заявка пошла в рынок (превратилась в лимитку, прошло резервирование)
Денег осталось на 4 лота, скрипт изменил заявку.
Денег опять стало много (резервирование ушло), опять стало 39 лотов.
Отсюда решение, не смотреть на этот остаток., попробовать работать от оценки портфеля.
С уважением,
Служба поддержки TSLab
Автор: Nektodron

Re: определение размера позиции - Thu Apr 27 2017 01:24 PM

А что вы хотите увидеть? Вы смотрите на остаток денежных средств, которые присылает брокер и выставляете условную заявку. У любого брокера резервирование денег происходит, только для лимитных заявок, т.к. эти деньги на ГО резервирует биржа. Пока условная заявка в ожидании, никакого резервирования не происходит.
Можете выставить хоть 1000 условных заявок на 1млн лотов, брокер их легко пропустит. Но когда, сработает условие, выдаст ошибку, что денег нет.