Владимир Зайцев (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
tri Связанные заявки
 
Спасибо, все получилось. Закончил писать робота :-)
Последний вопрос. Почему нельзя для
ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMIT_ORDER; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes;
ставить  
EXPIRY_DATE=GTC ?
В чем смысл такого запрета?
tri Связанные заявки
 
Цитата
Egor Zaytsev написал:
Цитата
Владимир Зайцев   написал:


Теперь ситуация вот какая:

1. Я Шорчу по 100
2. Выставляется заявка на Покупку(тейк профит) по 90.
3. Выставляется заявка Стоп Лосс на 110.

Допустим я зашортил 100, и заявки 2-3 пункта стали активными

вот если профит отработал по 90, заявка на стоп лосс исчезнет? И наоборот, Снимет ли стоп лосс Тейк профит? Ведь связанны они по BASE_ORDER_KEY лимитной заявки.

Спасибо.
Добрый день.

В этом случае будет так.
После того, как обычная заявка исполнится, то активируется либо тейк по исполнению, либо стоп по исполнению
исходя из условий. При этом после исполнения, например тейка, стоп останется в статусе активен.
Если вы хотите, чтобы при исполнении тейка снимался стоп и наоборот, то Вам нужно выбрать другое условие.
Т.е после шорта 100 выставить "Тейк профит и стоп лимит по исполнению". Т.е ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMIT_ORDER.
Спасибо. Т.е. Вместо двух заявок Тейк Профит по исполнению и Стоп Лимит по исполнению Их объединить. Верно? Спасибо.
А ее можно использовать с опцией ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes;? Т.е. чтобы она активировалась при частичном исполнении?
tri Связанные заявки
 
Проверил опытным путем.
После того как лимитная отработала и оба стопа стали активными, при срабатывании условия Тейк Профит, Стоп Лосс остался висеть.
Что делать в такой ситуации?
Может есть возможность Тейк Профит и Стоп Лосс по частичному исполнению выставлять одной заявкой?
tri Связанные заявки
 
Добрый день. Получилось сделать тейк профит и стоп лосс как Вы советовали. Теперь вот какой вопрос.

1. Сначала я выставляю лимитную на шорт.
sellonRynok:='ACCOUNT=L01-00000F00; CLIENT_CODE=666; TYPE=L;  TRANS_ID=' +inttostr(transID) + '; CLASSCODE=' + Kod_ploschadki + ';  SECCODE=' + SECCODE +'; ACTION=NEW_ORDER; OPERATION=S; PRICE=' +  FloatToStr(b) + '; QUANTITY=' + QUANTITY + ';';
2. После того как Quik ее регистрирует, я ловлю ее BASE_ORDER_KEY и создаю две связанных заявки по частичному исполнению на тейк профит и стоп лимит по исполнению, используя  BASE_ORDER_KEY пункта 1.

Тейк профит:= 'ACTION=NEW_STOP_ORDER; TRANS_ID='  +inttostr(transID+1) + ';  STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER;  BASE_ORDER_KEY=' + OrderDlyaPodstanivki + '; USE_BASE_ORDER_BALANCE=yes;  ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; SPREAD=0; OFFSET=0;  OFFSET_UNITS= PERCENTS; SPREAD_UNITS= PERCENTS; STOPPRICE=' +  FloatToStr(a) + '; CLIENT_CODE= 666; OPERATION=B; SECCODE=' + SECCODE  +'; CLASSCODE=' + Kod_ploschadki + '; ACCOUNT=L01-00000F00;';

Стоп Лосс:= 'ACTION=NEW_STOP_ORDER; TRANS_ID=' +inttostr(transID+2) + '; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER; BASE_ORDER_KEY=' + OrderDlyaPodstanivki + '; USE_BASE_ORDER_BALANCE=yes; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; STOPPRICE=' + FloatToStr(StopLoss) + '; PRICE='  + FloatToStr(StopLoss) +  '; CLIENT_CODE= 666; OPERATION=B; SECCODE=' + SECCODE +'; CLASSCODE=' + Kod_ploschadki + '; ACCOUNT=L01-00000F00;';

