Стоплосс и тейкпрофит заявки

Страницы: 1
RSS
Стоплосс и тейкпрофит заявки
 
Как  можно однозначно определить (не анализируя цену сделки) по какому условию (стоплосс или тейкпрофит) была исполнена стоп заявка?
 
Никак
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
если выставление стопов соответствует их названию,
то можно определить по расположению цены сделки предшествующей срабатыванию стопа
по отношению к расположению позиции относительно рынка.
 
 
Цитата
Николай Камынин пишет:
если выставление стопов соответствует их названию,
то можно определить по расположению цены сделки предшествующей срабатыванию стопа
по отношению к расположению позиции относительно рынка.
В общем случае это неверно. В большинстве случаев так прикинуть можно, но далеко не всегда.

Поэтому утвердительно ответить на первоначальный вопрос нельзя.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru пишет:
Цитата
Николай Камынин пишет:
если выставление стопов соответствует их названию,
то можно определить по расположению цены сделки предшествующей срабатыванию стопа
по отношению к расположению позиции относительно рынка.
В общем случае это неверно. В большинстве случаев так прикинуть можно, но далеко не всегда.

Поэтому утвердительно ответить на первоначальный вопрос нельзя.
Это голословное утверждение.
приведите пример, но соблюдайте указанные мною условия.
 
но уже похвально,что Вы отказались от категоричного утверждения "никак"
 
Цитата
Николай Камынин пишет:
Цитата
s_mike@rambler.ru пишет:
Цитата
Николай Камынин пишет:
если выставление стопов соответствует их названию,
то можно определить по расположению цены сделки предшествующей срабатыванию стопа
по отношению к расположению позиции относительно рынка.
В общем случае это неверно. В большинстве случаев так прикинуть можно, но далеко не всегда.

Поэтому утвердительно ответить на первоначальный вопрос нельзя.
Это голословное утверждение.
приведите пример, но соблюдайте указанные мною условия.
Условий я не видел.

Вот вам живой пример:


стоп лосс 99
тейкпрофит 101 / 2
Выставляется, когда цена равна 100

движение цены:    100 -> 101 -> 99

Условие срабатывания неопределено.

---------------------

Но если уже на то пошло, то имея на руках алгоритм работы условной стоп-заявки на сервере брокера, узнать можно. Тут сработает тейк-профит. Однако это сокровенное знание не является документированным.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru пишет:
Но если уже на то пошло, то имея на руках алгоритм работы условной стоп-заявки на сервере брокера, узнать можно. Тут сработает тейк-профит. Однако это сокровенное знание не является документированным.
Без анализа движения цены разве можно так утверждать?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Серж пишет:
Цитата
s_mike@rambler.ru пишет:
Но если уже на то пошло, то имея на руках алгоритм работы условной стоп-заявки на сервере брокера, узнать можно. Тут сработает тейк-профит . Однако это сокровенное знание не является документированным.
Без анализа движения цены разве можно так утверждать?
При ТАКОМ движении цены - можно.
При ДРУГОМ движении цены за время жизни этой же стоп-заявки результат может быть иным.
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
s_mike@rambler.ru пишет:
стоп лосс 99
тейкпрофит 101 / 2
Выставляется, когда цена равна 100

движение цены:100 -> 101 -> 99
Ваш пример - доказательство моего утверждения:
прочитайте еще раз внимательно:
----------------------------
"1) если выставление стопов соответствует их названию,
то можно определить
2) по расположению цены сделки предшествующей срабатыванию стопа
по отношению к расположению позиции относительно рынка."
------------------------

Теперь разбираем Ваш пример
Условие 1) выполнено.
--------------------------------
переходим к анализу ситуации.
-------------------------
2) по расположению цены сделки предшествующей срабатыванию стопа
по отношению к расположению позиции относительно рынка.
-------------------------
Условия Вашего примера не полные.
Чтобы принять решение, надо определится еще в некоторых характеристиках рынка.
-----------------------------
Сначала пару слов без протокола...
Во-первых, предполагается, что чел, который пытается применить данный метод немного понимает в рынке.
так как "нет защиты от дурака"
-----------------------------
Поэтому считаем, что рынок ликвидный.
В этом случае переход от 101 к 99 не может произойти за одну сделку.
Поэтому после срабатывания стопа ниже 101 смотрим где была сделка перед срабатыванием
Она была выше нашей позиции - т е это тайк профит.
------------------------------------
P.S:
Хочу обратить внимание автора топика на следующее.
Срабатывание стопа не означает совершение сделки по этому стопу.
поэтому сама постановка вопроса изначальна не полная.
 
