Доброго времени суток всем. Подскажите как написать заявку Take profit и stop loss? Допустим купил по 100. И хочу продать по 105(Take profit) или по 98(Stop loss) Не могу написать именно сам массив для Sendtrasaction.
открываете Руководство пользователя QUIK Раздел 6. Совместная работа с другими приложениями Импорт транзакций Формат .tri-файла с параметрами транзакций Примеры строк, которые могут содержаться в файле -------------- и там есть пример
Тейк-профит и стоп-лимит Лукойл, покупка 1 лота, активация тейк-профита при достижении цены 2000 с отступом в 5% и защитным спредом в 3%, стоп-цена 2222, цена лимитированной заявки 2255, время действия с 10:00:01 по 19:45:45
1) В числах разделитель разрядов должен быть точкой. 2) Если после знака равно стоит строка, её надо взять в кавычки. 3) В самом конце строк таблицы stop нужны запятые, а не точки с запятой, как сейчас в некоторых местах. 4) TRANS_ID должно быть числом.
_sk_ написал: 1) В числах разделитель разрядов должен быть точкой. 2) Если после знака равно стоит строка, её надо взять в кавычки. 3) В самом конце строк таблицы stop нужны запятые, а не точки с запятой, как сейчас в некоторых местах. 4) TRANS_ID должно быть числом.
Спасибо. Я имел ввиду сделать из вышенаписанного кода массив для sendtransaction?
Для отправки транзакции с помощью sendTransaction необходимо указать ее параметры в фиксированном формате. Описание фиксированного формата доступно в Руководстве пользователя Рабочего места QUIK: Раздел 6. Совместная работа с другими приложениями / Импорт транзакций / Фиксированный формат файла импорта транзакций / Формат .tri-файла с параметрами транзакций.
_sk_ написал: 1) В числах разделитель разрядов должен быть точкой. 2) Если после знака равно стоит строка, её надо взять в кавычки. 3) В самом конце строк таблицы stop нужны запятые, а не точки с запятой, как сейчас в некоторых местах. 4) TRANS_ID должно быть числом.
Спасибо. Я имел ввиду сделать из вышенаписанного кода массив для sendtransaction?
для этого надо все параметры записать либо в кавычках либо с помощью функции tostring()
Для себя когда то делал, даже с рисунком, вроде все правильно. Может пригодится ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 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] не прошла контроль лимитов
От чего так?
Проверьте параметр ["PRICE"]. Из руководства: ["PRICE"] - Цена заявки, за единицу инструмента. Обязательный параметр. При выставлении рыночной заявки (TYPE=M) на Срочном рынке FORTS необходимо указывать значение цены – укажите наихудшую (минимально или максимально возможную – в зависимости от направленности), заявка все равно будет исполнена по рыночной цене. Для других рынков при выставлении рыночной заявки укажите price=0
Хотя если указать, что заявка лимитировання (["TYPE"]="L") и указать конкретную цену (на n пунктов хуже ["STOPPRICE2"]) - то я думаю проблемы этой не будет
Сообщения говорят о том, что исполнение стоп-заявки привело к порождению лимитированной заявки с ценой 0.00, из-за чего она была отвергнута торговой системой. Возможно, при создании стоп-заявки было указан слишком большое значение защитного спреда, рекомендуем проверить данное предположение. Если указанная проверка не позволит обнаружить каких-либо критичных ошибок, просим Вас уточнить, с какими параметрами была отправлена транзакция на ввод стоп-заявки.