Теперь ситуация вот какая:

1. Я Шорчу по 100
2. Выставляется заявка на Покупку(тейк профит) по 90.
3. Выставляется заявка Стоп Лосс на 110.

Допустим я зашортил 100, и заявки 2-3 пункта стали активными

вот если профит отработал по 90, заявка на стоп лосс исчезнет? И наоборот, Снимет ли стоп лосс Тейк профит? Ведь связанны они по BASE_ORDER_KEY лимитной заявки.

Спасибо.
tri Связанные заявки
 
Цитата
Egor Zaytsev написал:
Цитата
Владимир Зайцев   написал:
Можно ли тут же выставить еще одну заявку по частичному исполнению заявки из пункта 1 лимитирующую потери, ну т.е. вроде стоплоса по BASE_ORDER_KEY?

Добрый день.
Если только таким образом. Стоп лимит по исполнению заявки.
Т.е тоже самое, что и во втором пункте у Вас, только вместо
STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER
указываете  STOP_ORDER_KIND=ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER.

Изящно! Спасибо, буду пробовать.
tri Связанные заявки
 
Цитата
Egor Zaytsev написал:
Цитата
Владимир Зайцев   написал:
Спасибо!
Подскажите, а можно ли еще по  BASE_ORDER_NUMBER помимо связанного Тейк профита поставить еще  Стоп лос (в идеале тоже связанный)?
Добрый день.

Может вы имеете ввиду BASE_ORDER_KEY и не связанную, а по исполнению?
То в таком случае можно использовать тип заявки:   ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» – стоп-лимит по исполнению заявки
Добрый день!
1. Сначала я выставляю лимитную на шорт.
sellonRynok:='ACCOUNT=L01-00000F00; CLIENT_CODE=666; TYPE=L; TRANS_ID=' +inttostr(transID) + '; CLASSCODE=' + Kod_ploschadki + '; SECCODE=' + SECCODE +'; ACTION=NEW_ORDER; OPERATION=S; PRICE=' + FloatToStr(b) + '; QUANTITY=' + QUANTITY + ';';
2. После того как Quik ее регистрирует, я ловлю ее BASE_ORDER_KEY и создаю связанную заявку по частичному исполнению на бай.
       limitBy:= 'ACTION=NEW_STOP_ORDER; TRANS_ID=' +inttostr(transID+1) + '; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER; BASE_ORDER_KEY=' + OrderDlyaPodstanivki + '; USE_BASE_ORDER_BALANCE=yes; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; SPREAD=0; OFFSET=0; OFFSET_UNITS= PERCENTS; SPREAD_UNITS= PERCENTS; STOPPRICE=' + FloatToStr(a) + '; CLIENT_CODE= 666; OPERATION=B; SECCODE=' + SECCODE +'; CLASSCODE=' + Kod_ploschadki + '; ACCOUNT=L01-00000F00;';

Можно ли тут же выставить еще одну заявку по частичному исполнению заявки из пункта 1 лимитирующую потери, ну т.е. вроде стоплоса по BASE_ORDER_KEY?

Спасибо. Извините за за ошибки в терминах, понимаю что Вам так сложнее разбираться в моих хотелках.
tri Связанные заявки
 
Спасибо!
Подскажите, а можно ли еще по  BASE_ORDER_NUMBER помимо связанного Тейк профита поставить еще  Стоп лос (в идеале тоже связанный)?
Статус выполнения ордера
 
И все таки вопрос остается еще второй, а в будущих версиях планируется в tro писать в качестве лога еще и статус выполнения Заявки? Было бы "красиво" вообще 0-принята, 3-исполнена, NN обработана со статусом (1-активна, 2-Снята, 3 - Исполнена). :-) Для робостроя полезна по моему мнению.
Спасибо за ответы.
 