Вопрос заключался можно ли с помощью каких либо флагов или параметров сделки просто и точно определить условие по которому исполнилось стоплосс и тейкпрофит заявка. Алгоритм, рассматриваемый мной, предполагает различные действия в каждом случае.

Анализ по цене сделки понятен, но усложняет программу и может быть не всегда однозначен при малых таймфреймах (например минутки - стопы относительно близки к тейкпрофиту) и малой ликвидности (это почти все на этих таймфреймах, за исключением RI  и Si).

Но если нет простой возможности - значит придется анализировать цену сделки ( и,естественно, срабатывание  стоплосс и тейкпрофит заявки должно предполагать контроль и доведение позиции до сделки если этого не произошло).
 
Данную задачу буду решать так:

Для устранения возможной возможной неоднозначности анализирую не цену сделки, а цену выставленной обычной заявки в результате исполнения стоп заявки.
Для этого контролирую исполнение стоп заявки с помощью OnTransReply или OnOrder и далее по уникальному TRANS_ID (проверял выставленный у стоп заявки сохраняется и у обычной) и по времени выставления - получаю цену выставленной обычной заявки (через   OnOrder или таблицы заявок QWIKa). Дальше все просто.

Вопрос задавал для того, чтобы узнать можно ли это сделать проще.
 
Цитата
Александр Евстратенко пишет:
Вопрос заключался можно ли с помощью каких либо флагов или параметров сделки просто и точно определить условие по которому исполнилось стоплосс и тейкпрофит заявка. Алгоритм, рассматриваемый мной, предполагает различные действия в каждом случае.

Анализ по цене сделки понятен, но усложняет программу и может быть не всегда однозначен при малых таймфреймах (например минутки - стопы относительно близки к тейкпрофиту) и малой ликвидности (это почти все на этих таймфреймах, за исключением RI и Si).

Но если нет простой возможности - значит придется анализировать цену сделки ( и,естественно, срабатывание стоплосс и тейкпрофит заявки должно предполагать контроль и доведение позиции до сделки если этого не произошло).
конечно можно проверить таблицу стоп заявок.
Но как я написал ранее, исполнение стоп-заявки может создать активную заявку, которая никогда не исполнится.
возможна другая ситуация, когда заявки исполнилась, то сервер брокера не учел еще изменение Ваших лимитов
Поэтому полагаю, что проблема не в том , чтобы узнать какое из двух условий верно, а в том чтобы узнать как эти условия отразились на вашей позиции.
------------------------------------
А вот играть в зоне предела быстродействия КВИКА да еще на неликвидных рынках - это конечно создает дополнительно адреналин,
но чревато лишь сливом депозита.
 
Условие срабатывания мне стоп заявки, мне нужно для определения ветви по которому пойдет программа (если стоплосс, при соблюдении некоторых условий, банальный перезаход по тому же сигналу, если тейкпрофит, то ждем нового сигнала). Но, в любом случае, необходим контроль за тем исполнилась ли активная заявка? А если исполнилось, то полностью или на какую часть?  

Опыт ручной торговли показывает, что часто одна заявка закрывается несколькими сделками. Опыта программирования у меня практически никакого нет, поэтому большая просьба - подскажите как это можно сделать наиболее изящным и простым способом можно это сделать.
 
увы,просто это не сделать.
-------------------------
у меня алгоритм примерно такой:
---------------------
создаю таблицы активных:   заявок, стопов, заявок по стопам.
Далее  в колбеках реализуется обработка этих событий для каждого своя.
При этом реализуется обработка заявок по частям а также зависших заявок по стопам
Кроме того, исполнение заявки контролирую по изменениям депозитов в соответствующих колбеках.
-------------------
 
Спасибо!
 
выставляю стоплосс и тп заявку

