У вас не стоит Flash Player
Настройки
#61572 - Wed Apr 09 2014 02:49 PM Как выставляются заявки?
AlexeyShevchenko Offline
stranger

Registered: Tue Apr 08 2014
Записи: 19
Здравствуйте, начал изучать API и вот есть непонятные моменты. Прошу помочь в понимании.

1. (В тестере) Я выставляю условную заявку BuyIfGreater. Что происходит в этот момент? Я так понимаю, заявки не имитируются, т.е. нет списка заявок? На следующей свече происходит проверка условия и если оно выполняется, то совершается сделка (открывается позиция), а если нет, то "виртуальная заявка" анулируется и нужно выставлять её заново на следующую свечу? Так же и со стоп-заявками, надо на каждом баре выставлять новую заявку?

2. Как это будет происходить в реальной торговле? После выполнения BuyIfGreater на сервере появится условная заявка, или будет так же, как и в тестере ожидать условия и после этого купится по рынку? Надо ли переписывать скрипт для реала, или он будет так же работать?

Наверх
#61574 - Wed Apr 09 2014 03:34 PM Re: Как выставляются заявки? [Re: AlexeyShevchenko]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
условная заявка работает так как обычно у брокеров она работает. цена стукнула по ней она исполняется. Нет ничего особенного в тслабе с ними.

На каждом баре нужно подтверждать вашу заявку. Это уже мильон раз обсуждено на форуме. Посмотрите уже накопленный материал, покачайте чужие скрипты и индикаторы. Это избавит от затрат времени на ожидание ответов.
_________________________
__


Наверх
#61579 - Wed Apr 09 2014 04:30 PM Re: Как выставляются заявки? [Re: ra81]
AlexeyShevchenko Offline
stranger

Registered: Tue Apr 08 2014
Записи: 19
Спасибо за ответ.
Да, я видел в примерах что все так делают. Просто хотел удостовериться что я правильно понял.

Я больше хотел узнать насчёт заявок. У обычного брокера мы отправляем заявку на сервер и она висит там в режиме ожидания. В любой момент времени мы можем запросить список заявок и проверить её состояние, изменить, или снять. (из опыта работы с Transaq). В TSLab всё так же? Т.е. я ставлю условную заявку BuyIfGreater и с помощью TSLab.Script.Realtime.IOrder можно проверить наличие активной заявки? Или всё же условная заявка сразу не отправляется на сервер и ждёт когда цена пробьёт? Тогда на каждом баре нужно выставлять новую заявку.
Спрашиваю это чтобы не было повторяющихся заявок.

Наверх
#61598 - Wed Apr 09 2014 07:45 PM Re: Как выставляются заявки? [Re: AlexeyShevchenko]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: AlexeyShevchenko
Спасибо за ответ.
Да, я видел в примерах что все так делают. Просто хотел удостовериться что я правильно понял.

Я больше хотел узнать насчёт заявок. У обычного брокера мы отправляем заявку на сервер и она висит там в режиме ожидания. В любой момент времени мы можем запросить список заявок и проверить её состояние, изменить, или снять. (из опыта работы с Transaq). В TSLab всё так же? Т.е. я ставлю условную заявку BuyIfGreater и с помощью TSLab.Script.Realtime.IOrder можно проверить наличие активной заявки? Или всё же условная заявка сразу не отправляется на сервер и ждёт когда цена пробьёт? Тогда на каждом баре нужно выставлять новую заявку.
Спрашиваю это чтобы не было повторяющихся заявок.


заявка всегда отправляется брокеру если брокер поддерживает условники. Если нет, тогда условник будет эмулироваться локально. Проверять наличие заявки можно так как вы написали да. Но все равно нужно каждый раз на новом пересчете подтверждать заявку иначе она будет снята.
Для одного сигнала вы не сможете подать две заявки. Ну конечно если вы не будете использовать прямое управление ордерами, тогда уже на ваш страх и риск.


Отредактировано ra81 (Wed Apr 09 2014 07:46 PM)
_________________________
__


Наверх
#61605 - Wed Apr 09 2014 09:50 PM Re: Как выставляются заявки? [Re: ra81]
AlexeyShevchenko Offline
stranger

Registered: Tue Apr 08 2014
Записи: 19
Originally Posted By: ra81

Проверять наличие заявки можно так как вы написали да. Но все равно нужно каждый раз на новом пересчете подтверждать заявку иначе она будет снята.


Можно подробней? Допустим цена на данный момент 100р, я ставлю условную заявку на покупкку не ниже 110р. Она отправляется на сервер транзака и там появляется условная заявка, которая ожидает исполнения. И что, если я на следующей свече не пошлю такую же заявку, то она отменится?

Наверх
#61624 - Thu Apr 10 2014 11:55 AM Re: Как выставляются заявки? [Re: AlexeyShevchenko]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: AlexeyShevchenko
Originally Posted By: ra81

Проверять наличие заявки можно так как вы написали да. Но все равно нужно каждый раз на новом пересчете подтверждать заявку иначе она будет снята.


Можно подробней? Допустим цена на данный момент 100р, я ставлю условную заявку на покупкку не ниже 110р. Она отправляется на сервер транзака и там появляется условная заявка, которая ожидает исполнения. И что, если я на следующей свече не пошлю такую же заявку, то она отменится?

да все так и есть. Только не на след свече а на следующем пересчете. Эти два понятия могут не совпадать во времени smile
_________________________
__


Наверх
#61629 - Thu Apr 10 2014 12:58 PM Re: Как выставляются заявки? [Re: ra81]
AlexeyShevchenko Offline
stranger

Registered: Tue Apr 08 2014
Записи: 19
но почему снимется заявка? она же уже висит на сервере и ждёт исполнения и пока мы сами её не отменим - она не должна сниматься.
Или TsLab посылает запрос на отмену заявки если на следующем пересчёте не было подтверждения этой заявки? А если было, то проверяется наличие активной заявки и если она есть, то ничего не отправляется на сервер?

Попробовал в реале - всё понял.
Так оно и происходит ))
Спасибо всем за терпение и понимание.


Отредактировано AlexeyShevchenko (Thu Apr 10 2014 04:12 PM)

Наверх
#61645 - Thu Apr 10 2014 05:16 PM Re: Как выставляются заявки? [Re: AlexeyShevchenko]
AlexeyShevchenko Offline
stranger

Registered: Tue Apr 08 2014
Записи: 19
Теперь такой вопрос:
В цикле идёт проверка на открытые позиции
IPosition LongPos = source.Positions.GetLastActiveForSignal("LONG");
if (LongPos == null)
{
source.Positions.BuyIfGreater(bar + 1, 1, source.RoundPrice(price), "LONG");
ctx.Log(bar+" Buy_Stop " + source.RoundPrice(price), 0xa000a0);
}

я выставил условную заявку, т.е. позиция ещё не открылась и каждую секнду выходит сообщение "Buy_Stop ....." на одном и том же баре. Как этого избежать? Как по названию сигнала получить список заявок?

Сам же и отвечу. Может куму понадобится.

var secRt = source as ISecurityRt;
IEnumerable<IOrder> orders=secRt.Orders;

Мне так нравится разговаривать с умными людьми. Сам спросил - сам ответил laugh laugh laugh


Отредактировано AlexeyShevchenko (Thu Apr 10 2014 05:42 PM)

Наверх


Moderator:  ViL, sar