Статус выполнения ордера
 
Цитата
Egor Zaytsev написал:
Цитата
Владимир Зайцев   написал:
Спасибо, пробелы в терминологии у меня пока. Но все же возможно ли как то получить тогда статус выполнения именно заявки? Я же когда формирую транзакцию, то после того как она ушла на сервер, знаю ее ORDER_NUMBER. Нельзя ли как то получить статус Завки по ORDER_NUMBER? Ну если не в формате tri, tro,trr то хотя бы как то заставить квик логировать?
Спасибо.
Добрый день.

Можно при помощи Trans2Quik. При помощи функции TRANS2QUIK_ORDER_STATUS_CALLBACK
можно получить состояние заявки: Состояние исполнения заявки: Значение «1» соответствует состоянию «Активна»,
«2» - «Снята», иначе «Исполнена»
Спасибо, а где взять актуальную версию Trans2Quik? Может еще есть у вас в библиотеке примеры по Дельфи?
Статус выполнения ордера
 
Спасибо, пробелы в терминологии у меня пока. Но все же возможно ли как то получить тогда статус выполнения именно заявки? Я же когда формирую транзакцию, то после того как она ушла на сервер, знаю ее ORDER_NUMBER. Нельзя ли как то получить статус Завки по ORDER_NUMBER? Ну если не в формате tri, tro,trr то хотя бы как то заставить квик логировать?
Спасибо.
tri Связанные заявки
 
Все в общем реализовал что хотел.
Вопрос про Связанные заявки теперь вот какой.
Допустим я создал Лимитную заявку на Шорт и связанную с ней Тейк профит заявку по частичному исполнению на BUY.
1. Ситуация номер один - Лимитная заявка отработала в полном объеме и приказ на шорт исчез, теперь я вижу в системе только Активную Тейк профит заявку по частичному исполнению. Если я пошлю Kill Order по номеру Лимитной заявки, то исчезнет ли Стоп заявка если она была связанна с уже выполненной лимитной?
1. Ситуация номер два - Лимитная заявка отработала не в полном объеме и  приказ на шорт не исчез, теперь я вижу в Лимитную заявку и  Активную Тейк  профит заявку по частичному исполнению. Если я пошлю Kill Order по  номеру Лимитной заявки, то исчезнет ли Стоп заявка?

Спасибо.
Статус выполнения ордера
 
Добрый день!
Подскажите пожалуйста, возможно ли в формате (tri, tro, trr) получить скажем по ORDER_NUMBER статус исполнения Стоп заявки - Исполнена (как в таблице сто заявок)?
Если нет, то планируется ли ввести такой статус?
Сейчас из положительного есть, отправлена, выставлена. Как бы получить Исполнена?
Спасибо.
tri Связанные заявки
 
Станислав, спасибо за то что со мной возитесь!
Скажите а возможно ли выставить тип стоп-лимит с заявкой по  частичному исполнению одной командой?
Мне в идеале надо:
Я получаю сигнал на вход в короткую позицию и одной командой сообщить Квику.
1. Шорт акций по цене 100 рублей (когда она дойдет до такого значения).
2. Одновременно выставляется заявка на покупку (связанная, лимитированная и т.д. не важно, важно чтобы она была по частичному исполнению пункта 1)?
3. Стоп лосс если цена будет 110 в идеале тоже по частичному исполнению пункта 1.
Ну или хотя бы без стоп лосс.

Я это реализовал в связке:
1. Лимитированная заявка.
2. Читаю файл, если статус 3, то читаю BASE_ORDER и формирую новую транзакцию в tri  - Тейк профит с частичным исполнением.
Так вот в целях оптимизации вычислений, хотелось бы сразу задавать все одной строкой. Меня не особо интересует Тейк профит, можно его заменить и на Стоп - лимит. Важно чтобы стоп заявка в случае выполнения лимитированной заявки появлялась и была с частичным исполнением.

