Доброго времени суток всем. Подскажите как написать заявку Take profit и stop loss? Допустим купил по 100. И хочу продать по 105(Take profit) или по 98(Stop loss) Не могу написать именно сам массив для Sendtrasaction.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.12.2022 14:14:51
открываете Руководство пользователя QUIK Раздел 6. Совместная работа с другими приложениями Импорт транзакций Формат .tri-файла с параметрами транзакций Примеры строк, которые могут содержаться в файле -------------- и там есть пример
Тейк-профит и стоп-лимит Лукойл, покупка 1 лота, активация тейк-профита при достижении цены 2000 с отступом в 5% и защитным спредом в 3%, стоп-цена 2222, цена лимитированной заявки 2255, время действия с 10:00:01 по 19:45:45
Спасибо. Сделал через карман заявок. Вытащил оттуда tri файл. Не могу привести его в нормальный вид для отправки транзакции. Помогите пожалуйста.
Код
stop = {
ID= os.time()
TRANS_ID=tostring(ID),
CLASSCODE="QJSIM",
ACTION="Stop order",
Stop order type=Take-profit and stop-limit,
Expiry=GTC,
ACCOUNT="NL0011100043",
B/S=Sell,
Condition=>=,
STOPPRICE=137,05,
Flags=386,
Mode=QJSIM,
Instrument=SBER,
Order instrument=SBER,
Order class=QJSIM,
Price=0,00,
QUANTITY=1,
Comment=10828/,
Limit order price=0,00,
OFFSET=0,010000;
SPREAD=0,000000;
Base order number=0,
from=0,
to=235959,
Stop price 2=136,55,
}
Пользователь
Сообщений: Регистрация: 31.01.2015
21.12.2022 17:47:45
1) В числах разделитель разрядов должен быть точкой. 2) Если после знака равно стоит строка, её надо взять в кавычки. 3) В самом конце строк таблицы stop нужны запятые, а не точки с запятой, как сейчас в некоторых местах. 4) TRANS_ID должно быть числом.
Пользователь
Сообщений: Регистрация: 08.04.2022
21.12.2022 17:53:06
Цитата
_sk_ написал: 1) В числах разделитель разрядов должен быть точкой. 2) Если после знака равно стоит строка, её надо взять в кавычки. 3) В самом конце строк таблицы stop нужны запятые, а не точки с запятой, как сейчас в некоторых местах. 4) TRANS_ID должно быть числом.
Спасибо. Я имел ввиду сделать из вышенаписанного кода массив для sendtransaction?
Для отправки транзакции с помощью sendTransaction необходимо указать ее параметры в фиксированном формате. Описание фиксированного формата доступно в : Раздел 6. Совместная работа с другими приложениями / Импорт транзакций / Фиксированный формат файла импорта транзакций / Формат .tri-файла с параметрами транзакций.
написал: 1) В числах разделитель разрядов должен быть точкой. 2) Если после знака равно стоит строка, её надо взять в кавычки. 3) В самом конце строк таблицы stop нужны запятые, а не точки с запятой, как сейчас в некоторых местах. 4) TRANS_ID должно быть числом.
Спасибо. Я имел ввиду сделать из вышенаписанного кода массив для sendtransaction?
для этого надо все параметры записать либо в кавычках либо с помощью функции tostring()
Пользователь
Сообщений: Регистрация: 17.05.2020
24.12.2022 13:59:44
Для себя когда то делал, даже с рисунком, вроде все правильно. Может пригодится ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ table_stop_order= { ["ACTION"]="NEW_STOP_ORDER", ["STOP_ORDER_KIND"]="TAKE_PROFIT_AND_STOP_LIMIT_ORDER", ["EXPIRY_DATE"]="GTC", --до отмены ["IS_ACTIVE_IN_TIME"]="NO", ["SECCODE"]=tostring("SiH3"), ["ACCOUNT"]=tostring("111GJBJ"), ["OPERATION"]=tostring("B"), --Значения: «S»–продать, «B»–купить ["STOPPRICE"]=string.format("%.0f",72850), --Цена условия «тэйк-профит» для заявки типа «Тэйк-профит и стоп-лимит» ["STOPPRICE2"]=string.format("%.0f",72800), --Цена условия «стоп-лимит» для заявки типа «Тэйк-профит и стоп-лимит» ["PRICE"]=string.format("%.0f",72750), --Цена, по которой выставится заявка при срабатывании стоп-лимита ["MARKET_STOP_LIMIT"]="NO", --Признак исполнения заявки по рыночной цене при наступлении условия «стоп-лимит». ["QUANTITY"]=string.format("%.0f",1), --Объем ["CLIENT_CODE"]=tostring("111GJBJ"), --Номер торгового счета вообще не нужен здесь без него работает ["OFFSET"]="0", --Величина отступа от максимума (минимума) цены последней сделки ["OFFSET_UNITS"]="PRICE_UNITS", --Единицы измерения отступа. Возможные значения: «PERCENTS» – в процентах «PRICE_UNITS» – в параметрах цены ["SPREAD_UNITS"]="PRICE_UNITS", --Единицы измерения защитного спрэда. Возможные значения: «PERCENTS» – в процентах «PRICE_UNITS» – в параметрах цены ["SPREAD"]=tostring("100"), --Величина защитного спрэда. Возможные значения: «PERCENTS» – в процентах «PRICE_UNITS» – в параметрах цены ["MARKET_TAKE_PROFIT"]="NO", --Признак исполнения заявки по рыночной цене при наступлении условия «тэйк-профит» ["CLASSCODE"]=tostring("SPBFUT"), ["TRANS_ID"]=tostring("2147483647") --TRANS_ID заявки должен быть числом --["TYPE"]="L", --«L»–лимитированная (по умолчанию), «M»–рыночная } result=sendTransaction(table_stop_order) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Всех с наступившими праздниками. Всем спасибо за помощь. Выставляется заявка. Но при достижении стоп цены появляются две ошибки.
Заявка, выставляемая по стоп-заявке N [10872095], отвергнута торговой системой: Order price 0.00 is out of set interval from 106.85 to 178.07
или
Стоп-заявка N [10872094] не прошла контроль лимитов
От чего так?
Пользователь
Сообщений: Регистрация: 17.05.2020
07.01.2023 14:59:13
Цитата
Ренат написал: Всех с наступившими праздниками. Всем спасибо за помощь. Выставляется заявка. Но при достижении стоп цены появляются две ошибки.
Заявка, выставляемая по стоп-заявке N [10872095], отвергнута торговой системой: Order price 0.00 is out of set interval from 106.85 to 178.07
или
Стоп-заявка N [10872094] не прошла контроль лимитов
От чего так?
Проверьте параметр ["PRICE"]. Из руководства: ["PRICE"] - Цена заявки, за единицу инструмента. Обязательный параметр. При выставлении рыночной заявки (TYPE=M) на Срочном рынке FORTS необходимо указывать значение цены – укажите наихудшую (минимально или максимально возможную – в зависимости от направленности), заявка все равно будет исполнена по рыночной цене. Для других рынков при выставлении рыночной заявки укажите price=0
Хотя если указать, что заявка лимитировання (["TYPE"]="L") и указать конкретную цену (на n пунктов хуже ["STOPPRICE2"]) - то я думаю проблемы этой не будет
Сообщения говорят о том, что исполнение стоп-заявки привело к порождению лимитированной заявки с ценой 0.00, из-за чего она была отвергнута торговой системой. Возможно, при создании стоп-заявки было указан слишком большое значение защитного спреда, рекомендуем проверить данное предположение. Если указанная проверка не позволит обнаружить каких-либо критичных ошибок, просим Вас уточнить, с какими параметрами была отправлена транзакция на ввод стоп-заявки.