Подскажите, пожалуйста, почему не работает нижеприведенный скрипт на QLua на одномоментное снятие всех активных лимитированных заявок из таблицы заявок. Пробовала и на 32-х и на 64-х разрядных версиях Quik? Обязательные параметры «CLASSCODE», «TRANS_ID», «ACTION», «ACCOUNT» проставлены (Руководство пользователя QUIK (Раздел 6. Совместная работа с другими приложениями, 6.9. Импорт транзакций).). Скрипт не запускается, но при этом не ссылается на ошибки. Что не так?
Для транзакции KILL_ALL_FUTURES_ORDERS необходимо указать также параметр BASE_CONTRACT - идентификатор базового актива фьючерсов, по которым необходимо снять заявки.
Прошу прощения, за наивные вопросы, но я только начинаю программировать на QLua.
У меня с десяток активных лимитированных заявок на FORTS на разные контракты. И, при достижении определенного профита, мой робот продает все купленные контракты по рынку. А выставленные роботом ранее на продажу лимитированные заявки необходимо все разом снять. Это у меня пока не получается. Подскажите, пожалуйста, в каком формате писать базовый контракт, например, на золото и юань. Не смогла найти примеры. Их в скрипте перечислять последовательно?
BASE_CONTRACT = GOLD, BASE_CONTRACT = CNYRUB_TOM и т.д.
И как прописывать в этом случае TRANS_ID = ??? В моем простеньком роботе на покупку для всех контрактов стоит TRANS_ID = tostring(8).
Спасибо, Владимир, за ссылку. С ней я знакома. Прежде, чем задать вопрос здесь, перерыла много чего.
Я научилась снимать конкретную активную лимитированную заявку. Но это работает только в 64-х разрядной Win 7 с последней версией Quik, из-за длинного номера активной заявки. Это не работает в 32-х разрядной Win 7 - там не поддерживаются длинные номера заявок.
У меня не получается снять сразу ВСЕ активные лимитированные заявки в 32-х разрядной Win 7 с Quik версии 7.19.3.1. Скрипт - проще некуда. У всех сносит все заявки без проблем. А у меня не сносит. Хоть-бы ругался на что-то. А то, молча, не работает, и всё!
Где-то заковыка в самом тексте скрипта, но я ее не вижу!
Елена Сидорова написал: ста, в каком формате писать базовый контракт, например, на золото и юань. Не смогла найти примеры. Их в скрипте перечислять последовательно?
Елена Сидорова написал: ста, в каком формате писать базовый контракт, например, на золото и юань. Не смогла найти примеры. Их в скрипте перечислять последовательно?
Снимать отдельные активные заявки из таблица заявок, в т.ч. с помощью цикла, я умею. Меня интересует почему у меня не срабатывает команда "KILL_ALL_FUTURES_ORDERS"? Почему у меня не работает простейший скрипт с данной командой? Вот в чем загвоздка.
Nikolay написал: В таблице текущих торгов выведите информацию об инструменте и увидите код базового актива. Также его можно получить через метод getSecurityInfo.
Спасибо, Nikolay, за совет! Код базового актива для контракта GZZ3 я брала в текущей таблице параметров и подставляла его в свой скрипт
Елена, это следует из синтаксиса языка. Когда Вы пишите, инициализируя ключ в таблице (или просто в коде):
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". Что и следует из того, что все коды инструментов и классов - это строки.