У вас не стоит Flash Player
Настройки
#81662 - Sun Apr 09 2017 03:52 PM Выставление ордеров через API TSLab
Michael Shpin Offline
stranger

Registered: Thu Jun 27 2013
Записи: 6
Всем привет. Решили попробовать прямое управление ордерами и столкнулся с непониманием работы 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. И такими изменениями ждать полного набора позы. Есть ли более красивые способы ? Может это настройками «Агента» или программы как - то регулируется.

Наверх
#81716 - Wed Apr 12 2017 04:37 PM Re: Выставление ордеров через API TSLab [Re: Michael Shpin]
Michael Shpin Offline
stranger

Registered: Thu Jun 27 2013
Записи: 6
Последние мои тесты показывают что в 1.2 на Финаме всё работает отлично, заявка выставляется 1 раз и всё. В 2.0 каждый пересчёт.
На Алоре и там и там каждый пересчёт.

Наверх
#81719 - Wed Apr 12 2017 04:46 PM Re: Выставление ордеров через API TSLab [Re: Michael Shpin]
Michael Shpin Offline
stranger

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


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

Наверх
#81720 - Wed Apr 12 2017 04:53 PM Re: Выставление ордеров через API TSLab [Re: Michael Shpin]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8139
Судя по описанию, похоже на ошибку в программе. Пожалуйста пришлите на поддержку данные для воспроизведения.

Наверх
#81724 - Wed Apr 12 2017 09:25 PM Re: Выставление ордеров через API TSLab [Re: Michael Shpin]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8139
Эта ошибка исправлена в ночных сборках, чтобы получить сборку, нужно обратиться в центр поддержки.

Наверх


Moderator:  ViL, sar