Код
 t = {
   ["ACTION"] = "NEW_STOP_ORDER",
   ["TRANS_ID"] = tostring(math.random(1, 9999)),
   ["CLASSCODE"] = "SPBFUT",
   ["SECCODE"] = "RIM5",
   ["ACCOUNT"] = "1232",
   ["CLIENT_CODE"] = "123",
   ["OPERATION"] = tostring(operation2),
   ["TYPE"] = "M",
   ["QUANTITY"] = tostring(quantity),
   ["PRICE"] = "0",
   ["STOPPRICE"] = tostring(stopprice_tp), --цена активации тейк профита
   ["STOP_ORDER_KIND"] = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER",
   ["OFFSET"] = "5",
   ["OFFSET_UNITS"] = "PERCENTS",
   ["SPREAD"] = "3",
   ["SPREAD_UNITS"] = "PERCENTS",
   ["MARKET_TAKE_PROFIT"] = "NO",
   ["STOPPRICE2"] = tostring(stopprice), --стоп цена
   ["IS_ACTIVE_IN_TIME"] = "YES",
   ["ACTIVE_FROM_TIME"] = "100000",
   ["ACTIVE_TO_TIME"] = "234545",
   ["MARKET_STOP_LIMIT"] = "NO"
}


брокер ее съедает, на графике соответственно появляется две линии.
при доходе цены до стоп заявки (стоп лосс), квик вываливает сообщение
Заявка, выставляемая по стоп-заявке N[6658201], отвергнута торговой системой: Цена заявки в данном режиме торгов должна быть больше нуля.
Я так понял оно ругается вот на это:

Код
["TYPE"] = "M",
   
   ["PRICE"] = "0" 
Но вроде как выставлен тип - рыночная цена, и цена соответственно 0. Т.е. квик или сервер брокера или кто то там наверху должен съэмулировать рыночную заявку и продать\купить по текущей рыночной цене. или нет?
 
Цитата
Валентин пишет:

Но вроде как выставлен тип - рыночная цена, и цена соответственно 0. Т.е. квик или сервер брокера или кто то там наверху должен съэмулировать рыночную заявку и продать\купить по текущей рыночной цене. или нет?
Полагаю, что это Ваше желание.
квик или сервер брокера или кто то там наверху  - Не должен.  
 
Цитата

Sergey Gorokhov пишет:
Здравствуйте,
Да верно на ФОРТС не существует рыночных заявок.
Но QUIK умеет их эмулировать.
Для этого нужно поставить Type=M и указать цену 0
почему в данном случае не происходит эмуляция?
 
Цитата
Валентин пишет:
Цитата

Sergey Gorokhov пишет:
Здравствуйте,
Да верно на ФОРТС не существует рыночных заявок.
Но QUIK умеет их эмулировать.
Для этого нужно поставить Type=M и указать цену 0
почему в данном случае не происходит эмуляция?
Здравствуйте,
Параметр "TYPE" для лимитированных заявок.
Для стоп заявки "TAKE_PROFIT_AND_STOP_LIMIT_ORDER" используются параметры MARKET_STOP_LIMIT или MARKET_TAKE_PROFIT
 
Цитата
Sergey Gorokhov пишет:
Здравствуйте,
Параметр "TYPE" для лимитированных заявок.
Для стоп заявки "TAKE_PROFIT_AND_STOP_LIMIT_ORDER" используются параметры MARKET_STOP_LIMIT или MARKET_TAKE_PROFIT
Код
["ACTION"] = "NEW_STOP_ORDER",
   
   ["TYPE"] = "M",
   ["PRICE"] = "0",
   ["STOPPRICE"] = tostring(stopprice_tp), --цена активации тейк профита
   ["STOP_ORDER_KIND"] = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER",
   ["OFFSET"] = "5",
   ["OFFSET_UNITS"] = "PERCENTS",
   ["SPREAD"] = "3",
   ["SPREAD_UNITS"] = "PERCENTS",
   ["MARKET_TAKE_PROFIT"] = "YES",
   ["STOPPRICE2"] = tostring(stopprice), --стоп цена
   ["IS_ACTIVE_IN_TIME"] = "YES",
   ["ACTIVE_FROM_TIME"] = "100000",
   ["ACTIVE_TO_TIME"] = "234545",
   ["MARKET_STOP_LIMIT"] = "YES"
 
