нет, взламывать не надо. Так как мы имеем встроенную в основной поток VMLUA , следовательно все dll, которые мы подключаем к ней являются родными для процесса info.exe (терминала КВИК) ------------------------- Проблема лишь в отсутствии документации. Но хорошей документацией QUIK никогда не славился. Поэтому простейший реинженеринг софта потребуется ----------------------------- Раньше, когда требовался взлом (до времен VM Lua) подобную задачу я делал даже без СИ, на скриптовом языке Autoit. ------------------ Но, правда, не вижу практической надобности этого мероприятия.
Как бороться с файлом alltrade.dat
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 18:10:20
можно делать так: -------------------------------- руками в квике 1) нажать в меню "Очистить все и начать новый сеанс"' ------------------------------- автоматом: 2) батник прописать сценарий удалить файлы 3) п 1 сделать автоматом 4) написать скрипт в батник для запуска квика и прочего. Например: у меня уже лет ...надцать квик по расписанию запускается скриптом и вводит пароли. запускает все, что еще надо, можно удалять все, что не надо .
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 07:39:08
А ошибку Вы получаете потому, что у Вас вызов функции происходит до ее описания Попробуйте изучить Lua.
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
06.02.2016 07:37:34
Нельзя колбек вставлять в main попробуйте разобраться с назначением колбеков и main. Так НЕЛЬЗЯ: function main() while is_run do OnOrder() sleep(50) end end
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 23:08:17
еще можно хуком. но это для любителей экзотики.
Синхронизация данных от SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 23:03:47
можно сделать очередь либо использовать кораунды а еще лучше переделать весь алгоритм
OnOrder выдает ошибку
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 22:57:29
Вы пишите скрипт или индикатор?
Одна сделка - OnTrade() два колбека
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 09:33:26
примерно так:
Скрытый текст
local lenT_old=0; local flag=false;
function OnInit (path) -- инициализация функции main lenT_old=getNumberOf("trades") flag=false; end
function OnTrade(trade) lenT=getNumberOf("trades") if lenT==lenT_old then flag=true end lenT=lenT_old; if flag then --.... -- обработка колбека end end
Куда быстрее попадают новые данные, в стакан или таблицу текущих параметров?, Интересуют лучший спрос и лучшее предложение - спред в стакане.
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 09:12:19
вопрос скорее будет в том, как быстро Вы сможете отреагировать на изменение данных. Полагаю, что это время составит в среднем не менее 100 мс. Поэтому разницы нет, если Вам не имеет значения очередь берите из ТТП
HHV, LLV за период в LUa ?, Реализация в Луа в виде индикатора HHV LLV
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 09:07:37
Вопрос к знатокам китайского языка. Кто-нибудь может написать что-нибудь на китайском, чтобы я это понял. Я в китайском - ноль.
Функция обратного вызова OnFuturesClientHolding
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 09:03:56
1) С ошибкой в скрипте. 2) С ошибкой в понимании того, что запрограммировано.
Функция CreateDataSource
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 09:01:29
можно использовать: 1) getParamEx – значения всех параметров биржевой информации из Таблицы текущих значений параметров, 2) getQuoteLevel2 – стакан по указанному классу и бумаге, 3) getItem – для таблицы all_trades
Получение количество лотов в позиции
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 08:52:15
примерно так:
Скрытый текст
local acc="...." --- это Ваш счет депо --------------------------------- function LB(sec) local n = getNumberOf("depo_limits") for y = 0, n-1 do local trade = getItem("depo_limits", y) if trade.sec_code==sec and trade.trdaccid==acc then return trade.currentbal end end return 0 end
function OnQuote(CLASS, SEC) --..... local Limit=LB( SEC) -- получим лимит --.... end
Перестают отображаться графики после многократного вызова CreateDataSource() - ds:Close()
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 08:31:45
а закрытие источников перенести в закрытие скрипта
Перестают отображаться графики после многократного вызова CreateDataSource() - ds:Close()
function main() message("_________________________________") local class_code0="TQBR" local hm=#sec_code if ds~=true then ds={}; for h=1,hm do ds[n]=nil end end for h=1,hm do if ds[h]~=true then ds[h],error=CreateDataSource(class_code0,sec_code[h],INTERVAL_M1) if ds[h] then text=string.format("%-2d %-5s created",h,sec_code[h]) else text=string.format("%-2d %-5s error: %s",h,sec_code[h],error) end message(text) end end message("---------------------------------") end
Перестают отображаться графики после многократного вызова CreateDataSource() - ds:Close()
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 08:28:53
чтобы не было указанной проблемы надо сделать примерно так:
function main() message("_________________________________") local class_code0="TQBR" local hm=#sec_code if ds~=true then ds={}; for h=1,hm do ds[n]=nil end end for h=1,hm do if ds[h]~=true then ds[h],error=CreateDataSource(class_code0,sec_code[h],INTERVAL_M1) if ds[h] then text=string.format("%-2d %-5s created",h,sec_code[h]) else text=string.format("%-2d %-5s error: %s",h,sec_code[h],error) end message(text) end end message("---------------------------------") sleep(1000) for h=1,hm do if ds[h] then text=string.format("%-2d %-5s size: %d",h,sec_code[h],ds[h]:Size()) if ds[h]:Close() then text=text.." closed" else text=text.." error" end else text=string.format("%-2d %-5s empty",h,sec_code[h]) end message(text) end message("=================================") end
Обращение к произвольной ТТП, есть возможность?
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 08:15:45
можно через DDE
Синхронизация данных от SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
05.02.2016 08:11:41
, так как текст программы не приведен, то Ваше замечание тоже не верно. Например, если обработка данных от колбека делается в main. Тогда очередной вызов колбека может изменить данные в таблице, через которую они передаются в функцию в майн. Т е теоретически указанная выше ситуация возможна. Но, повторюсь, из приведенного рассказа автора это явно не следует.
Синхронизация данных от SetUpdateCallback
Пользователь
Сообщений: Регистрация: 30.01.2015
04.02.2016 18:52:58
Из рассказа не очень понятна проблема. из понятого, попробуйте использовать Coroutines
QUIK(версия 7.0.4.10), приколы
Пользователь
Сообщений: Регистрация: 30.01.2015
25.01.2016 19:38:19
рекомендую всем сделать также, чтобы не трахаться с версией 7
QUIK(версия 7.0.4.10), приколы
Пользователь
Сообщений: Регистрация: 30.01.2015
25.01.2016 19:37:29
откатился на 6.17.3.6 подожду когда все приколы уберут из версии 7.0.4...
QUIK(версия 7.0.4.10), приколы
Пользователь
Сообщений: Регистрация: 30.01.2015
25.01.2016 19:27:30
Я отослал Вам дампы как Вы и просили. Могу еще прислать. скажите, что Вы в них нашли. В чем причина крушения КВИКА?
QUIK(версия 7.0.4.10), приколы
Пользователь
Сообщений: Регистрация: 30.01.2015
25.01.2016 19:24:02
1) А Вы полагаете, что аварийный вылет КВИКА на скрптах VMLua - это нормальная обработка ошибок ? 2) Как убрать линии на первом графике?
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 30.01.2015
25.01.2016 19:20:00
дело в том, что раньше в версии 6 я вообще последние полгода не получал аварийных сообщений поставил 7.0.4.10 и за 2 дня 30 штук дампов. просто уже задолбало. -------------------------------- Уж лучше бы оставили как было. Нет функции скрипт молча ничего не сообщает и не вылетает. Долго приходтся соображать почему ничего не рисует. Но найти ошибку все же проще, не надо каждый раз снова грузить КВИК. ----------------------------------- При этом размещаю индикатор на графике. все нормально. снимаю индикатор. ставлю его же снова - получаю дамп. снова загружаюсь. Ставлю тот же индикатор - все нормально. Потом может и не вылететь при повторной установке а может и слететь. все дампы отослал Вам как и просили в сообщении на почту support.
QUIK(версия 7.0.4.10), приколы
Пользователь
Сообщений: Регистрация: 30.01.2015
24.01.2016 09:05:56
еще приколы. "чтобы жизнь не была скучной" данную версию поставил недавно. но сразу обнаружилось ее неустойчивая работа. теперь очень часто выскакивает аварийное завершение без внятной диагностики ошибки а лишь с предложением отправить дамп. например, 1) можно один и тот же скрипт индикатора загрузить и снять 3 раза а на четвертый квик аварийно вылетает. 2) можно закрыть квик в конце дня. И после закрытия пытаться его загрузить снова. Но он будет аварийно вылетать. Лишь удаление файла info.log позволяет его загрузить повторно. 3) Ранее уже указывал, повотрю здесь "до кучи" Теперь обращение в скрипте к несуществующей функции вызывает аварийное завершения КВИКА.
QUIK(версия 7.0.4.10), приколы
Пользователь
Сообщений: Регистрация: 30.01.2015
24.01.2016 08:57:23
Обнаружил очередной прикол. На картинке есть линии тренда - горизонтальные белые линии внизу. А в меню нет пункта "удалить все тренды в текущем окне" Вопрос к знатокам: Как удалить данные тренды?
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 30.01.2015
24.01.2016 07:52:02
В версии 7.0.4.10 есть такой прикол. ------------------------------------- Если происходит обращение к функции, которой нет, т е по адресу nil, то вместо сообщения типа "отсутствует функция XXX" , происходит аварийное завершение квика с предложением послать дамп разработчикам. -------------------------------- В версиях 6 такая ситуация обходилась молчанием и без аварии. Тоже было прикольно. ------------------------------ Предложение: Реализовать нормальное обработки такой ошибки, с сообщением об отсутствии функции и без аварийного завершения КВИКА. Спасибо
Реагировать на Tick
Пользователь
Сообщений: Регистрация: 30.01.2015
22.01.2016 11:12:25
проще делать робота в индикаторе ОnCalculate(NUMBER index) - реагирует на каждый чих.
Как эффективнее разгрузить КВИК
Пользователь
Сообщений: Регистрация: 30.01.2015
21.01.2016 12:36:55
Поясняю. В ТВС данные заезжают не срезами, а пакетами. Разница между этими понятиями следующая. срез делается по времени например через каждые 100 мс передаем некоторый набор параметров. Для сжатия трафика передаем лишь изменения. При этом если какой-то параметр меняется раз в 10 мс, то в срезе будет каждое 10-е изменение параметра -------------------------- При передаче пакетами, передаются все изменения параметров, но момент отправки этих значений определяется не временем, а количеством (размером пакета) Например, размер пакета 10 значений (число взято произвольно) У нас совершается 1 сделка в 100 мс. Пакет сформируется и будет отправлен через 1 секунду от первой сделки. Еще пример, сделки совершаются через 1 мс, пакет будет сформирован и отправлен через 10 мс. Последний пример не совсем верен для биржи. Есть информация, которую биржа рассылает всем по времени, но пакетами. Т е набирается пакет 500 мс и отсылается всем. Т е получаем пакеты , т е без пропусков, но не ранее чем через установленный на бирже интервал. ------------------------ Примерно так.
Перерисовка индикатора на графике без изменения свечек возможна ?
Пользователь
Сообщений: Регистрация: 30.01.2015
21.01.2016 12:27:45
В этом случае надо перезапустить индикатор .
Мелкие утилиты и индикаторы, Может кому пригодится
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 20:07:32
это штриховая линия, тип 4 . толщину можно менять.
Неизвестная ошибка при запуске скрипта
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 19:56:28
Это сообщение, системное. Т е VMLua не перехватывает ошибку и не распознает. Предположу что нет какой-то библиотеки. Возможно не прописан путь. попробуйте проверить зависимость библиотек и увидите чего не хватает.
Как эффективнее разгрузить КВИК
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 19:48:05
если указать один инструмент, то будет приходить один. Относительно скорости прихода данных Вы немного заблуждаетесь. Данные в ленте (ТВС) приходят тоже не быстрее чем раз в 50 мс. когда-то давно я делал такие исследования и получил большие времена. Дело в том, что эти данные приходят пакетом. Т е вместе могут прийти сделки которые выполнены через 100 мс или даже больше. Но Вы смотрите на время заключение этих сделок на бирже, а не на время прихода этой информации к Вам Кроме того, даже если к Вам придут сделки быстрее чем через 50 мс, Ваш комп отправит Ваши заявки тоже пакетом и если Вы ничего не предпринимаете с его настройкой то скорее всего среднее время будет 100-200 мc. плюс задержка ответа сервера кквик на ваши запросы (у меня она минимум 30 мс). Поэтому реально считайте, что реакция Вашего робота будет 100-200 мс.
Подскажите как перебрать в цикле строку со значениями разделенными ; (точка с запятой)
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 12:20:04
если сохраним строку то при переборе будет выполнятся обработка и поиск в строке если сохраним в массиве, то в массиве будет хранится хеш т е числа. Перебор будет выполнятся не строк а чисел . Поэтому первый способ медленнее, второй потребует больше памяти. Выбор за вами. Но если у Вас объем перебираемых данных небольшой то делаете так, как Вам привычнее и понятнее
Перерисовка индикатора на графике без изменения свечек возможна ?
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 12:14:42
используйте функции SetValue(NUMBER index, NUMBER line_number, NUMBER value) Но есть небольшой баг в применении этой функции при формате линий - штрих почему-то исправляется лишь вторая половинка штриха.
Как в Lua сделать безусловный переход ? Или такой возможности нет ?
Николай Камынин пишет: оператор goto считается в программировании самым мощным оператором перехода. Поэтому он в неумелых руках может так разрушить и запутать программу, что потом будете долго искать ошибки. ------------------------------ Поэтому применение данного оператора считается признаком неумения разрабатывать алгоритмы. --------------------------------- многие языки по указанным ранее причинам не содержат данный оператор. --------------------------------------------- Учитесь печь правильные программы без этого оператора.
Смеялсо. Ох уж эта философия... есть миллион примеров, где использование одного-единственного goto позволяет сделать простой и быстрый код, а не городить огород из иных конструкций, развивая в себе "неумения разрабатывать алгоритмы"
Еще программистам на ассемблере расскажите что безусловный переход это плохо.
Не буду вдаваться в полемику. Но замечу простой и быстрый код - это не критерий правильности его работы и возможности развития и сопровождения в дальнейшем. GOTO позволяет делать непредсказуемые и не очевидные выходы в любые места и из любых мест. В таких программах бывает сложно проследить такие выходы о которых разработчик и сам порою забывает. Дальнейшая модернизация таких программ при коллективной разработке более сложна чем программы созданные по модульному принципу (один вход -один выход) Но конечно, каждый пишет , как умеет. Я тоже, когда начинал разрабатывать программы еще на ассемблерах часто использовал безусловный goto. теперь - никогда его не применяю, хотя люблю писать на СИ,С++.
Правильно ли я понимаю общую концепцию QUIK + DDE/QLua?, Впрос по концептуальному видению
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 12:00:00
Цитата
Edunon пишет: Николай , большое спасибо за развёрнутый ответ! Пока есть несколько непонятных моментов, которые опускаются в объяснениях, буду рад, если вкратце поясните их. В QLua и через DDE можно смотреть открытые таблицы или открывать новые. Правильно ли я понимаю, что нужно учитывать, что пользователь может случайно закрыть таблицы, забыться и поменять состав столбцов, или ещё как-либо непреднамеренно повлиять на области видимости робота? Я пока плохо знаю QUIK, потому есть опасения. Пока писал ответ, нашёл как отправлять заявку: sendTransaction(), значит есть всё таки «не табличные» функции? Как это укладывается в общую парадигму? Вы написали, что QUIK хранит данные, полученные от серверов биржи. Правильно ли я понимаю, что таким образом можно смотреть историю?
Спасибо за помощь!
В своем ответе под таблицами я имел ввиду внутреннее хранилище. Поясню свое видение QUIK В квике есть хранилище и есть внешнее отображение данных из него. Как сделано хранилище я не знаю. Учитавая с какими напрягами туда надо лазить, полагаю что как-то через что-то. Но это не важно Если память мне не изменяет (уже давно не работаю с DDE) DDE экспорт во внешние программы работает с форматом отображаемых таблиц . Т е есть меняем порядок столбцов то и в DDE будет меняться При работе c библиотекой QLUA обращение осуществляется к хранилищу по именам Следовательно никакого значения порядок столбцов на экране для QLUA не имеет Т к данные в колбек отдаются практически перед отображением на экране и перед передачей в DDE, то QLUA получается более удобнее , чем DDE ---------------------- sendTransaction() - эта функция отправки заявки на биржу. Никакого отношения к хранению данных не имеет. Конечно в QLUA есть множество функций прикладного назначения, а не только обращения к хранилищу данных. ---------------------- В целом, LUA с библиотекой QLUA и расширениями DLL на Си позволяют написать любого робота или эксперта или индикатор.
Как эффективнее разгрузить КВИК
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 07:55:35
существенно разгрузить можно отказавшись от потока всех сделок. Так как Вы торгуете лишь акциями , то возможно торговать и без этого потока.
Как в Lua сделать безусловный переход ? Или такой возможности нет ?
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 07:50:35
оператор goto считается в программировании самым мощным оператором перехода. Поэтому он в неумелых руках может так разрушить и запутать программу, что потом будете долго искать ошибки. ------------------------------ Поэтому применение данного оператора считается признаком неумения разрабатывать алгоритмы. --------------------------------- многие языки по указанным ранее причинам не содержат данный оператор. --------------------------------------------- Учитесь печь правильные программы без этого оператора.
Активация стоп-заявки
Пользователь
Сообщений: Регистрация: 30.01.2015
19.01.2016 07:45:50
Цитата
Denis пишет: Добрый день. Не нашел в руководстве можно ли средствами Луа активировать активную стоп-заявку (аналог "правый клик-активировать стоп-заявку")?
Готовой функции нет. надо убрать стоп заявку и выставить безусловную заявку с такими же параметрами
Правильно ли я понимаю общую концепцию QUIK + DDE/QLua?, Впрос по концептуальному видению
Если это так, какие есть концептуальные особенности использования такой прослойки? Нормально ли живётся с таким подходом? В идеале я хотел работать через Plaza 2, на нормальном языке, с нормальной отладкой, с нормальным API, но ежемесячная оплата доступа охладила пыл. Можно ли с QLua как-то приблизиться к архитектурному уровню работы через Plaza 2 или всё-таки придётся оперировать таблицами QUIK?
Разница примерно в следующем. когда Вы работаете с плазой, то реализуется схема клиент-сервер . Клиентом выступает ваш робот. А сервером -сервер биржи В этой схеме сервер отдает вам ответы на запросы, а хранение переданной сервером информации Вы осуществляете сами в своей программе. Т е создаете свою БазуДанных ------------------------------------------ В случае работы с квиком, в качестве клиента выступает торговый терминал КВИК. Он реализует хранение ответов и пересылку запросов на сервер Сервером выступает сервер брокера, он транслирует ответы сервера биржи Торговый терминал QUIK организует хранение полученной с сервера информации. Поэтому появляются таблицы (как известно таблицы - это способ хранения в реляционных базах данных ) --------------------------------------- Таким образом, при работе с QUIK Вы обращаетесь за данными к базе данных терминала QUIK , а ваши запросы и ответы на них QUIK транслирует на сервер брокера и далее на сервер биржи. Т е при работе с плазой у Вас нет готовой базы данных, а при работе с QUIK - есть - это таблицы терминала.
Массовая отправка заявок на сервер QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2015 17:27:59
Да, еще забыл сказать, что речь конечно о боевой работе, а не ...изме на тестовом сервере или на ежегодных или месячных тестах.
Массовая отправка заявок на сервер QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
26.11.2015 17:24:44
Добрый вечер, Объясняю для тех,кто не понял. -------------------------- Речь идет не об отправлении пулеметом 1000 транзакций по 1 сделке в каждой, а об отправлении 1000 транзакций по различным бумагам и различным счетам. ------------------------------------- Кратко рассказываю про грабли. ------------------- Для начала, решите на основе какой информации будут отправляться эти 1000 транзакций. ----------------------------- Если это информация по свечам, то она приходит не чаще, чем 10 раз в секунду. Кроме того, на Вашем компе работает алгоритм энгл, который обеспечит вам отправку транзакций примерно 10 раз в секунду Ну и так далее... ==================== Кроме того, учтите , то время обработки транзакции ядром сервера брокера да и биржи примерно 1 ms. А Вы в очереди не первый. ------------------------ После того, как учтете все это, то можете попробовать отправить хотя бы 100 в секунду, хотя бы по 10 бумагам, хотя бы по 5 счетам. ------------------------------------------- Успехов Вам мечтатели.
Массовая отправка заявок на сервер QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
25.11.2015 20:00:04
1000 заявок в секунду по разным инструментам и разным счетам да еще через терминал КВИК? Так Вы ж, батенька, фантазер!!! Для начала попробуйте хотя бы 100 отправить.
CreateDataSource
Пользователь
Сообщений: Регистрация: 30.01.2015
24.11.2015 08:59:42
Цитата
тот самый пишет: почему я думаю, что CreateDatasource - автономна, т.е. имеет свой LUA-поток? Потому что она служит для прямого получения данных с сервера QUIK и имеет свои коллбеки, которые не связаны со стандартными QLUA-коллбеками, выполняющимися в основном потоке квика для всех скриптов.
полагаю, что отдельный поток может иметь (или не иметь ) луа машина. У нас есть два потока -функция main и основной поток QUIK. ------------------------------------------ CreateDatasource запускается либо в Main, либо вне ее ( в основном раньше не работало, поэтому сейчас запускаю лишь в main) ------------------------------------- Таким образом, получаем либо в потоке main, либо в основном потоке. ------------------------------------
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 14:03:59
Хочу добавить свою ложку в Вашу бочку. Возможно мирное решение данной проблемы заключается в следующем. ------------------- Создателям скриптов (т е нам, вам) взять за основу тот факт, что скрипты работают с асинхронными событиями. --------------------- Следовательно, пока событие не наступило, его нет, и гадать о его наступлении бессмысленно. ------------------------------ Например, если trans_id=0 , то это означает, что "ноль" если trans_id=nil , то это означает, что "nil" А когда поступит trans_id не равен 0, то и будем его обрабатывать. Т е либо мы обрабатываем интересующие нас события, либо игнорируем их. ------------------------------ При этом, безусловно, список событий должен быть отражен в документации разработчиков. ---------------------------- Тогда нет проблемы в том, что и сколько раз обновляется.
Как обрезать число типа float до 2х знаков после запятой
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 08:58:08
или так z=0.01*math.floor(100*x) print(z) ---------------- 1.11
Как обрезать число типа float до 2х знаков после запятой
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 08:53:59
лучше так: x=1.1124432871741 y=string.sub(x,1,string.find(x,'.')+3) print(y) ------- 1.11
Загрузка переменных в область файла, В файле 1 задать переменную, которую можно print в файле 2
Пользователь
Сообщений: Регистрация: 30.01.2015
14.11.2015 08:49:32
А можно подробнее изложить, что Вы хотите? ------------------ Пишите решаемую задачу, а не желаемые финты над понятиями языка.
Можно ли сделать скрипт, который будет запрещать устанавливать более 1 заявки в 5 минут
Пользователь
Сообщений: Регистрация: 30.01.2015
09.11.2015 16:16:54
Если проблема в отсутствии элементарной дисциплины, то надо быстрее уходить с рынка, пока депозит еще не слили. сольете обязательно и даже если будете подавать лишь одну заявку в 5 минут.