Спасибо.
tri Связанные заявки
 
Спасибо за ответ. А не подскажите, в каком месте должен идти EXPIRY_DATE=GTC; в примере указанном вами.
Еще раз спасибо.
tri Связанные заявки
 
Цитата
Egor Zaytsev написал:
В таком случае Вам необходимо сначала выставить обычную заявку, а по ней уже "стоп по исполнению".

Пример так:
Если это тейк профит по исполнению, то пример такой так:
Тэйк-профит по исполнению заявки
по частичному  исполнению заявки с номером 81874488 выставить тэйк-профит на покупку Лукойла в  объеме исполненной части заявки-условия, при достижении цены 265 с отступом 10  пипсов и защитным интервалом 10 пипсов
ACTION=NEW_STOP_ORDER; TRANS_ID=11;  STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER;  BASE_ORDER_KEY=81874488; USE_BASE_ORDER_BALANCE=yes;  ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; SPREAD=10; OFFSET=10;  OFFSET_UNITS=PRICE_UNITS; SPREAD_UNITS=PRICE_UNITS; STOPPRICE=265;  CLIENT_CODE=Q5; OPERATION=B; SECCODE=LKOH; CLASSCODE=TQBR; ACCOUNT=L01-00000F00;

Хм, понятно.
1. Я выставляю обычную заявку на шорт Роснефть по рыночной цене.
ACCOUNT=L01-00000F00; CLIENT_CODE=164587; TYPE=M; TRANS_ID=152; CLASSCODE=TQBR; SECCODE=ROSN; ACTION=NEW_ORDER; OPERATION=S; PRICE=0; QUANTITY=29;
2. Следом я меняю TRANS_ID+1 и выставляю то что вы мне привели из документации.
Все вроде понятно, но откуда мне знать какой BASE_ORDER_KEY ей будет присвоен? Его надо будет считывать из файла с логами? Или я могу в обычной заявке сам задать его и сразу же Тейк профит по исполнению выставить?

Еще вопрос, Тейк профит который Вы написали, он хранится на сервере? Можно ему выставить EXPIRY_DATE=GTC чтобы он хранился до тех пор пока не исполнится и переносился из дня в день?
Спасибо.
tri Связанные заявки
 
Егор, добрый день. Возможно я что то путаю в терминологии. Смотрите, из документации:
Заявки «по исполнению» - это  условные заявки, которые активируются  (начинают проверяться программой QUIK и соответственно могут быть  исполнены) только после того, как исполняется определенная активная  заявка. Такие заявки могут применяться, например, для закрытия позиции  по инструменту, открываемой данной активной заявкой.
 Исполнение одной активной заявки может вызывать активацию нескольких заявок «по исполнению» разных типов.
 В программе QUIK вам доступны два типа заявок «по исполнению»:  «Стоп-лимит по заявке» и «Тэйк-профит по заявке». Если вы выставили  заявку «по исполнению», то после исполнения указанной вами активной  заявки в зависимости от того, заявку какого типа вы выбрали,  автоматически отправляются стандартные условные заявки типа «Стоп-лимит»  или «Тэйк-профит» (которые мы рассмотрели в предыдущем параграфе).  Отображаются такие заявки, как и другие условные заявки, в таблице  стоп-заявок и обладают следующими характеристиками.....

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

Спасибо за ответ.
 
tri Связанные заявки
 
Я правильно понимаю, что если Заявка на шорт выполнилась в неполном объеме, ну.т.е. я шортил 3 лота по 113 рублей, выставлена связанная заявка на тейк профит покупка по 100 рублей, то если мне удалось вшортить только 2 лота а цена упала до 100 рублей, то тейк профит будет снят с двух лотов, а после обе заявки снимутся?

Спасибо за ответы.
tri Связанные заявки
 
