Брокер ошибки не видит и считает, что все хорошо, в крайнем случае, четверо разных из поддержки ответили одно и то же, даже после совещания с соответствующим отделом. Могу я за брокера обратиться, чтобы вы сделали такую проверку?
Ошибка в обработке Тейк-профит заявок
Пользователь
Сообщений: Регистрация: 12.05.2020
16.08.2024 07:14:50
При торговле на американском рынке возникает следующая ошибка: после того, как произошел сплит, старая тейк-профит заявка все равно выставляется, даже если у бумаги уже изменился ISIN и это по факту уже другая бумага. Quik ставит в продажу по тейк-профиту другую бумагу только потому, что у нее одинаковое с предыдущей название, например, на днях такое было в Финаме с бумагой GNLN.US. Сделайте, пожалуйста, перед выставлением тейк-профит заявки проверку по ISIN коду, чтобы выставлялась именно нужная бумага.
Поправить таблицу
Пользователь
Сообщений: Регистрация: 12.05.2020
09.04.2021 18:53:16
Не знаю причину и не могу поправить проблему вывода в таблицу, на данный момент в нескольких таблицах такое (прикрепил скрин). Подскажите, пожалуйста, как поправить.
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
13.05.2020 13:21:42
Перепроверил, немного поправил, все работает. Спасибо!
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 19:02:06
> В связи с чем рекомендуем даже не начинать пытаться что то делать на QPILE, а сразу перейти на работу с QLUA скриптами.
Спасибо за совет, но мне нужен небольшой робот, который, в принципе, рабочий, но на фьючерсах, я его под опционы подгоняю и появились несколько вышеозвученных проблем. Как они решаться необходимость в написании роботов отпадает.
Можете написать, пожалуйста, почему не работает функция "УДАЛЯЕМ ЗАЯВКИ" на опционах (повторюсь, на фьючерсах работает отлично)?
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 15:28:27
Подскажите, пожалуйста, почему не работает функция "УДАЛЯЕМ ЗАЯВКИ", робот полностью показан выше?
Я пробовал вызвать функцию и KILLALLORDERS(INSTRUMENT), и KILLALLORDERS(899), заявки не снимаются.
-------- ' =========== УДАЛЯЕМ ЗАЯВКИ FUNC KILLALLORDERS(KEY) MESSAGE ("СНИМАЕМ "&KEY,1) N=GET_NUMBER_OF("ORDERS") IF N>0 FOR I FROM 0 TO N IF (GET_VALUE (GET_ITEM ("ORDERS", I), "STATUS")="ACTIVE") AND (GET_VALUE (GET_ITEM ("ORDERS", I), "SECCODE")=INSTRUMENT) NEW_GLOBAL("TRANS_PARAMS", "") NEW_GLOBAL("TRANS_RESULT", "") TRANS_PARAMS = "" TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "TRANS_ID", "7"&TIME) TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "CLASSCODE", "SPBOPT") TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "SECCODE", KEY) TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "ORDER_KEY", GET_VALUE (GET_ITEM ("ORDERS", I), "ORDER_NUMBER")&"") TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "ACTION", "KILL_ORDER") TRANS_RESULT = SEND_TRANSACTION (30, TRANS_PARAMS) END IF END FOR END IF END FUNC ----------------------
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 15:20:08
Причина оказалась в регистре букв параметра ACCOUNT. Проблема решена. Спасибо!
'========= ДАТА И ВРЕМЯ СЕРВЕРНОЕ SERVERTIME=GET_INFO_PARAM("SERVERTIME") SERVERDATE=GET_INFO_PARAM("TRADEDATE") TIMESERV=SUBSTR(SERVERTIME,0,2)&SUBSTR(SERVERTIME,3,2)&SUBSTR(SERVERTIME,6,7) HOUR=SUBSTR(TIMESERV,0,2)+0 MIN=SUBSTR(TIMESERV,2,2)+0 SEC=SUBSTR(TIMESERV,4,2)+0 TIME=TIMESERV+0 DATE=SUBSTR(SERVERDATE,6,4)&SUBSTR(SERVERDATE,3,2)&SUBSTR(SERVERDATE,0,2) TRID=TIME
' ФУНКЦИЯ ПЕРЕВОДА ДАТЫ И ВРЕМЕНИ В ТЕКСТОВЫЙ ФОРМАТ FUNC FTEXTDATA(YEAR,MONTH,DAY) IF (LEN(MONTH) < 2) MONTH = "0" & MONTH END IF IF (LEN(DAY) < 2) DAY = "0" & DAY END IF RESULT = YEAR & MONTH & DAY END FUNC FUNC FTEXTTIME(HOUR,MIN,SEC) IF (LEN(HOUR) < 2) HOUR = "0" & HOUR END IF IF (LEN(MIN) < 2) MIN = "0" & MIN END IF RESULT = HOUR & MIN & "00" END FUNC
' =========== УДАЛЯЕМ ЗАЯВКИ FUNC KILLALLORDERS(KEY) MESSAGE ("СНИМАЕМ "&KEY,1) N=GET_NUMBER_OF("ORDERS") IF N>0 FOR I FROM 0 TO N IF (GET_VALUE (GET_ITEM ("ORDERS", I), "STATUS")="ACTIVE") AND (GET_VALUE (GET_ITEM ("ORDERS", I), "SECCODE")=INSTRUMENT) NEW_GLOBAL("TRANS_PARAMS", "") NEW_GLOBAL("TRANS_RESULT", "") TRANS_PARAMS = "" TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "TRANS_ID", "7"&TIME) TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "CLASSCODE", "SPBOPT") TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "SECCODE", KEY) TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "ORDER_KEY", GET_VALUE (GET_ITEM ("ORDERS", I), "ORDER_NUMBER")&"") TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "ACTION", "KILL_ORDER") TRANS_RESULT = SEND_TRANSACTION (30, TRANS_PARAMS) END IF END FOR END IF END FUNC
' ТЕКУЩИЕ ЗАЯВКИ BUYORDERS=0 SELLORDERS=0 TPPUT=0 FOR I FROM 0 TO GET_NUMBER_OF("FUTURES_CLIENT_HOLDINGS") IF GET_VALUE (GET_ITEM ("FUTURES_CLIENT_HOLDINGS", I), "SECCODE")=INSTRUMENT AND GET_VALUE (GET_ITEM ("FUTURES_CLIENT_HOLDINGS", I), "TRDACCID")=ACCOUNT TPPUT=GET_VALUE(GET_ITEM("FUTURES_CLIENT_HOLDINGS",I), "TOTAL_NET")+0 BUYORDERS=GET_VALUE(GET_ITEM("FUTURES_CLIENT_HOLDINGS",I), "OPEN_BUYS")+0 SELLORDERS=GET_VALUE(GET_ITEM("FUTURES_CLIENT_HOLDINGS",I), "OPEN_SELLS")+0 END IF END FOR
PARAMETER NAME; PARAMETER_TITLE NAME; PARAMETER_DESCRIPTION NAME; PARAMETER_TYPE STRING(25); END PARAMETER BID; PARAMETER_TITLE BID; PARAMETER_DESCRIPTION BID; PARAMETER_TYPE STRING(25); END PARAMETER OFFER; PARAMETER_TITLE OFFER; PARAMETER_DESCRIPTION OFFER; PARAMETER_TYPE NUMERIC(4,0); END PARAMETER BUYORDERS; PARAMETER_TITLE BUYORDERS; PARAMETER_DESCRIPTION BUYORDERS; PARAMETER_TYPE NUMERIC(4,0); END PARAMETER SELLORDERS; PARAMETER_TITLE SELLORDERS; PARAMETER_DESCRIPTION SELLORDERS; PARAMETER_TYPE NUMERIC(4,0); END PARAMETER TPPUT; PARAMETER_TITLE TPPUT; PARAMETER_DESCRIPTION TPPUT; PARAMETER_TYPE NUMERIC(4,0); END
END_PORTFOLIO_EX -----------------
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 13:17:27
Уточню: в целом код на фьючерсах работает отлично, но тут робот для опционов (INSTRUMENT="RI107500BQ0B" - это пут опцион), на них не работает почему-то.
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 13:15:41
Цитата
Sergey Gorokhov написал: Дополним, Есть догадка, что портфель просто слишком редко проверяет значения. Проверьте какой интервал указан в "Период расчета"
2 секунды
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 13:15:07
> Проверьте в самой таблице позиций по клиентским счетам, какое значение в колонке "Акт. покупка"?
1 на покупку и 1 на продажу, скрин прикрепил.
> Также уточните какая версия терминала QUIK используется.
8.4.1.6
Определение текущих заявок в опционах
Пользователь
Сообщений: Регистрация: 12.05.2020
12.05.2020 11:49:09
Подскажите, пожалуйста, почему не работает? Ставлю активную заявку на покупку, а BUYORDERS = 0
----- ' ТЕКУЩИЕ ЗАЯВКИ BUYORDERS=0 SELLORDERS=0 TPPUT=0 FOR I FROM 0 TO GET_NUMBER_OF("FUTURES_CLIENT_HOLDINGS") IF GET_VALUE (GET_ITEM ("FUTURES_CLIENT_HOLDINGS", I), "SECCODE")=INSTRUMENT AND GET_VALUE (GET_ITEM ("FUTURES_CLIENT_HOLDINGS", I), "TRDACCID")=ACCOUNT TPPUT=GET_VALUE(GET_ITEM("FUTURES_CLIENT_HOLDINGS",I), "TOTAL_NET")+0 BUYORDERS=GET_VALUE(GET_ITEM("FUTURES_CLIENT_HOLDINGS",I), "OPEN_BUYS")+0 SELLORDERS=GET_VALUE(GET_ITEM("FUTURES_CLIENT_HOLDINGS",I), "OPEN_SELLS")+0 END IF END FOR -----