"KILL_ALL_FUTURES_ORDERS", Снятие всех активных заявок на FORTS
Пользователь
Сообщений: Регистрация: 18.09.2023
18.09.2023 19:10:18
Здравствуйте!
Подскажите, пожалуйста, почему не работает нижеприведенный скрипт на QLua на одномоментное снятие всех активных лимитированных заявок из таблицы заявок. Пробовала и на 32-х и на 64-х разрядных версиях Quik? Обязательные параметры «CLASSCODE», «TRANS_ID», «ACTION», «ACCOUNT» проставлены (). Скрипт не запускается, но при этом не ссылается на ошибки. Что не так?
Для транзакции KILL_ALL_FUTURES_ORDERS необходимо указать также параметр BASE_CONTRACT - идентификатор базового актива фьючерсов, по которым необходимо снять заявки.
Пользователь
Сообщений: Регистрация: 18.09.2023
19.09.2023 12:15:30
Спасибо, Антон, за оперативный ответ!
Прошу прощения, за наивные вопросы, но я только начинаю программировать на QLua.
У меня с десяток активных лимитированных заявок на FORTS на разные контракты. И, при достижении определенного профита, мой робот продает все купленные контракты по рынку. А выставленные роботом ранее на продажу лимитированные заявки необходимо все разом снять. Это у меня пока не получается. Подскажите, пожалуйста, в каком формате писать базовый контракт, например, на золото и юань. Не смогла найти примеры. Их в скрипте перечислять последовательно?
BASE_CONTRACT = GOLD, BASE_CONTRACT = CNYRUB_TOM и т.д.
И как прописывать в этом случае TRANS_ID = ??? В моем простеньком роботе на покупку для всех контрактов стоит TRANS_ID = tostring(8).
Заранее, спасибо! Елена.
Пользователь
Сообщений: Регистрация: 18.09.2023
19.09.2023 14:47:43
Здравствуйте!
Написала вот такой скрипт для удаления лимитированной заявки GZZ3. Quik версии 7.19.3.1. Window 7 32-х разрядный.
Спасибо, Владимир, за ссылку. С ней я знакома. Прежде, чем задать вопрос здесь, перерыла много чего.
Я научилась снимать конкретную активную лимитированную заявку. Но это работает только в 64-х разрядной Win 7 с последней версией Quik, из-за длинного номера активной заявки. Это не работает в 32-х разрядной Win 7 - там не поддерживаются длинные номера заявок.
У меня не получается снять сразу ВСЕ активные лимитированные заявки в 32-х разрядной Win 7 с Quik версии 7.19.3.1. Скрипт - проще некуда. У всех сносит все заявки без проблем. А у меня не сносит. Хоть-бы ругался на что-то. А то, молча, не работает, и всё!
Где-то заковыка в самом тексте скрипта, но я ее не вижу!
Просим Вас более подробно описать решаемую задачу, а также прислать используемый Lua-скрипт.
Информацию можно отправить на нашу почту , в письме необходимо указать ссылку на данную тему форума.
Заранее благодарим!
Пользователь
Сообщений: Регистрация: 31.03.2019
09.10.2023 16:47:39
Цитата
Елена Сидорова написал: ста, в каком формате писать базовый контракт, например, на золото и юань. Не смогла найти примеры. Их в скрипте перечислять последовательно?
Елена, я бы сделал так: Прошелся бы циклом по таблице заявок и все заявки, которые выставлены снял бы. Как снимать заявки, я описывал у себя на канале: ;
Пользователь
Сообщений: Регистрация: 27.01.2017
09.10.2023 17:02:44
В таблице текущих торгов выведите информацию об инструменте и увидите код базового актива. Также его можно получить через метод getSecurityInfo.
написал: ста, в каком формате писать базовый контракт, например, на золото и юань. Не смогла найти примеры. Их в скрипте перечислять последовательно?
Елена, я бы сделал так: Прошелся бы циклом по таблице заявок и все заявки, которые выставлены снял бы. Как снимать заявки, я описывал у себя на канале: ;
Спасибо, Николай, за совет!
Снимать отдельные активные заявки из таблица заявок, в т.ч. с помощью цикла, я умею. Меня интересует почему у меня не срабатывает команда "KILL_ALL_FUTURES_ORDERS"? Почему у меня не работает простейший скрипт с данной командой? Вот в чем загвоздка.
Елена.
Пользователь
Сообщений: Регистрация: 18.09.2023
09.10.2023 19:05:28
Цитата
Nikolay написал: В таблице текущих торгов выведите информацию об инструменте и увидите код базового актива. Также его можно получить через метод getSecurityInfo.
Спасибо, , за совет! Код базового актива для контракта GZZ3 я брала в текущей таблице параметров и подставляла его в свой скрипт
Я так и думала, что помочь сможет только опытный человек!
Елена.
Пользователь
Сообщений: Регистрация: 27.01.2017
14.10.2023 10:22:39
Елена, это следует из синтаксиса языка. Когда Вы пишите, инициализируя ключ в таблице (или просто в коде):
local trans = { ...
BASE_CONTRACT = GAZR, ...
}
Это означает, что необходимо объявить переменную BASE_CONTRACT и инициализировать её значением, содержащееся в другой переменной GAZR. Т.е. в таком виде GAZR - это переменная. А если она не была инициализирована, то будет nil.
В результате BASE_CONTRACT становился nil.
А вот в таком виде BASE_CONTRACT = "GAZR"
Уже означает, что переменной необходимо присвоить значение типа строка = "GAZR". Что и следует из того, что все коды инструментов и классов - это строки.
Nikolay написал: Елена, это следует из синтаксиса языка. Когда Вы пишите, инициализируя ключ в таблице (или просто в коде):
local trans = { ...
BASE_CONTRACT = GAZR, ...
}
Это означает, что необходимо объявить переменную BASE_CONTRACT и инициализировать её значением, содержащееся в другой переменной GAZR. Т.е. в таком виде GAZR - это переменная. А если она не была инициализирована, то будет nil.
В результате BASE_CONTRACT становился nil.
А вот в таком виде BASE_CONTRACT = "GAZR"
Уже означает, что переменной необходимо присвоить значение типа строка = "GAZR". Что и следует из того, что все коды инструментов и классов - это строки.