Стоп заявта тейк профит стоп-лимит на покупку не сработала вовремя.
Для участия в обсуждениях и оформления подписки на новые сообщения форума вам необходимо зарегистрироваться.
Страницы: 1
Cообщений на странице:
Стоп заявта тейк профит стоп-лимит на покупку не сработала вовремя.
Пользователь
Сообщений: 7 Регистрация: 19.11.2017
19.11.2017 13:57:40
плюсану к вопросу ТС.
Всю прошлую неделю сталкивался с такой же проблемой.
Назову её проскальзывание или задержка активации стоп-лосса.
Все мы прекрасно знаем про проскальзывание при выставлении лимитной заявки, и как бороться знаем.
Но вот что делать если цена пошла в сторону стопа, перескочила его, и дальше двигает, а стоп-лосс так и не активировался,
т.е. лимитная заявка, которую стоп-лосс должен выставить не выставилась, задержка в активации стоп-лосса доходит до 2-3 секунд и даже больше.
Где копать, в чем проблема и как этого избежать ?
QUIK clients support
Сообщений: 1516 Регистрация: 23.01.2015
20.11.2017 09:54:59
Александр, avp,добрый день.
Нужно обратиться к брокеру и инициировать его обращение к нам. Lля точного ответа необходим анализ логов от серверной части QUIK/
Пользователь
Сообщений: 5 Регистрация: 17.11.2017
20.11.2017 09:57:45
Я сегодня еще попробую. Если повториться результат то тогда будем разбираться.
Пользователь
Сообщений: 5 Регистрация: 17.11.2017
12.12.2017 11:42:46
Разобрался в механике тейк профита.
Версия квика 7.14.1.7
Это работает абсолютно не так как описано и мы теряем деньги .
Рассмотрим пример продажи на неликвиде.
Тренд растет.
Вы установили тейк на уровне цены 43.36 и ушли курить в надежде получить прибыль.
Благополучно цена стакана приблизилась к вашему уровню и перешла через него и на текущий момент составляет 43,41.
Вы радуетесь о боже сейчас я возьму тейк. Но отслеживание не запускается.
Цена в стакане растет еще больше и уже составляет 43,51. Но отслеживание не запускается.
И тут цена начинает падать. Вы не понимает в чем дело.
Цена упала ниже уровня отступа, а сделки нет. Что за дела.
Вдруг кто-то совершил сделку и зафиксировал цену на 43.37 (+0.01) от тейка. О боже. тейк начал отслеживание. А цена падает.
Цена стакана падает медленно с шагом 0.01 прошла ниже тейка, уже прошла ниже желаемого значения. Но сделки нет.
И тут кто то снова совершает сделку, и тейк выставляет заявку на продаж. И что происходит — Вы продаете свои акции даже ниже цены покупки.
Инфаркт скорая помощь.
УВАЖАЕМЫЕ РАЗРАБОТЧИКИ.
Приведите пожалуйста тейкпрофит стоплимит в соответсвие его описанием и предназначением.
Пожалуйста.
Выход и из этой ситуации есть
Пользователь
Сообщений: 5 Регистрация: 17.11.2017
12.12.2017 14:50:23
Перечитал описание в документации.
Действует так как описано (по сделкам)
Тогда просьб к разработчикам, можно внисти галочку в заявку, обрабатывать по стакану или по сделкам?
QUIK clients support
Сообщений: 1516 Регистрация: 23.01.2015
13.12.2017 08:05:18
Александр,добрый день.
В стакане заявки. Стопы никогда не отслеживали и не будут отслеживать цену по заявкам. Только по сделкам. Именно так сейчас и работает.
Пользователь
Сообщений: 5 Регистрация: 17.11.2017
13.12.2017 08:27:36
Спасибо за ответ.
Я это понял из документации.
Проблема как оказалось в другом.
Брокер БКС не отображает реальную картину торгов на СПБ,
Вот примеры графиков в quik бкс и реальный график торгов в финаме.
Вот и не знаю что делать.
Поддержка пишет, что СПБ не транслирует торги в полном обьеме.
Одним транслирует а другим нет?
QUIK clients support
Сообщений: 1516 Регистрация: 23.01.2015
13.12.2017 10:10:21
Александр, в текущей реализации QUIK график цены и объёма для рынка SPBEX строится не по таблице всех сделок, а по параметру «Индикативная котировка». А стоп заявки играют по таблице всех сделок.
Пользователь
Сообщений: 467 Регистрация: 30.01.2015
08.02.2018 17:51:45
| Цитата |
|---|
| Zoya Skvorcova написал: Александр ,добрый день. В стакане заявки. Стопы никогда не отслеживали и не будут отслеживать цену по заявкам. Только по сделкам. Именно так сейчас и работает. |
Почему не сработал тейк профит?
Тейк профит — это предварительно заданная цена или уровень прибыли, на которых трейдер решает продать актив и зафиксировать свою прибыль. Если тейк профит не сработал, есть несколько возможных причин:
- Недостаточная ликвидность: Если актив, на который был установлен тейк профит, не достиг цены тейк профита, это может быть связано с недостаточной ликвидностью рынка. В малоликвидных рыночных условиях цена может не достигнуть заданного уровня, поскольку недостаточное количество участников готово купить или продать по этой цене.
- Скачкообразное движение цены: Если цена актива резко изменилась в обратном направлении после достижения тейк профита, то ваш ордер может не быть исполнен. В таких случаях внезапные скачки цены могут привести к тому, что ваш тейк профит не активируется или будет исполнен по более низкой цене.
- Неправильное установление тейк профита: Возможно, вы неправильно оценили рыночные условия или уровень прибыли, и ваш тейк профит был установлен слишком близко к текущей цене. В этом случае цена не смогла достичь вашего уровня прибыли и не активировала ордер.
- Технические проблемы: В редких случаях возможны технические сбои или проблемы с платформой, на которой вы разместили ордер на тейк профит. Если возникла такая ситуация, вам следует связаться с вашим брокером или провайдером услуг для выяснения причины невыполнения ордера.
Важно отметить, что тейк профит не всегда гарантирует исполнение ордера по заданной цене. Рынок финансовых активов подвержен различным факторам, которые могут влиять на движение цены, и не всегда возможно точно предсказать будущее направление цены. Поэтому трейдеры должны учитывать потенциальные риски и принимать во внимание факторы, которые могут повлиять на исполнение их тейк профит ордеров.
Не сработал Take Profit .

