Заявки не переносятся на следующий день

Страницы: 1
RSS
Заявки не переносятся на следующий день, Проблема с переносом заявок на рынке FORTS, выставленных с использованием LUA. Не работают флаги ["Дата экспирации"] и ["Expiration date"] в SendTransaction
 
Выставленные через LUA заявки не переносятся на следующий день в тех случаях когда используется параметр EXPIRY_DATE с соответствующими значениями (будущая дата / 'GTC').
Работаю с фьючерсами на FORTS через Финам, версия программы последняя на сервере - 7.6.1.1.
Эта проблема уже обсуждалась на форуме
https://forum.quik.ru/messages/forum10/message14444/topic1590/#message14444
Однако, предложенное решение - использование названий параметров на русском, не работает, по крайней мере у меня. Квик отказывается их понимать и выдает ошибку
Такое впечатление, что интерпретатор вообще никак не реагирует на флаг "EXPIRY_DATE", заявка выставляется с сроком жизни до конца сессии, даже если туда забивать ошибочные данные, например, -- прошедшую дату.


Пример кода:
t = {
-- Задаем базовые параметры ордера
["CLASSCODE"] = FORTS , --заявки выставляются только на рынке FORTS
["SECCODE"] = SEC_CODE,
["ACTION"] = "NEW_ORDER",
["ACCOUNT"] = ACCOUNT, --задано в начале функции по умолчанию
["CLIENT_CODE"] = CLIENT_CODE, --задано в начале функции по умолчанию
["TYPE"]         = "L", -- лимитированные заявки
["OPERATION"] = tradeDir, -- направление продажи ('B' или 'S')
["PRICE"] = tostring(Price),
["QUANTITY"] = tostring(lots),
["TRANS_ID"] = tostring(uniq_trans_id),
["EXPIRY_DATE"] = 'GTC'
 }

res=sendTransaction(t);
 
Здравствуйте,
Согласно документации:
EXPIRY_DATE - это срок действия стоп-заявки.
т.е. для лимитированных заявок он не предназначен.
Для лимитированных заявок, возможен вариант только с указанием команд в кириллице.
То что у Вас он не работает, означает что Вы что-то делаете не так.
Добавьте нужную транзакцию в Карман транзакций и сохраните ее от туда в tri файл.
Открыв полученный файл блокнотом Вы увидите как команды должны выглядеть.
Перемешивать команды на кириллице с обычными нельзя.
 
Цитата
Sergey Gorokhov написал:
Добавьте нужную транзакцию в Карман транзакций и сохраните ее от туда в tri файл.
Эту фразу я уже не раз читал, но, признаться, решительно не понимаю что она значит. Есть ли пример с кодом?
 
Цитата
Иван Ру написал:
Цитата
Sergey Gorokhov   написал:
Добавьте нужную транзакцию в Карман транзакций и сохраните ее от туда в tri файл.
Эту фразу я уже не раз читал, но, признаться, решительно не понимаю что она значит. Есть ли пример с кодом?
Здравствуйте,

Пример Вы можете получить сами, для этого и нужно открыть в QUIK таблицу карман транзакций, правой кнопкой мыши добавить нужную транзакцию (она отобразится в кармане), далее сохраняете ее в tri файл, открываете файл и смотрите параметры, которые и нужно будет применить.
 
Цитата
Egor Zaytsev написал:
Цитата
Иван Ру   написал:
Цитата
Sergey Gorokhov   написал:
Добавьте нужную транзакцию в Карман транзакций и сохраните ее от туда в tri файл.
Эту фразу я уже не раз читал, но, признаться, решительно не понимаю что она значит. Есть ли пример с кодом?
Здравствуйте,

Пример Вы можете получить сами, для этого и нужно открыть в QUIK таблицу карман транзакций, правой кнопкой мыши добавить нужную транзакцию (она отобразится в кармане), далее сохраняете ее в tri файл, открываете файл и смотрите параметры, которые и нужно будет применить.
Вот опять. Я никогда не работал таким образом и понятие не имею о чем речь + никакой инфо в справке луа и квик я не нашел, как и подробных примеров. Как человеку, который не сталкивался с проблемой понять смысл сказанного? Уточню вопросы.
1. Как мне "открыть"  карман транзакций? В каком разделе меню? В разделе "Окна" я не вижу окна с таким именем. В справке Квик вообще нет упоминания "кармана транзакций".
2. Каким способом я должен "добавить" транзакцию в неизвестный мне карман. Написав код в теле робота луа? Каким образом это должно выглядеть в виде кода? Какие операции / методы для этого используются? Или каким-то иным способом?
3. Каким образом я должен "сохранить" в tri файл транзакцию после добавления неизвестным способом в неизвестное окно. Каково полное имя файла, какой метод использовать для сохранения.
 
