Diver написал: В Справке в примере к методу OnParam в условии If ругается и пишет , что attempt to compare number with string. Я так понял, число(130000 в примере) надо в кавычки брать
либо число X в строку tostring(X), либо строку S в число tonumber(S)
Беспрерывная робота робота, Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик?
Пользователь
Сообщений: Регистрация: 30.01.2015
24.06.2022 20:09:31
Цитата
Никита написал: Друзья, я только начинаю программировать на языке Lua. Начал разбираться и писать бота, но возник затык. Я запускаю 1 раз программу и хочу обрабатывать каждый тик после этого. Если новый тик соответствует заданным мной условиям, то бот совершает определённые действия (покупка-продажа). Как сделать так, чтобы робот был постоянно в работе и обрабатывал каждый тик? Если возможно, то с примером куска кода
Заранее спасибо всем неравнодушным!
1) изучите программирование на Lua
---------------------------- 2) Изучите документацию по QLUA.и примеры в документации. ------------------------------------ 3) Если останутся вопросы, то спросите.
Автомасштаб графика сужается иногда, Автомасштаб графика сужается иногда
Пользователь
Сообщений: Регистрация: 30.01.2015
24.06.2022 11:37:53
Цитата
Радик написал: Доброе время суток! Квик 9.5.0.42 Подскажите пожалуйста, как с этим бороться? Со временем график начинает отображаться не на всей площади окна. Слева - только что созданное окно, справа - старое. В старом окн е прощелкал все настройки, не меняется. Выход удалять старое, создавать новое окно не очень радует(.
У вас графики отличаются. На левом есть горизонтальная желтая линия, а на правом нет.
Добавлять поддержку архитектуры win32 (первая команда выше) нужно только если ваша система 64-разрядная.
Проблему рано или поздно исправят, так что можно будет пользоваться WINE и без дополнительного репозитория: sudo dpkg --add-architecture i386 sudo apt install wine winetricks
Устанавливаем . Можно его скачать с сайта Майкрософт и запустить при помощи Wine. А можно просто выполнить в терминале winetricks vcrun6
Гораздо проще воспользоваться winetricks, т.к. перед установкой VC6RedistSetup он предложит установить необходимые нам "Wine Mono Installer" и "Wine Gecko Installer". На предложения скачать и установить нужно соглашаться и нажимать на кнопку Install.
Скачиваем Quik с сайта брокера. Если приложение находится в архиве (zip, rar), то его нужно предаварительно распаковать. WINE будем запускать с .exe файлом.
Для установки Quik используйте команду в терминале: LC_ALL=ru_RU.UTF-8 wine64 quik_inst.exe
Где вместо quik_inst.exe нужно подставить имя вашего установщика quik (например, это может быть "quik_8.7.exe"). Обратите внимание, что запускать эту команду нужно из папки, в которой находится этот установщик (installer). Если вы скачали его в папку пользователя Downloads, распаковали ZIP архив именно в эту папку, то переходите в неё при помощи команды cd в терминале: cd ~/Downloads
Копируем ключи secring.txk и pubring.txk в папку /home/USER/.wine/dosdevices/c:/Program Files/BROKER/Keys, где USER - ваше имя пользователя, а BROKER - подпапка в "Program Files (x86)", в которую установлен торговый терминал Quik (Возможно, вы захотите установить Quik не в Program Files, а в корень, например, в C:\SBERBANK. Тогда и ключи копируем в соответствующую папку). Ключи конечно же можно хранить и в другой папке, при этом в "Система" -> "Настройки" -> "Основные настройки" -> "Программа" -> "Шифрование" -> "Шифровать с помощью СКЗИ" -> Qrypto32 -> "Настроить" нужно указать путь к ключам.
Создаем ярлык для запуска. В моем случае это shell скрипт (текстовый файл с расширением sh) на рабочем столе. cd "~/.wine/dosdevices/c:/Program Files/BROKER/" LC_ALL=ru_RU.UTF-8 wine64 "c:/Program Files/BROKER/info.exe" Если опустить параметр "LC_ALL=ru_RU.UTF-8", то часть текста может отображаться некорректно (вместо текста появляются вопросы или кракозябры). Если не перейти в папку с установленной программой перед запуском, то возникают проблемы с настройками. Вместе же две команды решают проблемы с запуском Quik в Ubuntu (Linux).
После создания shell скрипта quik.sh можно открыть свойства этого текстового файла и на вкладке Permissions разрешить выполнение в качестве программы. Но можно переходить в папку с этим скриптом в терминале и запускать его, добавляя "./" перед именем файла: cd ~/Desktop ./quik.sh
После запуска Quik нужно изменить в настройках шрифты. Если этого не сделать, то в некоторых диалогах будут появляться кракозябры, хотя большая часть информации всё же отображается корректно. Для этого в меню выбираем "Система" -> "Настройки" -> "Основные настройки...(F9)" -> "Программа" -> "Шрифты", после чего изменяем шрифты, например, на Arial (или любой другой шрифт, который вам нравится, но который будет корректно отображать русские буквы в Quik).
Если нужно сгенерировать ключи для Quik, то запускаем keygen.exe из под WINE: cd ~/.wine/dosdevices/c:/Program Files (x86)/BROKER/KeyGen LC_ALL=ru_RU.UTF-8 wine64 keygen.exe
Профит!
Данный способ запуска Quik в Linux прекрасно работает для брокеров ВТБ, Открытие, БКС, Финам, Сбербанк, Промсвязьбанк и прочих. В том числе не возникает и проблем, если для входа требуется SMS подтверждение.
Если при запуске через некоторое время возникает ошибка "Не хватило памяти под объекты, без которых приложение работать не может", то первым делом нужно проверить наличие свободной памяти. .
Обмен сообщениями приложений , скриптов на Lua, Python ,С
1. Я вынужден согласиться с позицией Владимира, со следующими уточнениями: 1) С его рекомендациями начинающим разрабатывать робота, я, почти полностью, согласен. 2) Если же у кого то есть наработки на языках отличных от QLua, то ему, наверное, следует оценить затраты на перенос своих разработок на QLua и на реализацию интерфейса своих программ с QUIK. --- 2. При том, что вы активно используете IT-терминологию, у меня нет ощущения, что вы «экстра программист» :: . На этом форуме, я думаю, что подавляющее большинство посетителей интересует, как можно заработать на фондовом рынке, а не «танцы» с потоками и потенциальной программной эффективностью. Вы «попали» не на тот форум :: ?.
Мне безразличны ваши ощущения. Но так как Вы слабо разбираетесь в разработке софта, то ваши ощущения также ошибочны как и знания рынка. ------------------- Судя по рассуждениям Владимира он когда-то программировал на ассемблере - давным давно. ------------------- Очевидно, что сейчас уже отстал и не знает современных IDE. Поэтому и плюется на потоки, так как не понимает как с ними работать и очевидно все еще работает на одноядерном компьютере. ------------------------- Чего стоит его разглагольствования о том, что он обрабатывает тысячу инструментов. ------------------ Вам нравится его болтовня о том, что ничего не надо кроме "чистого" луа, одного потока и функции main в одном скрипте, чтобы сделать робота который Вам будет приносить бабло. -------------------- Смешно такое читать. --------------------- В одном с Вами соглашусь, на этом форуме в основном буратины, которые пришли на рынок как на поле чудес в страну дураков и мечтают о халяве. -------------------------- Переубеждать Вас не буду, так как в этом нем смысла.
Автомасштаб графика сужается иногда, Автомасштаб графика сужается иногда
Пользователь
Сообщений: Регистрация: 30.01.2015
21.06.2022 11:58:32
Цитата
Радик написал: Уважаемые коллеги! Неужели ни у кого нет такой проблемы? Квиком 3 года пользуюсь, на всех компах так у меня было.....
проверьте, что у вас еще на этом графике есть.
добавить параметры графика в settings
Пользователь
Сообщений: Регистрация: 30.01.2015
20.06.2022 10:10:09
Предлагаю добавить в settings параметр для управления флагами графика "Учитывать при автомаштабировании" "привязка к левой(правой) оси и.т.д.
написал: Ну вот, в России Microsoft забанил доступ к новым Windows
Цитата
написал:
Цитата
написал: ,скажите, пожалуйста. Есть ли какой то прогресс в этом направлении?
В сложившихся условиях, когда windows могут начать блокировать, было бы очень актуально локализовать quik.
Ну хотя бы мануал напишите как установить и использовать его в нашей национальной системе - Linux Astra. Чтобы скрипты все работале, dll из скриптов корректно подгружались.
1. Windows никто не станет блокировать ибо колониальный принцип "товары за воздух" выгоден пендосам
2. В каком месте астра национальная? в финской либе qt* ? или в омериканском ядре линукса или X11 / wayland ?
В России нет полного цикла ни в одном из ИТ направлений от софта до железа. На это уйдут даже не годы - десятилетия.
Не прошло и года, как Windows в России забанили.
Но разработчики QUIK, видимо, будут тянуть до самого последнего конца, когда либо брокеры наймут других разрабов, либо придётся впопыхах портировать нормально работающий QUIK под linux
много шума из ничего. ------------------------ По словам представителя Microsoft, компания продолжит выполнять свои обязательства перед клиентами, пока действует приостановка новых продаж. ---------------------- Т е если Вы новую винду не покупаете через представительство Microsoft, а например с новым компом из китая, то вам ничего не угрожает. ------------- Обновление уже купленной винды никто не отменял.
Ой, да такими мелкими шажками можно каждый шаг отмазывать, что мол ну это ещё ничего не значит, это же не разом всё заблокировали. А когда через 2-3 года будет заблокировано всё - окажется что, ну надо же, кто бы мог подумать. Ведь ничего похожего и близко не было. Ни с Китаем, ни с оборудованием, ни с санкциями. Но это же всё не с Windows было, так что не считается. Детский сад.
Выше чел написал Вам как ставить приложения винды на линуксе. В интернете достаточно инфы как и что делать. Если Вы это не в силе освоить, то наймите спеца , чтобы Вам настроили.
Подгружать историю на графики ту которая имеется в папке архива.
Пользователь
Сообщений: Регистрация: 30.01.2015
20.06.2022 08:54:17
Цитата
Евгений написал: Например: Открываю файл в котором на графиках сохранен инструмент SiM2, но срок его закончился или история по нему удалена.
А есть в архиве уже новая история на SiU2, то подгружать историю на SiU2.
Это решит проблему замены инструментов в файлах внд и таб.
Например есть сохраненные внд файлы но в них сохранены инструменты которые уже вышли из обращения и в архиве есть новая история. Остается только пересохранить это файл и все если надо. Так как замена инструментов через меню жутко долгая штука
есть флаг "склеить" при замене инструмента.
Quik для Astra Linux
Пользователь
Сообщений: Регистрация: 30.01.2015
19.06.2022 19:36:41
Цитата
Виктор написал: Ну вот, в России Microsoft забанил доступ к новым Windows
Цитата
написал:
Цитата
написал: ,скажите, пожалуйста. Есть ли какой то прогресс в этом направлении?
В сложившихся условиях, когда windows могут начать блокировать, было бы очень актуально локализовать quik.
Ну хотя бы мануал напишите как установить и использовать его в нашей национальной системе - Linux Astra. Чтобы скрипты все работале, dll из скриптов корректно подгружались.
1. Windows никто не станет блокировать ибо колониальный принцип "товары за воздух" выгоден пендосам
2. В каком месте астра национальная? в финской либе qt* ? или в омериканском ядре линукса или X11 / wayland ?
В России нет полного цикла ни в одном из ИТ направлений от софта до железа. На это уйдут даже не годы - десятилетия.
Не прошло и года, как Windows в России забанили.
Но разработчики QUIK, видимо, будут тянуть до самого последнего конца, когда либо брокеры наймут других разрабов, либо придётся впопыхах портировать нормально работающий QUIK под linux
много шума из ничего. ------------------------ По словам представителя Microsoft, компания продолжит выполнять свои обязательства перед клиентами, пока действует приостановка новых продаж. ---------------------- Т е если Вы новую винду не покупаете через представительство Microsoft, а например с новым компом из китая, то вам ничего не угрожает. ------------- Обновление уже купленной винды никто не отменял.
Как закрыть файл по его полному пути+имени (строка)
скрипт пишет данные в лог файл .csv, который открыт в экселе (я его смотрю глазками).
Закрывать файл каждый раз мануально - не вариант.
Если правильно понял, то Вам надо открыть этот файл в скрипте, а потом открыть его в Excel для просмотра. Тогда закрывать Вы его можете без проблем. если вы сделаете наоборот, то закрыть Вы его можете лишь в Excel. -------------- По умолчанию правило такое - кто открыл, тот и закрывает.
Как закрыть файл по его полному пути+имени (строка)
если получили nil, то вы его не открыли --------------- если не nil то закрыть io.close(out_file)
сильно тормозит quik
Пользователь
Сообщений: Регистрация: 30.01.2015
18.06.2022 12:56:31
Цитата
Павел написал: Второй вариант. Когда начинаются лаги интерфейса процесс info.exe занимает: 8-10% ресурсов процессора, около 800МБ памяти, очередь на диске была 0.02
Запустил quik с темной схемой в выходной - все работает в пределах нормы. Графики подгружаются без лагов. В рабочий день тогда сниму данные и пришлю, когда будет лагать.
Вы видите, что у Вас Thunderbird грузит процессор по самые...
После onTransReply() вызывается onDepoLimit() c теми же значениями, что и до SendTransaction(). Изменения в onDepoLimit() происходят только после вызова onOrder(). Правильно ли я понимаю, что меняются какие-то внутренние параметры в depo_limits ?
посмотрите внимательно на параметры:
locked_sell
NUMBER
В продаже. Количество инструментов, заблокированное под исполнение заявок клиента на продажу
locked_buy
NUMBER
В покупке. Количество инструментов в активных заявках клиента на покупку
locked_buy_value
NUMBER
Стоимость инструментов, заблокированных под покупку
locked_sell_value
NUMBER
Стоимость инструментов, заблокированных под продажу
График оборота торгов в деньгах смещен влево на 1 сессию, Текущ. знач. в ТТТ показывает - это сегодняшний график
написал: Все просто, Вы пере заказали данные и получили объем торгов за текущую сессию, так как предыдущие дни у Вас хранились в архиве, на сервере их нет.----------------------- А перезаказ привел к стиранию Вашего архива.
Какая связь перезаказа данных со смещением одного из графиков на 1 торговую сессию назад ? Вчера, 14 июня, проблема повторилась. График оборота в деньгах SBER смещен на 1 торговую сессию назад (на 4 дня, тк предыдущие торги проводились) 10 июня
Перезаказ не привел к стиранию архива, тк я работал с копией, а в конце дня перезагрузил систему из предыдущего состояния до перезаказа Оборот торгов в деньгах из архива не отображается больше , чем за текущий день - об этом уже была тема
Цитата
написал: Теперь копите данные и будет вам счастье, но когда накопите их в терминале.----------------------- В следующий раз сто раз подумаете, прежде чем перезаказывать.-------------- Либо сохраняйте копию накопленного. ================ "Потерявши голову, по волосам не плачут.."
Quik 9.40
Повторение проблемы 14 июня, в начале дня на графике не было смещения.
Предположительно, смещение графика "Оборот в деньгах SBER" появилось после разрыва связи и восстановления Обратите внимание на несоответствие дат в ТОС - 10 и 14 июня
Странно, что не отвечет техподдержка Quik
Когда у меня такое бывает, очень редко, приходится стирать архив перед перезаказом.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
написал: и еще... Если Вы в таблицу текущих торгов установите все доступные классы и все инструменты и все параметры то вы все доступные инструменты получите в колбеке onParam.
Колбэк возникает тогда, когда поступают данные с сервера брокера. Если по инструменту брокер отмалчивается -колбэка не будет. Мне кажется вы не понимаете сути проблемы с молчанием сервера вместо отказа, и так или иначе предлагаете варианты с таймаутом. Тем не менее, благодарю за помощь, ещё раз убедился, что поддержка не зря признала проблему и обещала решение "когда-нибудь".
Не понял про какой тайм-аут Вы говорите. --------------- Я определяю доступные инструменты при запуске квика (скрипта). Нет никакого тайм-аута. Но возможно вас не понял.
Найдите, где правильно?, Вопрос к разработчикам QUIK
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Пользователь
Сообщений: Регистрация: 30.01.2015
14.06.2022 09:39:22
и еще... Если Вы в таблицу текущих торгов установите все доступные классы и все инструменты и все параметры то вы все доступные инструменты получите в колбеке onParam.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
написал: Вы не сможете выбрать больше, чем указано справа в строчках "Классов доступно" "Инструментов доступно" "Параметров доступно"
Если создавать, к примеру, "таблицу текущих торгов" и нажать кнопки "добавить всё"(все доступные инструменты и доступные параметры) - то создаётся таблица со всеми ~10 тыс инструментами и параметрами. Т.е. получается выбрать всё. Все классы и все инструменты. Как и в функциях getClassesList() и getClassSecurities().
Другое дело, что таблица постепенно будет заполняться тем, на что сервер брокера не "отмалчивается".
Цитата
написал: Кроме этого, инструмент может не торговаться, т е он будет в списках, но по нему не будет изменяющейся текущей информации.Это тоже можно проверять.
К сожалению, это не "проверка", а такое же ожидание по таймауту. А вообще ,надеялся, что подскажете способ программно проверить доступность информации, а не вручную ,через создание и менеджмент окон.
А так, пока не вижу разницы... похоже, при создании ТТТ на 10 тыс инструментов терминал подписывается на всё, а там уж какая информация придёт и заполнит соотв. строки. А почему пустая строка - пусть смотрит и думает пользователь.
я проверяю программно. ------------------- Разница есть, копайте глубже. -------------------- В зависимости от начальных данных, алгоритм может отличаться . ------------------------- То, что программно можно, сто пудов. ------------------ Не понимаю, зачем Вам 10 тысяч инструментов.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Да классов много и инструментов много. Но не все доступны конкретному пользователю. Функция CreateDataSource() не предназначена для обнаружения запрещенных для Вас классов и инструментов.
На мой взгляд (и опыт) функция, которая так или иначе "обещает перезвонить", должна это делать, если сделана корректно и дружелюбно к пользователю. Хотя бы потому что заранее неизвестно, по какой причине нет ответа. Запрещены какие-то классы или какие-то другие причины. Если запрещена - так и надо отвечать.
Цитата
написал: я так и делаю. Если подписка возможно и нужна, то подписываюсь.
И как вы это делаете? Как проверяете, что подписка возможна?
Очень просто. Объясняю: Когда квик соединяется с сервером , то с сервера приходят списки классов, число параметров и инструментов в классах и списки этих инструментов и параметров. Все это Вы видите в терминале, когда выбираете принимаемые параметры и инструменты. -------------------- Вы не сможете выбрать больше, чем указано справа в строчках "Классов доступно" "Инструментов доступно" "Параметров доступно" ------------------- вся эта информация содержится в доступных в скриптах таблицах Классы,Инструменты . Для корректного выполнения торговых операций в скриптах еще надо учитывать таблицы Фирмы Торговые счета и Коды клиентов. Но сейчас не об этом. ----------------------- Резюме: В квике Вы имеете список всех возможных классов. Но те классы, к которым у Вас нед доступа будут пустые по инструментам,а недоступные инструменты будут пустые по параметрам. Вот это вы и должны проверить перед тем, как на них подписываться. ------------------ Кроме этого, инструмент может не торговаться, т е он будет в списках, но по нему не будет изменяющейся текущей информации. Это тоже можно проверять. -------------- примерно так.
Отладка QUIK 8.13
Пользователь
Сообщений: Регистрация: 30.01.2015
13.06.2022 06:33:35
Цитата
TGB написал: Для Lua 5.4.1 аналогичный код (но есть отличие), проверенный мною недавно и устраняющий блокировку потоков в QUIK выполнением длинного цикла пользовательской программы на «чистом» Lua
вот цитата Вашего эссе: Для Lua 5.4.1 аналогичный код (но есть отличие), проверенный мною недавно и устраняющий блокировку потоков в QUIK выполнением длинного цикла пользовательской программы на «чистом» Lua
Отладка QUIK 8.13
Пользователь
Сообщений: Регистрация: 30.01.2015
12.06.2022 18:22:42
"чистый" луа - это как "чистая" грязь. понятие бессмысленное. ----------------------------- Рассуждая о "чистом" луа Вы полезли в функции СИ , которые исполняют этот чистый луа, вместо того, чтобы написать грамотно свой длинный цикл. -------------------------------- Длинный цикл в программах обработки данных в реальном времени - верх непрофессионализма в программировании и дилетантства в обработке данных. -------------------- Так как поток колбеков и main имеют общий глобальный стек, то , во многих случаях, проблема зависания квика ликвидируется заменой глобальных переменных локальными.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
написал: DDE - это способ обмена данными между приложениями . По-существу это клиент-серверный обмен внутри компьютера.
Да, собственно это и имел ввиду в своём сообщении. Знаю, как в принципе работает DDE. Но буду использовать, если не будет более удобного способа.
Цитата
написал: Например, в квике DDE это практически единственный разумный способ получить доску опционов или всю таблицу текущих торгов .
Для реализации своих замыслов, я написал DLL , запускаемую скриптом с парой строк. Всё остальное делается через мою DLL и моё приложение (запускаются функции квика, луа и прочее. Но вот CreateDataSource() работает некорректно, из-за чего и возникла эта тема. Печально удивился 5-летней тишине после обещаний довести функцию до ума.
Цитата
написал: Непонятно, как это - данных нет на сервере, а Вы их запрашиваете.
В API квика есть функции получения классов инструментов и списка инструментов в каждом классе. Всего примерно тысяч 10. Но отзываются - примерно половина. Остальные - молчат. Естественно, что в ТТТ и прочих таблицах отображаются те, для которых данные всё-таки поступили, и только по ним можно что-то передать в стороннее приложение по DDE или ODBC. А вот по половине "молчащих" инструментов - совершенно неясно, почему они молчат. То ли период не тот и надо подождать ,то ли данных в принципе нет и не будет. Но всё это заканчивается замедлением работы программы ,вынужденной опрашивать и ждать таймаутов. :(
Да классов много и инструментов много. Но не все доступны конкретному пользователю. ------------------ Функция CreateDataSource() не предназначена для обнаружения запрещенных для Вас классов и инструментов. Это все можно выявить до того как подписываться. я так и делаю. Если подписка возможно и нужна, то подписываюсь. проблем не испытываю. --------------------- Могу рекомендовать сначала проверить есть ли в желаемом вами классе доступные инструменты а потом подписываться.
sec_code и seccode в таблице всех сделок - это один и тот же параметр ?, seccode и sec_code в all_trades
Пользователь
Сообщений: Регистрация: 30.01.2015
12.06.2022 18:02:27
добавлю. как то лет ..цать назад этот вопрос на форуме задавали. Ответ был такой: - одно - старое, другое новое. в будущем старое уберут. какое старое, уже не помню.
Сергей написал: Здравствуйте. Чтобы тейк-профит работал корректно в форме тейк-проофит необходимо ввести дополнительное окно, где можно будет указать минимально допустимую цену продажи (или максимально допустимую цену покупки). После "пробития" отступа выставляется лимитная заявка либо с ценой последней сделки +/- спрэд или указанная в дополнительном окне цена. В случае покупки выставляется меньшая из двух цен, а в случае продажи выставляется большая из двух цен. Таким образом сохраняется возможность получить выигрыш при движении котировок в нужном направлении и не получить непредсказуемых отрицательных результатов из-за большого отскока цены в противоположном направлении в результате резкого изменения цены последней сделки. Страшно злит, когда акции проданы по цене много меньше планируемой, а котировки после.отскока снова резко поднялись и намного превысили ту цену, за которую ты хотел продать акции . Те же люди которым очень нужно продать или купить могут не заполнять это окно и тогда тейк-профит будет работать по имеющемуся алгоритму. Пользователи должны понимать, что при выставлении цены из дополнительного окна вероятность сделки будет меньше, чем по имеющемуся алгоритму, но многим это и не важно. Для меня, например, лучше не продать совсем, чем продать по непредсказуемо низкой цене.
Когда-то я реализовывал такой алгоритм. ------------------ В реальной работе получается, что выставленная заявка по цене последней сделки просто повисает, так как при сильном движении рынка, тот уже далеко ушел от этого места. ------------------------------ В итоге реально работающий алгоритм, который исполняет стоп-заявку с минимальными потерями существенно более сложный. ------------------------------------------ Такой алгоритм добавками дополнительного окна не реализуется. В нем надо предусматривать слежение за исполнением заявки и движением рынка и переустанавливать заявку в зависимости от ситуации. -------------------------------- кроме того, лимитная заявка будет исполняться частями и это тоже надо учитывать.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Пользователь
Сообщений: Регистрация: 30.01.2015
12.06.2022 13:41:04
поправляю. DDE и CreateDataSource() совершенно разное. DDE - это способ обмена данными между приложениями . По-существу это клиент-серверный обмен внутри компьютера. В квике этот способ обмена реализован для получения данных из любых таблиц терминала. Например, в квике DDE это практически единственный разумный способ получить доску опционов или всю таблицу текущих торгов . ---------------------------- CreateDataSource() - это функция явного запроса (подписки) на данные с сервера брокера. Если эти данные есть в какой-либо таблице или на графике, то очевидно что они уже подписаны для получения. ------------------------- Сомневаюсь, что Вы не будете смотреть те данные, на которые подпишитесь. следовательно, после первого отображения и сохранения квика, они в следующий раз автоматом начнут загружаться. ----------------------- Непонятно, как это - данных нет на сервере, а Вы их запрашиваете. Вы что их сами придумываете?
Как получить значения 10 000 свечей, Вопрос о возможностях загрузки
Пользователь
Сообщений: Регистрация: 30.01.2015
11.06.2022 15:25:40
Цитата
Alexandr написал: В начальный момент времени нейронная сеть на входе имеет нулевые данные. Поскольку внутри находятся элементы с памятью (тоже "обнулены"), то сеть нужно прогнать/подготовить на предыдущей последовательности данных, чтобы элементы памяти внутри сети адекватно "поумнели" к текущему моменту.
При этом коэффициенты, ранее полученные в процессе обучения - не меняются уже конечно.
Если бы это была простая нейронная сеть (без элементов памяти), тогда конечно, можно сразу подавать на ход последние свечи (которые попадают в "окно")
Вообще-то, начальное значение элементов памяти получают на конечной стадии обучения сети. У Вас получается что сеть обучается, а потом вы стираете ей память и начинаете накапливать память, не меняя коэффициенты связи. Это уж, извините меня, какой-то мазохизм над сетью. --------------------------------- Не проще ли перед запуском скачать нужный объем данных с сервера брокера и настроить сеть? ---------------------------------- А правильно скачать такой объем, который нужен для обучения сети. После обучения сделать образ сети, включая и начальное состояние всех элементов памяти и переместить ее в КВИК. ---------------------- Ну и совсем правильно - это просто на вход сети после обучения на истории включить поток реального времени а сеть никуда не перемещать. --------------------- Но это я так делаю, а вы уж как Вам нравится.
написал: вопрос риторический.конечно возможно, вопрос в другом - Вы сможете это сделать самостоятельно?
какие есть варианты?
Для начала : 1) Измерьте какой интервал обновления и сколько времени Вы тратите сейчас. 2) Исходя из измеренных данных сформулируйте свои хотелки. 3) Проведите анализ реализованного алгоритма на предмет потерь времени. 4) На основе п1-3 можно определиться с вариантом решения.
Как получить значения 10 000 свечей, Вопрос о возможностях загрузки
Пользователь
Сообщений: Регистрация: 30.01.2015
11.06.2022 06:58:24
1. Специально не проверял, но полагаю, что получите то,чего нет в архиве. 2. Новые свечи будут добавляться к архиву и следовательно их будет больше 3000. ------------------- Что-то у Вас не так с нейронной сетью. Если она обучена, то зачем ей старые данные, а если она не обучена, то почему бы ее не обучить заранее. ------------------- Предположу, что у Вас используется какой-то индикатор типа мувинга с большим окном наблюдения, либо ваша сеть по сути выродилась в такой индикатор и переходной процесс в нем длится 10000 отсчетов, та как у Вас нулевые начальные данные.
Обновление таблицы квик в отдельном потоке
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2022 17:56:30
Цитата
andrey2185 написал: Привет, нужно обновлять таблицу, допустим каждые 100 миллисекунд, не прерывая основной поток, возможно?
Можно конечно два скрипта запустить, один будет таблицу создавать и обновлять периодически, другой данные писать в таблицу из которой обновляется. Но хотелось бы уместить в один скрипт.
вопрос риторический. конечно возможно, вопрос в другом - Вы сможете это сделать самостоятельно?
срочный рынок Московской биржи переходит на новую тарифную модель
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2022 17:54:07
Цитата
Владимир написал: Что-то вы не то говорите, господа. С чего вы взяли, что "дела c ликвидностью совсем плохи"? Во-первых, изменения касаются именно срочного рынка, где продают воздух, продают ожидания - а какие могут быть здесь проблемы с ликвидностью? Тем более, что объём срочного рынка, насколько я знаю, в разы превосходит фондовый, а там "почему-то" никаких "проблем с ликвидностью" не просматривается. Во-вторых, "комиссия будет взиматься только с клиентов, которые заключают сделки по уже выставленным заявкам". Если два трейдера одновременно подали заявки по одной цене - один на покупку, другой на продажу, то та, которая первой прилетит на биржу, и будет считаться "выставленной", а опоздавший получит комиссию за эту сделку: кто первый встал, того и тапки. Таким образом, при любой сделке комиссию платит одна из сторон (в теории - на практике в вышеприведённом примере определить того, кто. освобождается от комиссии практически невозможно). Иными словами, поощряют тех, кто предоставляет информацию о своих намерениях: заявка должна полежать какое-то время в стакане. Это даст дополнительные преимущества тем, кто сидит ближе к рынку и может, воспользовавшись этой информацией, перехватить заявку и через миллисекунду перепродать её участнику, который уже обозначил свою желаемую цену и который за это был милостиво освобождён от уплаты комиссии. Кроме того, он платит за это дело временем ожидания совершения сделки, которое, очевидно, растёт, а также снижением вероятности её исполнения, будь все его заявки хоть 100500 раз лимитированные: ему платят ЗА ИНФОРМАЦИЮ! Точнее, даже не платят, а просто не обдирают как тех, кто этой информации не даёт. Далее: "Скидка на скальперские сделки больше не применяется". Вроде бы, разумно - во всяком случае, меня этот HFT-суходроч всегда раздражал. Но, простите, требование, чтобы заявка непременно полежала в стакане, стимулирует как раз то, чтобы спред был вычерпан досуха! А это, в свою очередь, стимулирует как раз скальпинг, обеспечивает его необходимым материалом, в то время как сам скальпинг, наоборот, должен бы расширять спредовые границы. Таким образом, скальпинг вроде как стимулируется, но скидка за него не даётся - полное ощущение, что эти меры направлены как раз на поощрение скальпинга, но только "для особ, приближённых к императору". ::
Опять написали чушь. Заявка либо по рынку, либо лимит. По рынку она всегда бьет в лучшую противоположную, т е не выставляется, а исполняется и тем самым двигает рынок и расширяет спред. ------------- Если две заявки с одинаковой ценой пришли в одно и тоже время, что маловероятно само по себе, то обрабатываться ядром они будут последовательно. ------------------------- Первой будет та, которую сокет получил первой, так как одновременно две получить технически невозможно. -------------------------- Поэтому первая выставится, если для нее нет встречной, а вторая в нее ударит. ------------------- Первой конечно придет заявка HFT робота, но это уже другая история.
чтобы это значило?
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2022 15:44:59
Цитата
Alexey Danin написал: Руководство пользователя Qlua -> Структуры данных -> Позиции по инструментам:
Цитата
Срок расчётов. Возможные значения: limit_kind NUMBER -- положительные целые числа, начиная с «0», соответствующие срокам расчётов из таблицы «Позиции по инструментам»: «0» – T0, «1» – T1, «2» – T2 и т.д.; -- отрицательные целые числа – технологические лимиты (используются для внутренней работы системы QUIK)
Благодарю.
срочный рынок Московской биржи переходит на новую тарифную модель
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2022 14:04:45
Цитата
Евгений написал: Согласно новому подходу, банки и брокеры, а также их клиенты – юридические и физические лица, выставляющие заявки и предоставляющие таким образом ликвидность рынку , освобождаются от уплаты биржевой комиссии за сделки с фьючерсами и опционами. Комиссия будет взиматься только с клиентов, которые заключают сделки по уже выставленным заявкам .
Нет не правильно вы поняли, комиссия будет взываться с тех кто работает по рынку, то есть выставляет рыночные заявки (выше/ниже текущей цены. А от комиссии освобождаются те кто выставляет лимитные. Да дела плохи,но как говорится с паршивой овцы хоть шерсти клок.
согласен.
срочный рынок Московской биржи переходит на новую тарифную модель
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2022 12:56:01
очевидно, что дела c ликвидностью совсем плохи, если маркет-мейкеры не справляются.
Как получить значения 10 000 свечей, Вопрос о возможностях загрузки
Мой алгоритм до начала работы требует "настройки", изучая примерно 10 000 свечей (HLCV) (дальше программа уже будет традиционно обрабатывать только каждую новую свечу)
В связи с этим вопросы: 1. Возможно ли получение стольких значений истории (в тч и предыдущих дней) сразу? 2. Сколько это времени займет? 3. При программной обработке данных, как не сбиться с учетом того что за это время начнут поступать уже новые данные (собьется нумерация свечей)
Поделитесь опытом как это все лучше организовать
А кто Вам мешает записать Ваши 10 000 (да хоть миллион) свечей в файл и читать их сразу, когда желаете. свечи можно взять с сайта брокера.
Как получить значения 10 000 свечей, Вопрос о возможностях загрузки
Тогда вопросы проще: 1. по функции CreateDataSource сколько данных (максимально допустимый размер size) выгрузиться всего?
2. Сколько времени нужно будет на получение 10 000 временных отсчетов?
сервер дает максимум 3000 свечей. Остальное накапливает терминал. Вообще-то, чтобы посчитать достаточно знать арифметику. Вам надо определится с величиной интервала. потом оставшиеся 7000 поделить на число свечей с вашим интервалом за одну сессию и получите число рабочих дней
срочный рынок Московской биржи переходит на новую тарифную модель
В Вашем примере OnDepoLimit получает технологический лимит (limit_kind=-3), технологические лимиты используются для внутренней работы системы QUIK. Их самих, как и их значения, можно (и нужно) полностью игнорировать.
И в какой документации КВИКА это написано?
Как узнать кол-во сделок на покупку и продажу определенной свечи LUA QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2022 18:59:45
Цитата
Nikita написал: Добрый день! Подскажите есть ли пример или где взять информацию по данной теме ?
примера нет. --------------------- Могу предложить следующий алгоритм. общее число сделок берете из объема. Если свеча закрылась ниже открытия то на продажу было больше чем на покупку. По расстоянию от открытия до закрытия можете судить существенно больше или нет. ---------------------------- Считать по обезличенным сделкам можно, но бесполезно для торговли. ------------------------------- Приведенный мною алгоритм соответствует теории японских свечей, которая работает на практике. ---------------------- Учите теорию.
Ошибка: attempt to call a nil value (global 'foo'), непонятная ошибка в вызове пользовательской функции
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2022 18:20:16
Цитата
Владимир написал: , Как это "в момент вызова foo она еще не определена"? У меня в скрипте первой функцией стоит main, а за ней ещё десятка два, обычно по алфавиту. Всегда все всё прекрасно видят. Да и Квик перед запуском делает что-то вроде компиляции кода.
Функция main - это дополнительный поток для скрипта и вызывается основным потоком квик после того как весь скрипт загружен, и все функции в этот момент уже определены. -------------------------- Учите мат часть.
Динамическое количество линий индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2022 16:18:27
Цитата
Nikolay написал: Это значит что при попытке вывода линий они выводятся не на своих местах. Для примера, в Settings.line три линии. В Init добавили еще две линии - их стало пять. Вернули из функции Init 5. При отрисовке линий 4, 5 они выводятся поверх линий 1-3.
Предположу, что забыли очистить буфер старых линий, поэтому они и выводятся.
КВИК ПОД ДРУГУЮ ОПЕРАЦИОННУЮ СИСТЕМУ ОТЛИЧНУЮ ОТ Windows, В связи с последними известными события Microsoft уходит из РФ а в случае обострения вообще блокнуть могут через обновления
написал: Надпись на линукcе, что это аврора не делает линукс отечественной.
На Кенигсберге тоже Калининград написано это не делает его городом РФ? Сделано в китае на кроссовках найк не делает эти кроссы китайскими? Если разбираетесь в теме посоветуйте возможные варианты как и на чем работать без риска с деньгами в текущих реалиях ? а стеб для полит форумов придержите
ОС на потерю денег не влияет. ------------------------- Поэтому, если очень хочется и знаете как, то ставьте на линукс, а если приключений на свою ж... не хотите, то работайте на винде и не парьтесь без веника и не читайте страшилки в интернете.
Интервал между сделками на спот-рынке и на срочке.
Пользователь
Сообщений: Регистрация: 30.01.2015
08.06.2022 19:46:41
Цитата
Сергей Олейник написал: Почему интервал сделок на споте и на срочке разный при указании времени сделок в мкс?. То есть сделки идут на разных площадках не синхронно?
Если Вы про квант времени, то он на биржах синхронизируется по атомным часам точного времени и он точный. Вопрос в том, как вы измерили несинхронность?
КВИК ПОД ДРУГУЮ ОПЕРАЦИОННУЮ СИСТЕМУ ОТЛИЧНУЮ ОТ Windows, В связи с последними известными события Microsoft уходит из РФ а в случае обострения вообще блокнуть могут через обновления
Пользователь
Сообщений: Регистрация: 30.01.2015
08.06.2022 19:43:55
Цитата
Иван написал: Вопрос к тех поддержке если 10 винда все ,то какая отечественная операционка подойдет? и что для этого нужно? какой ноут брать и с какой операционкой отечественной ? Есть ли планы квик написать или адаптировать как то на что то кроме винды?
прикольно, Вы из какого отечества? ---------------- Никогда в россии не было никакой операционки сделано. -------------------- Надпись на линукcе, что это аврора не делает линукс отечественной.
График оборота торгов в деньгах смещен влево на 1 сессию, Текущ. знач. в ТТТ показывает - это сегодняшний график
Пользователь
Сообщений: Регистрация: 30.01.2015
08.06.2022 19:40:36
Цитата
NoneB написал: К проблеме смещения графика добавилось некорректное отображение на вертикальной шкале значения для перекрестия - объем торгов отображается как ОТРИЦАТЕЛЬНЫЙ. Перезаказ данных, перезагрузка программы и получение пропущенных данных при помощи клавиши F5 не помогли.
Все просто, Вы пере заказали данные и получили объем торгов за текущую сессию, так как предыдущие дни у Вас хранились в архиве, на сервере их нет. ----------------------- А перезаказ привел к стиранию Вашего архива. --------------------- Теперь копите данные и будет вам счастье, но когда накопите их в терминале. ----------------------- В следующий раз сто раз подумаете, прежде чем перезаказывать. -------------- Либо сохраняйте копию накопленного. ================ "Потерявши голову, по волосам не плачут.."
Вопрос по луа 5.4
Пользователь
Сообщений: Регистрация: 30.01.2015
08.06.2022 11:05:29
Вообще-то, нет никакой разницы какую вы используете версию 5.4 так как в КВИКЕ будет работать dll из папки КВИКА а lib которую используете при сборке лишь содержит указатели на dll. типа:
написал: В Квик встроен луа 5.4.1. я нашел в сети 5.4.2 и собирал библиотеку с ней. Не в этом ли дело? 5.4.1 я не смог найти, если подскажете где , будет здорово.
Уточнил, я тоже использую Lua 5.4.2.
Вопрос по луа 5.4
Пользователь
Сообщений: Регистрация: 30.01.2015
08.06.2022 10:16:10
Цитата
написал: В Квик встроен луа 5.4.1. я нашел в сети 5.4.2 и собирал библиотеку с ней. Не в этом ли дело? 5.4.1 я не смог найти, если подскажете где , будет здорово.
Я вам не правильно ответил. Я использую для сборки lib, которую сделал из dll.