Всем доброго дня! Столкнулся с данной ситуацией. Не знаю как реагировать. Потому что не понимаю, почему не сработал Take Profit .
- ООП vs процедурное программирование
- FOREX — Тенденции, прогнозы и следствия 2015(продолжение)
- EURUSD — Тенденции, прогнозы и следствия (Часть №1)
10548 Izzatilla Ikramov 2015.12.03 08:46 #1
kroww248 :
Всем доброго дня! Столкнулся с данной ситуацией. Не знаю как реагировать. Потому что не понимаю, почему не сработал Take Profit .
Скорее всего это из за размера спреда.
14255 khorosh 2015.12.03 08:50 #2
kroww248 :
Всем доброго дня! Столкнулся с данной ситуацией. Не знаю как реагировать. Потому что не понимаю, почему не сработал Take Profit .
Чтобы тейк сработал, нужно чтобы разница уровней тейка и лоу свечи была больше спреда.
[Удален] 2015.12.03 09:28 #3
kroww248 :
Всем доброго дня! Столкнулся с данной ситуацией. Не знаю как реагировать. Потому что не понимаю, почему не сработал Take Profit .
Дополню выше сказанное. Продажи открываются по цене бид (серая линия на графике), а закрываются по цене аск (если хотите ее увидеть, нужно включить в свойствах графика). График же рисуется по цене бид. В момент пересечения ценой бид уровня ТП цена аск была, скорее всего, над этим уровнем. Так что все корректно.
Тейк профит и стоп-МАРКЕТ заявка для луа
Для участия в обсуждениях и оформления подписки на новые сообщения форума вам необходимо зарегистрироваться.
Страницы: 1
Cообщений на странице:
Тейк профит и стоп-МАРКЕТ заявка для луа, стоп-заявка проскальзывает, так как стоит стоп-лимит
Пользователь
Сообщений: 871 Регистрация: 27.01.2017
29.11.2021 13:41:11
Есть варианты:
— увеличивать отступ исполнения стоп-ордера, чтобы была больше вероятность исполнения отправленной лимитной заявки (но, возможно, больше будет ГО)
— не ставить стоп физически, а отслеживать цену алгоритмом и закрывать «по рынку» исходя из текущей ситуации, если алгоритм решил, что стоп сработал.
— более сложный вариант отслеживания активации стопа. После того как получен признак что стоп исполнен, проверять установку связанного с ним лимитного ордера и его исполнение. Если он не исполнен, снимать его алгоритмом и ставить новый исходя из текущей цены. Т.е. реализовать алгоритм «гонки за ценой». Т.к. мы никогда не знаем какая в будущем будет ситуация в момент активации стопа (т.е. угадать отступ), то, по хорошему, какой-то вариант «гонки» все равно необходимо реализовать.
Также не стоит забывать про битовые флаги 10 и 11 стоп ордера:
бит 10 (0x400) — Стоп-заявка сработала, но была отвергнута торговой системой
бит 11 (0x800) — Стоп-заявка сработала, но не прошла контроль лимитов
Ордер может исполнится, а лимитный ордер вообще не прошел. Позиция останется, если это не контролировать.
Пользователь
Сообщений: 121 Регистрация: 08.03.2016
29.11.2021 13:49:24
| Цитата |
|---|
| Nikolay написал: — не ставить стоп физически, а отслеживать цену алгоритмом и закрывать «по рынку» исходя из текущей ситуации, если алгоритм решил, что стоп сработал. |
Предпочитаю именно этот подход
Пользователь
Сообщений: 871 Регистрация: 27.01.2017
29.11.2021 13:53:26
| Цитата |
|---|
| Предпочитаю именно этот подход |
Да, но важно отметить, что в таком случае важно обеспечить постоянную работоспособность алгоритма, вне зависимости от отключения связи и электропитания.
Пользователь
Сообщений: 15 Регистрация: 22.10.2021
30.11.2021 23:25:50
| Цитата |
|---|
| Предпочитаю именно этот подход |
Подход хороший и понятный, но не читается почему-то значение, записанное в файл. То есть я пошла следующим путем: открывается сделка, записываю все параметры в файл, читаю потом из файла то самое значение, которое будет стопом, но цифры после точки не считываются почему-то. Функций округления при этом нет. Инструмент — нефть. И было бы понятно, если бы он не читал эти данные в формулах где-то, но он из файла их не читает. При этом сепаратором стоит ;.
Пользователь
Сообщений: 871 Регистрация: 27.01.2017
01.12.2021 09:35:09
Скорее всего просто нарушено форматирование при сохранении или уже при чтении проблема алгоритма.
Лучше пойти путем хранения самого контекста скрипта.
Для примера, есть некое состояние, скажем State — это таблица с необходимыми данными. Мы ее сохраняем в файл в виде сериализованой таблицы.
Тогда чтение будет через одну единственную команду loadfile.
Для сериализации таблицы состояния можно воспользоваться любым итерационным (рекурсивным) методом: http://lua-users.org/wiki/TableSerialization
Лишь бы он позволял хранить восстанавливаемые данные через loadfile.
Файл должен выглядеть примерно так:
return filed = 1,
field2 = ‘some_string’,
inner_t = b = 2,
c = 3
>
т.е. как простой код lua
Пользователь
Сообщений: 1993 Регистрация: 25.09.2020
01.12.2021 10:45:47
Что-то вас куда-то не туда повело.
Да, лично я сроду не ставил никаких стопов и даже никогда не закрывал «по рынку» (только лимитными заявками), «если алгоритм решил, что стоп сработал». От отключения связи и электропитания не страхуюсь (в конце концов, скачки курса, когда наша биржа не работает, куда более вероятны, чем обрыв связи), но при чём здесь вообще файл? Работаем в ОЗУ! Я сбрасываю, конечно, дамп состояния в файл каждые 5 минут (страховка от отвисания Квика, которые в последнее время происходят всё чаще), но это лишь для того, чтобы не потерять ВСЕ свои сделки за сеанс.
Пользователь
Сообщений: 15 Регистрация: 22.10.2021
01.12.2021 14:56:52
Коллеги, спасибо за помощь и наводки! В итоге скрипт заработал. Мало ли кому будет надо, выкладываю. Просьба не обращать внимание на комменты, я после ковида очень боюсь опять потерять память, поэтому все себе комментирую.
Как работает? Забирает отклик при отправке транзакции, если она выполнена, записывает в файл (этого тут нет), далее в файле находит строку и забирает оттуда значение для стопа, которое записано в файлике. Таким образом ничего не теряется. Ошибка нечтения была именно в неверном формате чтения, не записи.
function ReadCsv(FP) -- чтение файла и присвоение значений ТР и стопу f = io.open(FP,"r+") local N_CSV_BEGIN = 2 local LINE_A = <> local Datetime = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Instr = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Total = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Activity = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Price = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Ordernumber = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Ordertype = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Account= <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Robot_name = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Status = <> -- МАССИВ СТРОК ИЗ ОСНОВНОГО ФАЙЛА local Stops = <> if f==nil then message("НЕТ ФАЙЛА ",3) EXIT = 1 SL = 10000 -- 10000 else -- message("ФАЙЛ ЕСТЬ",3) EXIT = 0 SL = 1000 j = 1 for line in f:lines() do LINE_A[j] = tostring(line) --message("I'm here") --message("Строка "..j.." ="..LINE_A[j],1) j = j + 1 end f:close() NCSV = j - N_CSV_BEGIN --message("NCSV= "..NCSV,1) if NCSV