Добрый день.Подскажите пожалуйста полный текст который необходимо записать в tri файл, вот какие условия.
  1. Шорт Акции Газпрома (к примеру).
  2. Цена 113 рублей.
  3. Количество 5 лотов.
  4. Выставить Связанную заявку тейкпрофит по полному или частичному исполнению Заявки (из пунктов 1-3) (ну т.е. купилось 1 лот, в тейк профите 1 лот, докупилось еще 2, тейкпрофит изменился на 3 и т.д.). на покупку акций по цене 100 рублей.
  5. Без отступов, спредов и т.д.
  6. Срок действия по тейк профиту до исполнения.
Расчет QUANTITY в .tri, Расчет QUANTITY в .tri
 
Нашел, выгрузил, спасибо большое за помощь и наводку :-) Очень помогли. +++
Расчет QUANTITY в .tri, Расчет QUANTITY в .tri
 
Цитата
Egor Zaytsev написал:
Цитата
Владимир Зайцев   написал:
Добрый день. Столкнулся вот с каким вопросом.
1. Робот ищет на свечах сигнал на вход.
2. Заполняет файл .tri для импорта в Quik.

В поле количество лотов QUANTITY надо указывать количество лотов.
Можно ли не указывать этот параметр, а как то передать приказ на покупку, на определенную сумму?  Т.е. к примеру SBER, по текущей цене, на 2000 рублей. В таком случае выполнится заявка на покупку одного лота.
Суть проблемы в том, что каждая акция имеет под ценой свое количество лотов. Не справочник же заводить с количеством лотов по кодам бумаг.
Если все же надо указывать количество лотов точное, то где можно найти справочник по количеству лотов? Интересует информация для всех площадок.
Спасибо.
Добрый день..

Нет, QUANTITY это обязательный параметр.
Цитата
Если все же надо указывать количество лотов точное, то где можно найти справочник по количеству лотов?
Такого справочника не существует. Вы сами решаете, на какое кол-во совершать операцию.
Может Вы имеете ввиду размером лота инструмента (Минимально допустимое количество ценных бумаг в одной заявке, штук), то эта информация отображается в таблице текущих торгов.

Спасибо за ответ!
Я тогда полностью сформулирую проблему.
К примеру у меня на счету опять таки 2000 тыс. рублей.
Робот анализирует цены порядка 120 бумаг (РФ, Америка, фьючерсы и т.д.) и находит патерн.
У меня на входе:
TQBR, Сбербанк, Цены в текущей свече.

Я формирую заявку на покупку по рыночной цене на все депо (2000) рублей, а для того чтобы понять сколько акций я могу купить, мне необходимо знать размер минимальной заявке (тут вы все верно меня поправили).
Было бы просто конечно 2000/цену и округлить, но так увы ничего не получить.

Про Минимально допустимое количество, спасибо. А Есть ли какой то справочник в Квике в котором содержатся все инструменты с которыми работает Квик с параметром Минимально допустимое количество бумаг в одной заявке?
Спасибо за помощь.
Расчет QUANTITY в .tri, Расчет QUANTITY в .tri
 
Забыл уточнить, что для анализа использую Delphi.
Расчет QUANTITY в .tri, Расчет QUANTITY в .tri
 
Добрый день. Столкнулся вот с каким вопросом.
1. Робот ищет на свечах сигнал на вход.
2. Заполняет файл .tri для импорта в Quik.

В поле количество лотов QUANTITY надо указывать количество лотов.
Можно ли не указывать этот параметр, а как то передать приказ на покупку, на определенную сумму?  Т.е. к примеру SBER, по текущей цене, на 2000 рублей. В таком случае выполнится заявка на покупку одного лота.
Суть проблемы в том, что каждая акция имеет под ценой свое количество лотов. Не справочник же заводить с количеством лотов по кодам бумаг.
Если все же надо указывать количество лотов точное, то где можно найти справочник по количеству лотов? Интересует информация для всех площадок.
Спасибо.
Страницы: 1
Наверх