Иван, в документации про карман транзакции информация имеется.

Раздел 3. Просмотр информации/Таблица «Карман транзакций»
Таблица добавляется через пункт меню Создать Окно - Настроить меню.
Строите таблицу, в ней нажимаете правой кнопкой мыши, выбираете "положить в карман",
далее заполняете все поля транзакции, транзакция появляется в таблице, выделяете ее, снова нажимаете правой кнопкой мыши и выбираете "сохранить транзакции в tri файл". Открываете файл и получаете текст, который и используете в LUA.
 
Цитата
Egor Zaytsev написал:
Раздел 3. Просмотр информации/Таблица «Карман транзакций»
Спасибо за разъяснения и информацию. К сожалению в Предложенном разделе не смог найти алгоритм автоматизации торговли с переносом заявок Насколько я понял из текста Вы предлагаете осуществлять некоторые действия вручную, но вручную я и так могу выставлять заявки, которые будут переноситься на следующий день. Или я что-то неправильно понял.  
 
Иван Ру,

Да Вы не правильно поняли. Давайте еще раз почитаем вместе весь диалог.
Вот Вы говорите:
Цитата
Иван Ру написал:
Однако, предложенное решение - использование названий параметров на русском, не работает, по крайней мере у меня

На что Вам был дан следующий ответ:
Цитата
Sergey Gorokhov написал:
То что у Вас он не работает, означает что Вы что-то делаете не так.
Добавьте нужную транзакцию в Карман транзакций и сохраните ее от туда в tri файл.
Открыв полученный файл блокнотом Вы увидите как команды должны выглядеть.

Т.е. Вы не знаете какие команды на русском указать в транзакции, а Вам сказали способ как это узнать.
Что именно из ответа Вам не понятно?
 
Цитата
Sergey Gorokhov написал:
Иван Ру  ,

Да Вы не правильно поняли. Давайте еще раз почитаем вместе весь диалог.
Вот Вы говорите:
Цитата
Иван Ру   написал:
Однако, предложенное решение - использование названий параметров на русском, не работает, по крайней мере у меня
На что Вам был дан следующий ответ:
Цитата
Sergey Gorokhov   написал:
То что у Вас он не работает, означает что Вы что-то делаете не так.
Добавьте нужную транзакцию в Карман транзакций и сохраните ее от туда в tri файл.
Открыв полученный файл блокнотом  Вы увидите как команды должны выглядеть.
Т.е. Вы не знаете какие команды на русском указать в транзакции, а Вам сказали способ как это узнать.
Что именно из ответа Вам не понятно?
Ну в общем-то - ничего. Я же объяснил, что не знаком с процедурой вообще (при том что программирую на луа достаточно давно). По-видимому автор опускает большинство деталей, которые для него очевидны, а мне не известны.

"Т.е. Вы не знаете какие команды на русском указать в транзакции"

Почему? Читал рекомендации на форуме. Я их использовал, они не работают.
Хотя неплохо бы уточнить, о чем Вы вообще говорите, об изначальном коде в LUA и параметрах ордера?

Вот разберем простую фразу
"Добавьте нужную транзакцию в Карман транзакций "

Это замечательно, только я не понимаю, что автор имеет ввиду -- каким образом создать транзакцию и где? Каким образом добавить ее в карман транзакций который я прежде вообще ни разу не использовал. Ну давайте попробую обо всех деталях догадываться сам. Для начала, мне очевидно необходимо открыть соответствующее окно "Карман транзакций". У меня его пока нет, а при попытке открыть окно "Карман транзакций" у меня появляется меню "Создание кармана транзакций". Что мне там делать? Допустим я начинаю пытаться догадываться что делать дальше и предполагаю что надо выбрать "рынок ФОРТС фьючерсы" - Доступные транзакции: Ввод заявок, затем добавляю все поля "Доступные параметры". У меня появляется замечательное пустое окно. И что мне дальше с ним делать? Давайте я интуитивно предположу, что я, наверное, должен с помощью мышки перетащить туда заявку из окна "Таблица заявок". Перетащил.. бросил первую попавшуюся... нигде полей связаных со сроком ее жизни я вообще не вижу. Только дата экспирации (фьючерса).
 
