№ номер заявки 1.952337642788e+018 VS 2 952 137 242 587 989 181

Страницы: 1
RSS
№ номер заявки 1.952337642788e+018 VS 2 952 137 242 587 989 181
 
Добрый день.

Подскажите пожалуйста столкнулся с проблемой - номера заявок очень длинные и когда в функцию

function OnTrade(trade)
local trade_num = trade.trade_num;
local trans_id = trade.trans_id;

приходит trade_num вместо обычного числа из 18 символов приходит что то типа: 1.952337642788e+018. В результате пишет не возможно создать заявку (стоп-ордер).

Как преобразовать такое число с "e+018" в обычное число сколько бы там не было символов?
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Попробовал сделать еще проще:

local bbb = 1952337642787989182;
message("Hi = " .. bbb);

Выводит Hi = 1.952337642788e+018

А нужно обычное целое число.
Как быть?
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Иван, добрый день!

Уточните, пожалуйста, какая версия рабочего места используется?
 
Цитата
Roman Azarov написал:
Иван, добрый день!

Уточните, пожалуйста, какая версия рабочего места используется?
7.27.2.1
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Иван,

Для корректной работы с 19-значными номерами заявок, терминал потребуется обновить до версии не ниже 8.4 (лучше сразу выполнить обновление до актуальной версии).

Также заметим, что для работы терминала версии 8.0 и выше, требуется 64-разрядная операционная система.
Если у Вас 32-разрядная ОС, ее также потребуется обновить.
 
Цитата
Roman Azarov написал:
Иван,

Для корректной работы с 19-значными номерами заявок, терминал потребуется обновить до версии не ниже 8.4 (лучше сразу выполнить обновление до актуальной версии).

Также заметим, что для работы терминала версии 8.0 и выше, требуется  64 -разрядная операционная система.
Если у Вас 32-разрядная ОС, ее также потребуется обновить.
Если бы так просто было обновиться - я бы с удовольствием...
Судя по всему проблема в ограничениях на кол-во символов для поля TRANS_ID
TRANS_ID-Уникальный идентификационный номер заявки, значение от «1» до «2 147 483 647»
Нашел решение в генерации уникального числа следующим образом:

500 служебный код + os.date("%d%H%M%S") + № контракта (++)
Проблема в том что не влажу в число символов.

Можно ли как-то вот это " os.date("%d%H%M%S") " преобразовать в меньшее число символов?
По аналогии как md5() но только нужны числа.
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Очень не хочется заводить файл и туда писать ++№ транзакции.
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Иван,

Цитата
Иван написал:
Судя по всему проблема в ограничениях на кол-во символов для поля TRANS_ID
Проблема не в этом. В поле TRANS_ID можно указать что угодно, оно необходимо лишь для идентификации транзакции Вашим скриптом (если это требуется).

Подробнее рекомендуем ознакомиться в теме https://forum.quik.ru/forum10/topic5119/
Корректная работа при использовании "обходных" решений не гарантируется.

Также, прошу прощения, немного ошибся, терминал необходимо обновить до версии 8.5 или выше.
 
Цитата
Roman Azarov написал:
TRANS_ID
У меня не принимает TRANS_ID что угодно.
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Иван,
Вы же сами сказали что от «1» до «2 147 483 647»
В чем сложность сгенерировать число входящее в этот диапозон не понятно.
Если хочется получить его из даты, тот же UNIX TIME вполне в него влезает
 
Иван,
Дополним,
судя по всему вопрос не технический, а логический. Нам не важно что вы напишите в TRANS_ID, главное чтобы размер был не больше «2 147 483 647»

Вы сами решите для себя нужна ли Вам вообще os.date("%d%H%M%S"), может ее не надо там указывать и все?
если нужна, сами для себя решите зачем, может там достаточно краткого формата ДДММГГ

Если вопрос в том, как в os.date указать выходной формат, то ответ есть в документации на Lua
 
Цитата
Sergey Gorokhov написал:
Иван,
Дополним,
судя по всему вопрос не технический, а логический. Нам не важно что вы напишите в TRANS_ID, главное чтобы размер был не больше «2 147 483 647»

Вы сами решите для себя нужна ли Вам вообще os.date("%d%H%M%S"), может ее не надо там указывать и все?
если нужна, сами для себя решите зачем, может там достаточно краткого формата ДДММГГ

Если вопрос в том, как в os.date указать выходной формат, то ответ есть в  документации на Lua
Таким образом я пытаюсь сгенерировать уникальное число для ID-транзакции.
А UNIX TIME как получить?
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Цитата
Иван написал:
А UNIX TIME как получить?
UNIX TIME - это просто количество секунд начиная с какой-то даты (1 января 1970г).
можно получить через тот же os.date
Судя по всему, Вам не это нужно.
Просто сами определите для себя какое число Вам требуется и сгенерируйте. тех поддержка в этом месте не причем.
Вопрос только и только на Вашей стороне.
Хотите, считайте тот же UNIX TIME но с 2000 года
или "сожмите" дату до нужного размера (например сложив чила)
Или другие варианты которые Вам понравятся.
 
Цитата
Sergey Gorokhov написал:
Цитата
Иван написал:
А UNIX TIME как получить?
UNIX TIME - это просто количество секунд начиная с какой-то даты (1 января 1970г).
можно получить через тот же os.date
Судя по всему, Вам не это нужно.
Просто сами определите для себя какое число Вам требуется и сгенерируйте. тех поддержка в этом месте не причем.
Вопрос только и только на Вашей стороне.
Хотите, считайте тот же UNIX TIME но с 2000 года
или "сожмите" дату до нужного размера (например сложив чила)
Или другие варианты которые Вам понравятся.
Мне нужно как-то сгенерировать TRANS_ID - уникальное число со смыслом. А не просто уникальное число.
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Цитата
Иван написал:
Мне нужно как-то сгенерировать TRANS_ID - уникальное число со смыслом. А не просто уникальное число.
Не понятно что Вам мешает это сделать
Есть понимание какой смысл в TRANS_ID Вам нужен? Если нет, тогда определитесь и далее исходя из этого действуйте.
 
Цитата
Sergey Gorokhov написал:
TRANS_ID
Правильно ли понимаю если у меня по какой-то причине будет в течении дня сгенерировано два одинаковых TRANS_ID с одинаковыми номерами - максимум чем мне это грозит при снятии стоп-лоса, это то, что будет снят только 1, а второй останется болтаться?
Торговый привод на Lua: https://github.com/iv-litovchenko/Quik-Enter-Trade
 
Цитата
Иван написал:
Правильно ли понимаю если у меня по какой-то причине будет в течении дня сгенерировано два одинаковых TRANS_ID с одинаковыми номерами - максимум чем мне это грозит при снятии стоп-лоса, это то, что будет снят только 1, а второй останется болтаться?
Для того чтобы снять стоп, параметр TRANS_ID вообще не нужен.
В транзакции на снятие стопа есть только номер стоп заявки, это НЕ тоже что TRANS_ID.

TRANS_ID - Нужен исключительно Вам т.е. Вашему роботу. QUIK на него вообще никак не смотрит.
Нам не известно какая логика заложена в Вашем роботе, следовательно не можем ответить на вопрос о его поведении.
Страницы: 1
Читают тему (гостей: 2)
Наверх