Выставление ордеров через API TSLab

Автор: Michael Shpin

Выставление ордеров через API TSLab - Sun Apr 09 2017 03:52 PM

Всем привет. Решили попробовать прямое управление ордерами и столкнулся с непониманием работы TSLab. Почему заявки, выставленные через ISecurityRt. NewOrder снимаются и перевыставляются каждый пересчёт если цена остаётся не изменой.
Пошерстил форум, в теме Практические примеры API об этом говорят, но не говорят причины. Времени уже много с той темы прошло и выросло уже не мало Pro программистов TSLab. Добрые люди разъясните пожалуйста, как правильно работать с заявками, что бы они стояли столько сколько мне нужно и я их сам отменял либо же они исполнялись.
Вот просто код. Брокер Алор. Заяка если есть сниметься если нет, понятно выставляется. Если убрать проверку на HasActiveOrders, то просто перевыставление происходит каждый пересчёт.
Code:
public class TestTradeScript : IExternalScript
{
       
        public readonly OptimProperty TargetPrice = new OptimProperty(0, 1, 500000, 1); 

        public void Execute(IContext ctx, ISecurity sec)
	{

            ISecurityRt secRt = sec as ISecurityRt;
            if (secRt == null) return;

            if (!secRt.HasActiveOrders)
            {
                double price = secRt.RoundPrice(TargetPrice.Value);
                secRt.NewOrder(OrderType.Limit, true, price, 0d, 1, "signal");
            }
	}

}


А вообще корни проблемы, по которой я полез в эти дебри — это «частичное исполнение лимитных заявок». Кто как решает эту проблему? Я сейчас просто через позиции генерирую новые сигналы пока не наберётся нужный объём. В итоге имею сразу пачку открытых позиций разного объёма, что не удобно потом разгружать и в целом сопровождать. Встречал на форуме что в 2.0 теперь как то можно заставить позу ждать пока «нальют», но мой тесты показывают аналогичное поведение лимитных заявок как в 1.2, они формируются кусками. Единственное что я попробовал сделать это после пересчёта отрытую не полную позицию изменить через ChangeAtPrice. И такими изменениями ждать полного набора позы. Есть ли более красивые способы ? Может это настройками «Агента» или программы как - то регулируется.
Автор: Michael Shpin

Re: Выставление ордеров через API TSLab - Wed Apr 12 2017 04:37 PM

Последние мои тесты показывают что в 1.2 на Финаме всё работает отлично, заявка выставляется 1 раз и всё. В 2.0 каждый пересчёт.
На Алоре и там и там каждый пересчёт.
Автор: Michael Shpin

Re: Выставление ордеров через API TSLab - Wed Apr 12 2017 04:46 PM

Quote:
А вообще корни проблемы, по которой я полез в эти дебри — это «частичное исполнение лимитных заявок»...
Может это настройками «Агента» или программы как - то регулируется.


Настройка торгового агента "Ждать исполнения входа" (Количество свечей, которые программа будет ждать исполнения лимитной заявки открытия" В 2.0 на Алоре нефига не работает. Позиция формируется сразу по закрытию свечи и не важно что она не полная.
Автор: ViL

Re: Выставление ордеров через API TSLab - Wed Apr 12 2017 04:53 PM

Судя по описанию, похоже на ошибку в программе. Пожалуйста пришлите на поддержку данные для воспроизведения.
Автор: ViL

Re: Выставление ордеров через API TSLab - Wed Apr 12 2017 09:25 PM

Эта ошибка исправлена в ночных сборках, чтобы получить сборку, нужно обратиться в центр поддержки.