Цитата
Иван Ру написал:
Я же объяснил, что не знаком с процедурой вообще (при том что программирую на луа достаточно давно).
Описание функционала есть в документации, которая открывается клавишей F1.
-Раздел 3. Просмотр информации
--Таблица «Карман транзакций»

Цитата
Иван Ру написал:
И что мне дальше с ним делать? Давайте я интуитивно предположу, что я, наверное, должен с помощью мышки перетащить туда заявку из окна "Таблица заявок". Перетащил.. бросил первую попавшуюся... нигде полей связаных со сроком ее жизни я вообще не вижу. Только дата экспирации (фьючерса).

Нажмите правой кнопкой мыши по таблице Карман транзакций и укажите пункт Положить в карман.
Найдите в таблице нужную транзакцию, откроется форма ввода заявки.
Эта форма не настоящая, она не создает заявку, а просто добавляет (как бы записывает) данные о транзакции в карман.
Заполните форму, ровно так как Вам нужно, Конкретно поставьте признак Переносить заявку и укажите нужную дату. В обще все параметры укажите ровно такак как Вам надо в LUA. После чего сохраните данные и кармана в tri файл, в контекстном меню пункт Сохранить транзакции в tri файл.
Полученный файл можно открыть блокнотом.
 
Добрый день.
Принцип формирования транзакций из QLua в так называемом универсальном формате с использованием "Кармана транзакций" подробно описан в официальной документации (документ 'Использование Lua в Рабочем месте  QUIK.pdf'. Файл можно найти, например, в архиве quik_7.4.0_upd.zip  в директории Doc\Lua.), раздел "4. Отправка транзакций из Lua скрипта"
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
 
Цитата
Nikolay Pavlov написал:
Добрый день.
Принцип формирования транзакций из QLua в так называемом универсальном формате с использованием "Кармана транзакций" подробно описан в официальной документации (документ 'Использование Lua в Рабочем месте  QUIK.pdf'. Файл можно найти, например, в архиве  quik_7.4.0_upd.zip   в директории Doc\Lua.), раздел "4. Отправка транзакций из Lua скрипта"
Спасибо, решить проблему удалось за исключением одного нюанса.
Прежде я использовал поле ["CLIENT_CODE"] куда вписывал уникальный идентификатор, по которому находил все заявки выставленные конкретным роботом.
В версии на русском это поле использовать нельзя -- интерпретатор его не понимает и ругается. В три-файле аналога я тоже не вижу. Есть ли все-таки у него какая-либо русскоязычная альтернатива?
 
Цитата
Иван Ру написал:
Спасибо, решить проблему удалось за исключением одного нюанса.
Прежде я использовал поле ["CLIENT_CODE"] куда вписывал уникальный идентификатор, по которому находил все заявки выставленные конкретным роботом.
В версии на русском это поле использовать нельзя -- интерпретатор его не понимает и ругается. В три-файле аналога я тоже не вижу. Есть ли все-таки у него какая-либо русскоязычная альтернатива?
Добрый день.
Просто создайте необходимую транзакцию через Карман транзакций и сохраните ее в *.tri файл, как это описано в документации и Вы увидите, что код клиента для транзакций по фьючерсам FORTS заполняется в поле 'Комментарий' в универсальном формате:
TRANS_ID=1;CLASSCODE=SPBFUT;ACTION=Ввод заявки;Торговый счет=XXXXXXX;К/П=Покупка;Тип=Лимитированная;Класс=SPBFUT;Инструмент=AUM7;Цена=12.0000;Количество=22;Условие исполнения=Поставить в очередь;Комментарий=XXXXXX/test;Переносить заявку=Нет;Дата экспирации=20170503;
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
Страницы: 1
Читают тему
Наверх