Здравствуйте! Помогите разобраться с установкой стоп лосов и тейк профитов через lua скрипт. В терминал отправляю 2 транзакции (можно ли все уместить в 1й?) - сама заявка и вторая лимиты : 1)
Когда цена достигла 208.68 вместо того что бы выставить заявку на продажу и закрыть позицию терминал выдал ошибку :
Цитата
Заявка, выставляемая по стоп-заявке N [-], отвергнута торговой системой
позиция соответственно не закрылась. подскажите в чем ошибка ? Заранее благодарю.
Пользователь
Сообщений: Регистрация: 24.01.2018
22.08.2018 18:44:16
QUIK clients support
Сообщений: Регистрация: 27.01.2015
23.08.2018 07:22:24
Добрый день.
Проверьте в разделе Система - Настройки - Параметры инструмента. Возможно вы задали какой либо диапазон.
Пользователь
Сообщений: Регистрация: 24.01.2018
23.08.2018 10:43:44
Никаких диапазонов я не задавал, их нет. Тригер срабатывает ровно на том значении которое было задано в транзакции
QUIK clients support
Сообщений: Регистрация: 27.01.2015
23.08.2018 11:51:00
Цитата
Илья написал: Никаких диапазонов я не задавал, их нет. Тригер срабатывает ровно на том значении которое было задано в транзакции
Если выставить стоп лимит и тейк профит аналогичный в ручном режиме, проблема повторяется? Попробуйте и сообщите результат. Также приложите полный ваш скрипт и сообщите UID вашего пользователя.
Перед отправкой вы в скрипте, что нибудь меняли? У Вас две ошибки. 1. Отсутствует параметр "код клиента" 2. Не верно указан счет ACCOUNT. Должен быть NL0011100043. Проверили на вашем коде, стоп заявка выставилась, сработала и выставила лимитированную.
Пользователь
Сообщений: Регистрация: 24.01.2018
23.08.2018 14:55:32
Благодарю за ответ!
CLIENT_CODE - необязательный параметр. () а вот ACCOUNT - сменил и вроде все заработало как положено, но возникла другая проблема - скрипт не выставил заявки тейк профит по достижении нужного уровня.
скрипт немного изменил :
Цитата
tag = "candles"; lastCandle = getNumCandles(tag); t, n, l = getCandlesByIndex (tag, 0, lastCandle-1, 1); currPrice = t[0].close;
Исходя из предоставленного Вами скиншота, можем видеть, что цена условия выставлена в размере 209.16, а отступ от max=0.11, при этом на графике текущая цена 209,22, которая является "локальным максимумом". Для исполнения тейк-профита в данном случае необходимо, чтобы цена составила 209,11 (209,22-отступ от локального максимума=209,22-0.11), то есть условие исполнения тейк-профита достигнуто не было.
Значение "Рассчитывается min/max" в таблице стоп-заявок говорит о том, что цена условия была достигнута, тейк-профит активировался и проверяет будет ли цена расти дальше или нет. При снижении текущей цены на более чем "отступ от max", тейк-профит исполнится по цене последней сделки-защитный спред.
Цитата
CLIENT_CODE - необязательный параметр. ()
По ссылке это не наша документация. В нашей документации этот параметр обязательный. Не обязательный он для Срочного рынка.
Пользователь
Сообщений: Регистрация: 24.01.2018
25.08.2018 01:14:25
Цитата
Egor Zaytsev написал: Для исполнения тейк-профита в данном случае необходимо, чтобы цена составила 209,11
так прежде чем достигнуть 209.16 сперва цена достигла 209.11 а тейк профит что тогда что сейчас не активировался.
Цитата
Egor Zaytsev написал: цена условия выставлена в размере 209.16, а отступ от max=0.11
вы говорите про OFFSET или SPREAD ? Разве не должен активироваться тейк профит для любой цены от 209.16 - 209.27 (209.16 + 0.11)?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
27.08.2018 08:14:14
Цитата
Илья написал: вы говорите про OFFSET или SPREAD ? Разве не должен активироваться тейк профит для любой цены от 209.16 - 209.27 (209.16 + 0.11)?
Нет. Тейк Профит - Стоп лимит на продажу работает так:
Цитата
Купили Газпром по цене 145 рублей, хотим зафиксировать прибыль если цена вырастет до 160. и ограничить убытки, если цена упадёт ниже либо равно 155р. Вы ставите заявку тэйк-профит и стоп-лимит, когда цена последний сделки на рынке 156 р. Условие активации: продажа, «тэйк-профит, если цена» >=160 руб., «стоп-лимит, если цена» <=155. Также указывает два дополнительных параметра:
Ø «отступ от max» — этот параметр указывает, насколько цена последней сделки должна стать ниже локального максимума цены, чтобы тэйк профит сработал, Ø «защитный спрэд» — насколько меньше, чем цена срабатывания тэйк-профита, будет цена порожденной им лимитированной заявки на продажу.
Предположим, что мы задали «отступ от max»=5 руб, «защитный спрэд»=5 руб. Допустим, Газпром растет. Как только, цена дойдет до 160, в этой точке заявка тэйк-профит активируется, и начинает проверять — будет расти цена дальше, или нет (Условия по стоп-лимиту перестали проверяться) Если цена растет дальше, то любое следующее более высокое значение от 160 система фиксирует как локальный максимум, а любое падение цены от локального максимума- как угрозу.
При этом, система проверяет, не стала ли цена последней сделки по бумаге ниже чем «локальный максимум цены» минус «отступ от max». Предположим, цена растет и достигла 163, после чего упала до 160 и опять начала расти. Тэйк-профит в этом случае не превратится в лимитированную заявку — ведь цена упала от максимума на 3 руб, а мы задали «отступ от max»=5 руб., т.е. условие исполнения достигнуто не было.
Предположим, цена опять выросла до 163, и упала до 158 - тогда тэйк профит выставит лимитированную заявку на продажу с ценой, вычисляемой по формуле: «текущая цена последней сделки минус защитный спрэд». Т.е. цена заявки на продажу будет 158-5=153. «Защитный спрэд» нужно указать для защиты от «проскальзывания» рынка ниже цены порожденной тэйк-профитом заявки. Допустим, Газпром начал не расти (как описано выше), а падать, цена последний сделки на рынке 158 р. Условие активации: тэйк-профит, если цена >=160 руб., стоп-лимит <=155. Цена упала до 155 рублей. Условие по ТП перестаёт отслеживаться. В систему выставилась лимитированная заявка по цене 154р.