получается как то так?
Код
["TYPE"] = "M",
   ["PRICE"] = "0",  
эти поля нужны?
 
Цитата
Валентин пишет:
получается как то так?
Сравните с примером
-Раздел 6. Совместная работа с другими приложениями
--Импорт транзакций
---Формат .tri-файла с параметрами транзакций
----Примеры строк, которые могут содержаться в файле
-----"Тэйк-профит и стоп-лимит"

Цитата
Валентин пишет:
["TYPE"] = "M",
["PRICE"] = "0",
эти поля нужны?
Еще раз повторяю, поле TYPE, НЕ для стоп заявок
Поле PRICE да нужно, посмотрите пример
 
значение price не указано, однако и брокер и биржа такую заявку принимают и выполняют
Код
["OPERATION"] = tostring(operation2),
   --["TYPE"] = "L",
   ["QUANTITY"] = tostring(quantity),
   --["PRICE"] = tostring(price),
   ["STOPPRICE"] = tostring(stopprice_tp), --цена активации тейк профита
   ["STOP_ORDER_KIND"] = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER",
   ["OFFSET"] = "20",
   ["OFFSET_UNITS"] = "PRICE_UNITS",
   --["SPREAD"] = "3",
   --["SPREAD_UNITS"] = "PERCENTS",
   ["MARKET_TAKE_PROFIT"] = "YES",
   ["STOPPRICE2"] = tostring(stopprice), --стоп цена
   ["IS_ACTIVE_IN_TIME"] = "YES",
   ["ACTIVE_FROM_TIME"] = "100000",
   ["ACTIVE_TO_TIME"] = "234545",
   ["MARKET_STOP_LIMIT"] = "YES" 
 
Добрый день!

В этом случае цена может быть не указана, т.к. у Вас установлен параметр MARKET_STOP_LIMIT ,
что означает исполнение заявки по рыночной цене при наступлении условия "стоп-лимит".
 
Да и не суть важно, и без этого выкручусь, спасибо за помощь
 
Цитата
Александр Евстратенко пишет:
Вопрос заключался можно ли с помощью каких либо флагов или параметров сделки просто и точно определить условие по которому исполнилось стоплосс и тейкпрофит заявка.
Если не сбрасывать 15-й бит флага "flags" в ноль при исполнении условной заявки, то по его значению можно однозначно определить условие исполнения.
Зарегистрируйте, пожалуйста, пожелание на доработку: не сбрасывать 15-й бит флага "flags".
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель пишет:
Если не сбрасывать 15-й бит флага "flags" в ноль при исполнении условной заявки, то по его значению можно однозначно определить условие исполнения.
Зарегистрируйте, пожалуйста, пожелание на доработку: не сбрасывать 15-й бит флага "flags".
Добрый день,

Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Добрый день,
    Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам,     что для дальнейшей проработки вопроса нам необходима дополнительная     информация, каким образом по значению 15-го бита флага "flags" можно     однозначно определить условие исполнения стоплосс и тейкпрофит     заявки.
 
Цитата
бит 15 (0x8000)  Идет расчет минимума-максимума
Если 15-й бит проставлен, то это - однозначно исполнение по тейк-профит.
Надо сделать так, чтобы при активации заявки по тейку 15-й бит был всегда проставлен, даже если заявка уже не активна.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Старатель написал:
Цитата
бит 15 (0x8000)  Идет расчет минимума-максимума
Если 15-й бит проставлен, то это - однозначно исполнение по тейк-профит.
Надо сделать так, чтобы при активации заявки по тейку 15-й бит был  всегда  проставлен, даже если заявка уже не активна.
Добрый день.

Спасибо за дополнения.
 
Цитата
s_mike@rambler.ru написал:
Никак
Тогда, может быть, "коллеги" выше имели ввиду: "как узнать, как сработали ЗАЯВКИ (лимитные) по итогам исполнения стоп-заявки", -- а не сама стоп-заявка?
 
PS. (лимитные) ВЫСТАВЛЕННЫЕ(АЯ) по итогам исполнения стоп-заявки" . . .
Страницы: 1
Читают тему
Наверх