Константин написал: Добрый день! Прошу проконсультировать меня по следующему вопросу: Я разработал приложение, которое получает данные из QUIK накапливает в себе и выставляет заявки на биржу. (Брокер Сбербанк) https://www.вцене24.рф/develop Законно ли будет, если я продавая свою программу буду предоставлять покупателю программы накопленные мною данные о торгах акциями на Московской бирже за 2 года? Или покупатель моей программы должен накопить подобные данные самостоятельно через свое подключение QUIK?
Это не законно. Читайте внимательно регламент брокера, там все написано. ------------------------------------- Не надо искать под столбом то, что потеряли в автобусе.
прикольно, что куча тестов кучу раз вызывает колбеки, которые кучу раз дублируют одну и туже информацию. ----------------------------- В качестве пожелания: Может имеет смысл сделать вызов колбеков один раз для всех скриптов и все их спрятать , чтобы не пугать буратин и не давать им возможность грузить CPU кучей бессмысленных скриптов.
Старатель написал: Демонстрация CPU Usage в Junior 9.3.3.3
3. Загрузка при запущенном скрипте с n = 5000000 и закрытой ТТТ. Скрытый текст Daniil Pozdnyakov, если у вас не получается проделать то же самое, готов продемонстрировать на компьютере вашего тестировщика по RDP.
Для полноты картины не хватает теста с открытой, но свернутой ТТТ.
Новичок написал: Скачала QUIK на сайте сбербанка, нигде нет срочного рынка. Как подключить срочный рынок?
У сбербанка QUIK изначально настрое. Судя потому, что у вас тема черная, Вы чего-то накосячили. Установите исходный пакет. Все перестройки делайте после соединения с брокером .
Добавлю свои пять копеек. чтобы скрипт корректно завершил работу, в колбеке OnStop() специально сделан возврат со значением времени задержки завершения. -------------------------------------- Поэтому все другие колбеки будут вызываться после выхода из OnStop. ------------------------------- функция main - это другой поток и она вызывается вне зависимости от колбеков. ------------------------------------- Чтобы ничего не зависало при выходе вы должны указать время задержки завершение, которое хватит для завершения всех ваших плюшек в скрипте. ---------------------- Это время Вы определяете сами, так как никто не знает что Вы нагородили в своем скрипте. Вполне возможно, что и 5 секунд может не хватить чтобы корректно завершить скрипт.
Вася написал: Владимир, потому что я, начинающий программист, выполняю заказ клиента. Таково его желание. Ему нужно выводить в эксель те данные, которые он сам выберет в ТТТ. И он, естественно, не сможет залезть в код и добавить новую колонку когда решит это сделать. Он сможет только добавить новую колонку в ТТТ и она должна быть выведена. Сложность в том, что выводить данные нужно не только из ТТТ, а еще из одной самодельной таблицы. Вот я и хотел объединить их сперва как-то, а потом сборную таблицу вывести.
Предлагаю реализовать так: TTT выводите в Excel по DDE всю, которая на экране. Убрать лишние столбцы из TTT клиент может без написания кода, по инструкции для терминала QUIK. Убрать(срыть) лишние столбцы в таблице Excel клиент может без написания кода по учебнику Excel . ------------------- В итоге, для получения TTT в Excel писать код вообще не требуется. ========================== Если работаете с Excel, то дополнительные столбцы создавайте в Excel Писать код в терминале КВИК для этого не надо. Передайте всю необходимую информацию из таблиц КВИКА по DDE и пишите код в Excel. ========================= Если комп многоядерный, то Excel и КВИК будут работать параллельно.
JIMB написал: nikolz, понимаю вашу обиду, тк не заказал программу. Но АРКА разработала возможность накопления архива на локальном компьютере и просмотра в терминале QUIK . Поэтому я спрашиваю - может ли брокер Сбербанк технически препятствовать просмотру уже накопленного мной архива?
Цитата
как просмотр мной накопленного локального архива зависит от брокера, может ли Сбербанк препятствовать этому?
Поясню то,что Вам непонятно на примере. Когда Вы подключены к серверу брокера, то терминал КВИК пишет получаемые Вами данные сделок (т.е свечи) для графиков цены и объема в файл архива. Кроме того, терминал при включении допишет в файл свечи до текущего времени , но не более 3000 свечей данного тайма. ------------------------- На следующий день в этот файл будут дописываться данные новых сделок и так далее. Т е если Вы не удаляете эти файлы то они будут хранить историю цены сделок тех инструментов, которые у Вас открыты в терминале. --------------------------- Эти файлы не хранят какие-либо иные данные кроме данных свечей. ------------------------------ Поэтому, если Вы хотите сохранять какие-то иные данные, то Вы сами должны это организовать. ------------------- Т е либо пишите прогу сами, либо покупаете ее, либо ищите халяву в интернете. ------------------- Снимите розовые очки.
JIMB написал: 1. График оборота торгов в деньгах доступен только за 1 день. Хотелось бы сохранять и просматривать его архив аналогично цене и др.
Цитата
JIMB написал: брокер Сбербанк предложил пользоваться сайтом moex для решения вопроса. Мне так неудобно и хотелось бы просматривать историю графика объема торгов в QuikЧто делать дальше?
Цитата
Daniil Pozdnyakov написал: Касательно пункта 1. Вы можете хранить информацию по данному параметру локально. Достаточно отобразить данный параметр в таблице текущих торгов, а также построить и держать открытым по нему график. Информация будет хранится в соответствующем файле с расширением *.dat в директории archive. Информация будет накапливаться, пока соответствующий файл не будет удалён.
10) Не получил ответа от АРКА и вынужденно повторяю вопрос - что делать после отказа Сбербанка помочь в решении вопроса ? Данные архива оборота торгов мной накапливаются, а просмотреть историю я не могу. Пользоваться сайтом мосбиржи для просмотра исторических данных мне неудобно. 11) Также прошу ответить, как просмотр мной накопленного локального архива зависит от брокера, может ли Сбербанк препятствовать этому?
Прочтите внимательно регламент брокера и закон о рынке ценных бумаг. ------------------------- Брокер не обязан Вам предоставлять какие-либо истории торгов. Это Ваши хотелки и решайте их как умеете. ------------------ Брокер - это посредник в подаче ваших заявок на сделки зв Ваши деньги на бирже или вне ее. Он обязан лишь предоставить вам отчет о результатах переправки Ваших заявок на биржу и своей комиссии за эту "ужасно трудную работу". И ВСЕ. ----------------- Хотите смотреть историю - пишите прогу, либо заказывайте ее разработку. ---------------------------- В инете можете найти фирмы, которые продают данные торгов, в том числе и мосбиржа. ---------------- Можете купить подписку или архивы. ----------------- Но это не обязанность брокера. ============= Терминал QUIK - это лишь прога для подачи заявок брокеру, которые тот переправляет на биржу. Остальное - это "бесплатные" плюшки. ------------------------------------------- Снимите розовые очки.
Обратился еще в начале недели. Сказали передадут техническим специалистам. До сих пор молчат
Им надо периодически напоминать. ------------------------ Лучше всего напишите им письмо или попросите чтобы соединили со спецами. -------------------------- В качестве бесплатного совета. Если Вы не профи на рынке, то лучше вообще забудьте про неликвид. Торгуйте лишь ликвидом.
Расчетные цены фьючерсов определяются в соответствии с внутренними документами ПАО Московская Биржа и НКО НКЦ (АО). Если интересно, то алгоритм см на сайте биржи.
Вася написал: Владимир, правильно ли я понял, что данные из моей таблицы нужно сохранять в файл .txt при каждой итерации цикла в скрипте, а этот файл уже открыть в экселе? И при этом все изменения в таблице в квике будут так же отображаться в таблице в экселе?
При этом вы будете видеть в Excel лишь сохраненные до вывода в Excel. Такой вариант не пригоден для работы в реальном времени.
есть два варианта. 1) скачиваете историю сделок с открытых источников например с финам и собираете то, что Вам надо. 2) купить историю у специализирующейся на этом компании. ищите в инете и смотрите на сайте биржи.
Прежде всего предлагаем выполнить рекомендации указанные в сообщении #2 данного трэда. Также предлагаем обновиться до актуальной (9.3.3.3) версии, если у Вас версия ниже таковой. Если после проделанных действий проблема ещё будет актуальна, необходим будет сделать следующее:
2) как только программа зависнет, нужно из каталога с утилитой выполнить команду: procdump.exe -s 1 -n 30 -accepteula info.exe .\
3)после этого в каталоге, откуда выполняли команду, появятся DMP-файлы. Просьба создать архив директории терминала без *.txk ключей, выложить его и созданные DMP-файлы на какой-либо файлообменный сервер и на адрес quiksupport@arqatech.com прислать ссылку для скачивания.
Дополнительная просьба, в письме укажите, пожалуйста, ссылка на данную ветку форум, а также технические характеристики Вашей ОС.
добрый день! Именно «зависания» приложения не происходит. Происходит торможение, длинный отклик (2-5 секунды) при переходе по вкладкам либо отрисовке пунктов меню. Котировки на графиках и в стакане отображаются и обновляются оперативно. Заявки в темной теме после отправки выставляются по несколько десятков секунд, при этом приложение сохраняет работоспособность, тормозит, но сохраняет. В какой момент выполнять дамп, если приложение не висит, а тормозит? Если даже теоретически предположить, что в момент переключения на соседнюю вкладку оперативно вызвать процдамп, то он не успеет снять дамп с нужными данными, так как приложение уже закончит отрисововывать экран.
скажите, уважаемая поддержка, описанная в этой ветке проблема, у вас не воспроизводится? Это только у обычных пользователей такие грабли? Вы сами пробовали добавить в темной теме открытый интерес на фьючерс ртс и повыставлять заявки в период с 10 до 19? Или хотя бы попереключаться между вкладками и графиками?
попробуйте посмотреть используемые ресурсы в момент торможения. Попробуйте свернуть все окна c графиками, кроме одного.
AndyWise написал: Собственно есть 2 варианта источника тиковых данных цены сейчас. Это либо через OnAllTrade, либо через CreateDataSource + SetUpdateCallbac. Вопрос, какой поток меньше тормазит, более легковесный с точки зрения системы, брокера? Вроде по сути тоже самое, что лучше из практики?
Для начала возьмите индикатор. В функцию onCalculate приходят тики. Для вычисления Max/Min на интервале секунда используйте локальное время компьютера. синхронизируйте время компьютера с сервером точного времени, чтобы время компьютера точно совпадало с временем биржи.
Константин написал: Пользуюсь КВИКом более 10 лет, к программе привык, но то что нужно этого нет, много лишнего. Не ужели нельзя сделать, если я например хочу войти по акции в пробой, заведомо выставив условную заявку и при ее срабатывании выставлялся автоматически стоп-лосс. Недавно подключил аллерты, при достижении определенной цены приходит СМС, неужели нельзя чтоб уровень цены отображался на графике, или была какя нибудь метка, а лучше всего в таблице текущих параметров, по заданному алерту можно было бы изменять цвет инструмента. И самое что мне не хватает инструмента для рисования - это простого маркера с разной толщиной рисования.
Попробую пояснить: Как говорил Козьма Прудков "Бди в корень" ------------- Вот несколько простых вопросов и очевидных ответов на них, которые позволят Вам самостоятельно ответить на Ваши многочисленные "не ужели нельзя". ==================== Кто платит разработчикам КВИК? Брокер, который покупает их ПО. --------------------------------------------- Для какой цели сделан терминал КВИК? Чтобы клиент мог подать брокеру заявку и а тот эту заявку автоматически отправить на биржу. Именно так и указывает брокер в своем регламенте - КВИК - это программа для подачи заявок и плюс бесплатно наблюдения торгов на бирже. И ВСЕ. -------------------------------------------- Кто на форуме конючит постоянно про свои хотелки? клиенты брокера. Брокеру это пофиг. ------------------------------------------ Кому платят деньги клиенты? Платят брокеру. ----------------------------------------- А не прикольно, что клиенты платят брокеру, а просят бесплатные хотелки у разработчиков КВИК. ----------------------------------------- Подумайте об этом, прежде, чем просить халяву.
и еще... Применение брокерами сделок РЕПО для получения с вас процентов фактически лишает Вас права на купленные Вами акции на заемные средства. Хотя по закону заемные средства- это Ваши средства и распоряжаться ими имеете право лишь Вы. А купленные Вами акции - становятся Вашими лишь при записи их на счет depo. Но акций в конце дня у вас нет. Поэтому Вы не имеет прав ни на деньги заемные ни на акции. Но это устраивает ЦБ и все молчат о нарушении прав клиентов брокеров. Но это уже другая история.
nikolz написал: Основной доход брокера не в комиссии, а в использовании денег и бумаг клиентов.
На комиссии за маржинальные позиции брокер нехило зарабатывает. А в займы как раз даёт ваши средства. Или вам даёт взаймы Васины ))
Поясняю медленно. --------------------- комиссия брокера - это плата за совершенные на бирже сделки за Ваши деньги от имени брокера. Это и есть брокерская услуга. ------------------- Маржиналка - это предоставление заема (кредит) клиентам. Заем предоставляется под проценты. ---------------------- Т е за деньги и бумаги ,которые вам дают в заем начисляются проценты. -------------------------- Заем - это не брокерская услуга, а финансовая . Именно этим и занимаются банки. ----------------------- Проценты по займам брокер берет с Вас по сделкам РЕПО в конце дня - за перенос позиций по бумагам. ---------------------- комиссия по маржинальным сделкам - это комиссия по сделкам внутри дня. ------------------ Выше я Вам пытался объяснить, что основной доход брокера - это проценты по займам, т е как в банках. ------------------- Но в банках Вам на ваши средства дают процент на депозит ----------------------------- А брокер пользует Вашими средствами бесплатно (в настоящее время все же дает процент типа 0.0000x) ------------------------ Вот доход брокера по займам и есть основной доход. Ранее через фирмы-посредники РЕПО брокеры выводили прибыль от этого дохода чтобы не платить налоги. Так как счет денег клиентов забалансовый, то никто практически не контролирует. --------------------- Примерно так.
Кузьма написал: если я использую функцию getCandlesByIndex я получаю массив данных с VHLOC корректно(цены в данную секунду),но если я запрашиваю время последней свечи,то мне показывает только время открытия,я имею ввиду ,что какая секунда этой свечи он мне не выдаёт.Поковырялся в мануале,но ничего не нашёл
Все правильно - это же свечи. свечи - это функция сжатия данных. Она создается с постоянным квантом времени. Поэтому у свечи есть лишь время ее создания. Внутри свечи время не измеряется. Внутри свечи - это тики. т е конкретные сделки.
Старатель написал: К сожалению, движок этого чудо-форума не позволяет редактировать заголовки тем или сообщения. С учётом полученной раннее информации заголовок темы должен выглядеть так:
Высокая нагрузка CPU в QUIK 9 при вызове колбеков в скриптах, которые содержат много переменных или хранят большое количество элементов в таблицах.
_sk_, посмотрите мои сообщения на первой странице и комментарий Антона #16 . Суть в том, что сам по себе вызов колбеков при большом количестве хранимой информации создаёт огромную нагрузку вне зависимости от кода внутри колбека и параллельно выполняющейся работы в main. Отмечу, что объём хранимых данных (в байтах) не имеет значения. Нагрузка пропорциональна количеству данных. Обратите внимание также на тест в сообщении #19 . Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте. А тормоза в GUI, которые вы наблюдаете, - скорее всего уже следствие, а не причина.
ЗЫ: версии библиотек qlua.dll, lua53.dll, lua54.dll в QUIK 9.3.3 не изменились по сравнению с QUIK 9.3.1
Колбеки выполняются в основном потоке терминала КВИК, Поэтому, когда у Вас исполняется колбек терминал КВИК курит бамбук. Если Вашему main надо данные получаемые основным потоком, то ваш main тоже курит бамбук. и не важно сколько у вас ядер, все ждут основной поток, а тот ждет когда ваш колбек закончит ....
Kalmar написал: Блин. Прочитал страшное. Теперь хочется вывести все деньги и засунуть их в матрас. А у меня стоит галочка "не использовать мои средства в интересах брокера". Это спасет мир или нет?
Не смешите мои тапочки. Основной доход брокера не в комиссии, а в использовании денег и бумаг клиентов. ------------------------- Аналогично как у банков, только еще более прибыльней. ------------------------ Мир спасет любовь. -----------------
Привет, разработчики КВИК. Возникла проблема. Квик работал, работал и настал кирдык. ----------------------------------- Брокер сбарбанк ----------------- версия квик 8.7.1.3 ------------------- Соединение с сервером двухфакторное. -------------------------- При запуске КВИК получаю сообщение в окне сообщений:
Connection was closed by peer: Can’t get messege size from net. И все. Соединения нет. Что делать? Спасибо
из истории брокерского движения. Ранее для манипуляций с деньгами клиентов использовалось физ лицо - доверенное лицо всех клиентов, потом юр лицо - пустышка - доверенное лицо всех клиентов. В настоящее время солидные брокеры создают для этой цели свой банк и офшорную фин компанию. Все успехов на бирже.
и еще нет никакой разницы какое это юр лицо, так как за деньги клиентов отвечает лишь брокер и лишь в том случае, если Вы через доблестные органы докажите, что был умысел со стороны брокера.
Объясняю буратинам популярно , чтобы не было мучительно больно. ------------------------- Брокер оказывает Вам услуги посредника на рынке ценных бумаг. Это означает, что он от своего имени по вашему поручению и за ваши деньги выставляет заявки на совершение сделок. Это все. Сами сделки заключает биржа , исполнение сделок совершает клиринговая компания. ------------------------ Все средства клиентов брокер отображает на забалансовом счете. Это значит, что эти средства не контролируются налоговыми, ни службой мониторинга фин операций, а лишь иногда проверяются ЦБ и контролируется биржей на предмет достаточности у брокера средств. ----------------------- Брокер использует средства и бумаги клиентов на собственные нужды и по собственному желанию. -------------------- Заявки клиента брокер исполняет лишь при наличии возможности (Понимайте это в широком смысле т е от "проспал", до "послал" ) -------------------- регистрация и исполнение заявок клиентов производится брокером в грос.бухе . Т е в специально придуманной книге регистрации заявок, по которой клиенту направляется отчет, который является основанием для удержания комиссии. -------------------- Пример из обычной жизни: Вам надо купить бутылку водки, самому идти в магазин нельзя, посылаете соседа , даете деньги и говорите что купить. В результате -может и купит, а может и нет. Деньги -может вернет, а может и нет. ---------------- Ну вот и все.
Владимир написал: _sk_, О, Господи! Только я уже раз 20 советовал в разных местах: "Не пользуйтесь вы таблицами Квика - есть же таблицы Луа"! Да и с таблицами Квика что за проблемы? В моей главной обычно 20-30 тысяч ячеек, и почти все они проходят не только SetCell, но и SetColor.
Ах, "Скрипты надо запускать одновременно". Ну вот она и причина всех тормозов! А у меня "local nRow обычно порядка 1000 (и может сильно меняться, если установлены какие-то фильтры), а вот "local nCol" как раз порядка 30.
И ещё один тормоз навскидку: что, при каждом выводе таблицы она набивается InsertRow? К меня так только после изменения количества строк в ней, что происходит довольно редко (при внесении нового тикера в портфель, удалении из него или при установке/снятии каких-то фильтров).
можете показать время исполнения скрипта при текущих торгах ? Спасибо
Упомянутый код демонстрирует проблему в QUIK 9.3.1.11. В QUIK 9.3.3.3 QLua 5.4 эта конкретная проблема устранена.
Это хорошо. Полагаю, что разработчики это тоже подтвердили бы, если бы провели разбор проблемы качественно.
Цитата
... если в колбеках, есть обращение к функциям API QLua, то все запущенные скрипты рабочего места QUIK, могут выстраиваться в очередь к синхронизуемым ресурсам QUIK (по которым в ранних версиях QUIK, возможно синхронизации вообще не было), что эквивалентно их работе в одном потоке.
Вот как раз похоже на такое поведение. Конкретно у меня в коллбэках минимальные действия и очереди, передающие данные в main, но в самом main остаётся периодический вывод информации в таблицы (имеются в виду окна, создаваемые из скриптов), а их отрисовка опять идёт через поток коллбэков и начинаются тормоза.
Цитата
Правильно я понимаю, что у Вас три терминала КВИК работают и каждый сделал по 12 потоков, а у Вас всего 8 ядер ?
Нет. В процессоре всего имеется 8 ядер. Каждый из 3-х терминалов грузит полностью одно ядро процессора (архитектура терминала такая). Дополнительная нагрузка собственно от Lua минимальна. Основная беда, похоже, с тем, как отрабатывают функции QLua, заставляющие терминал что-то отрисовывать. Что-то там внутри терминала с синхронизациями при доступе к общим ресурсам не так. Пока неясно, как бы это в явном виде продемонстрировать.
понятно. не раз писал , что надо сворачивать окна, которые не смотрите, чтобы ускорить работу КВИК. ------------------------- Относительно числа ядер для одного КВИК. У меня квик ( 8 версия) без скриптов использует 8 потоков. Как я понимаю, разработчики используют рекомендации что число потоков не более чем удвоенное число ядер. ------------------------- Как Вы определили, что у Вас каждый КВИК занимает одно ядро? При одном ядре число потоков не рекомендуется делать быть более 2. Так как это лишь тормозит работу процессора.
NoneB написал: Первая производная графика цены = скорость изменения цены, а ее единицей измерения могут быть USD/сек, Руб/сек или др. Например, средние скользящие линии являются первыми производными Производная (математическое понятие)
Среднее скользящее вычисляется как среднее суммы N значений на шагом T, а первая производная - это примерно разность значений c шагом T. ------------------------- Ау, Что тут общего?
Владимир написал: nikolz, Ну, конечно, конечно - скрипт работает у меня, дерёт, как котов всех местных умников и по памяти, и по производительности, и по прибыли, и по количеству тикеров и таймфреймов, а заблуждения - у меня! :: Естественно, Ваши "объяснения скорее не для меня, а для начинающих" - я же их просто размажу по стенке - даже не читая! Но ведь я сейчас Ваш опус и читать буду!..
1) Да неужели?! Во-первых, а что такое "скриптовый язык"? Тыкаем в первую попавшуюся ссылку в Гугле - там аж "Обзор скриптовых языков программирования", и первый же раздел называется "Понятие о скриптовых языках", и первая же фраза в нём гласит:
В любой дискуссии есть как минимум два способа высказать свое мнение. В первом случае , высказывающий пытается унизить , обозвать и нахамить, полагая, что таким образом он доказывает свое превосходство. Этот способ в человеке заложен природой на уровне подсознания. Во втором способе, высказывающий пытается высказать свое понимание и свою логику по обсуждаемой , т е дать собеседнику новую информацию, не унижая его, а разъясняя ему. ------------------------------- Сожалею, что Вы сторонник первого способа беседы. ===================== Вы опять заблуждаетесь. ------------------ Что такое скриптовый язык. В моем понимании скрипт - это программа , которая исполняется на виртуальной машине в псевдокоде. Как правило такую программу не надо явно компилировать и линковать. Достоинство таких языков в том, что виртуальная машина может быть установлена на любом железе и нет надобности под это железо переписывать пользовательские программ. Классический пример - это джава. --------------------- Теперь про множество скриптовых языков Проблема в быстродействии и объеме требуемой памяти для развертывания виртуальной машины. До луа не было ничего подобного, что можно было бы развернуть на микроконтроллерах. Потом появился микро питон. -------------------------- Относительно ваших рассуждений относительно того что и как у вас делают между собой скрипты, то тут Вы тоже ошибаетесь. ----------------------- Есть такая технология в разработке сложных систем, называемое - системным подходом. Американцы использовали его в разработке программы космических полетов на Луну. Его эффективно применять для создания любых систем и устройств. ------------------------ Если кратко , то основа его в том, что любую систему проектируют сверху вниз, а реализуют снизу вверх. Применительно к программированию - язык программирования не имеет никакого значения в начале создания системы. Оптимальный язык выбирается на этапе реализации, а не на этапе проектирования. ---------------------- Поэтому при разработке алгоритма нет никаких скриптов, так как скрипт - это лишь программа на псевдокоде.
Egor Denisov написал: Здравствуйте. Хочу у себя реализовать lua скрипт реализующий функцию трейлинг-стопа с защитным временем. Вопрос в следующем: как правильно поступить, чтобы получить ситуацию, когда цена инструмента делает прокол на несколько процентов и возвращается обратно в течение 1-2 секунд. На игровых серверах таких ситуаций может и не быть совсем. Как моделировать и тестировать такие ситуации?
Можно сделать это в КВИК, а можно и без него ================== Для начала надо создать тестовые данные. ---------------------- Выбираем на истории нужный участок и пишем его в файл, можно скачать данные истории с сайта финам или вывести из терминала КВИК -------------------------- Далее можно корректировать тестовые данные создавая различные движения цены. ========== После этого пишем свою функцию стопа. -------------------------- Затем выполняем ее тестирование. ================= Вариант в терминале КВИК. ---------------------------- Вставляем свою функцию в КВИК например в индикатор и подменяем реальную цену торгов значением из текстового файла. ====================== Вариант без КВИК. удобно делать в редакторе SciTe, в котором можно исполнять скрипты. ---------------- в SciTe пишем свою функцию и исполняем ее с тестовыми данными из файла -------------------- Примерно так.
Александр написал: Я тоже не планировал в это сильно углубляться и как мне казалось вопрос задал максимально просто: "Почему официально день считается от клиринга(19:00) до клиринга(19:00) а в квике по своему" Речь не про то, что именно я или кто-то другой считает для себя истиной, у каждого свой метод как Вы и сказали, речь про то, что та информация которая выводится в квике абсолютно для всех не верна согласно алгоритму построения свечей БИРЖЕЙ. В том числе и поэтому на форуме переодически и создаются темы "о неверных графиках"
попробую объяснить. -------------------------- Есть два разных периода торговых дня - для акций и для фьючерсов. В квике реализован расчет свечей лишь для акций. Т е акции и фьючерсы по расчету периода торговых свечей не различаются. Проще сказать, что начало периода торговых свечей считается от 00:00:00 и никак не связан с периодом торгового дня. ------------------ Почему так? Ну так сделали, изначально. --------------------------------------------------- Свечи - это фильтр и алгоритм их реализации каждый делает как хочет. Исходный данные - это сделки. А как Вы их потом уродуете - это дело интимное.
Владимир написал: И я уже несколько раз говорил, что я чуть ли не единственный на этом форуме, кто программирует на чистом Lua,
Не "реализация большого числа программных сущностей минимумом синтаксических средств", а эмуляция этих сущностей через жо... через механизм key-value, который с какого-то бодуна регулярно обзывают "таблицами".
29.09.2020 10:31:16 Убрать тип integer из языка, на мой взгляд, есть самая большая дурость. Ладно, бог с ним, с никому не нужным boolean - пусть будет, если нравится, но с целочисленными переменными я за долгие годы программирования (а я уже пенсионер!) работал раз в 10 чаще, чем с вещественными! Если не во все сто.
Ребятки, доступ по ключу - это не прямой, а как раз КРИВОЙ доступ к данным! Даже если обозвать ключи "индексами". Уши бы надрать этому "Роберто Иерусалимскому!
Какие "индексируемые таблицы" - побойтесь Бога! Мне чуть ли не с первого дня стало очевидно, что тут постоянно путают индексы и имена, что является источником многочисленных глюков - в том числе, и в основном ПО Квика (таблица заявок, я об этом не раз писал). Язык отвратителен, и только за убийство типа integer и замену его на вонючий "тип number" создателей нельзя подпускать к компу ближе, чем на километр - об этом и о многом другом я тоже писал. Как и о том, что синтаксис, про который Вы здесь соловьём заливаетесь, вообще не имеет значения - профессионалу всё равно, на каком языке писать, была бы обеспечена требуемая функциональность.
Строки НЕЛЬЗЯ "индексировать как таблицы", какие бы не делать "финты ушами": индекс - это НЕ имя, и об этом я тоже писал буквально в первых же своих постах (а Ваш убогий "финт ушами" эмулирует обращение по индексу как массива, а не "как таблицы", и абсолютно бесполезен - разве что для пущего оверхеда).
Попробую объяснить Ваши заблуждения, но скорее не для Вас, а для начинающих. ----------------------------- 1) Луа - это скриптовый язык и он имеет вполне определенною область применения. Подобно микроскопу, который можно применять и в качестве молотка для забивания гвоздей, но не так эффективно. --------------------------- Назначение чистого луа - это быстрое и простое тестирование идей и алгоритмов, создание диалоговых интерфейсов для устройств и программ. Т е чистый луа -это инструмент для быстрой разработки программ взаимодействия компьютера и человека. ----------------------------- Все функции в библиотеках Луа написаны на чистом СИ, поэтому они работаю быстро. ------------------------------- Для реализации более сложных и быстродействующих задач предназначен язык СИ и API C for Lua. =================== Создание торговых роботов в КВИК - это задача создания систем реального времени. В реализации этой системы условно можно выделить три задачи. ---------------------- 1 задача, это интерфейс с человеком. И эту задачу легко и эффективно решать на чистом Луа. ----------------------- 2 задача, это задача взаимодействие робота с биржей , сервером брокера и терминалом QUIK. Эту задачу разработчики реализовали на СИ в виде библиотеки QLUA. т е программ на чистом СИ взаимодействующие с VM Lua через API C for Lua. ----------------------- 3 задача, это разработка и реализация алгоритма работы робота. Не сложно понять, что наиболее эффективно этот алгоритм можно реализовать лишь на СИ, т е как задачу 2. Но дело в том, что пользователи Луа не есть профессиональные программисты. Но Луа позволяет им тоже заняться творчеством и написать собственные, пусть и не оптимально реализованные алгоритмы. -------------------- Поэтому ранее я Вам пытался объяснить, что на чистом луа сложные алгоритмы пишут, либо профи для быстрой реализации идеи, чтобы ее протестить, либо чайники , которые горды собственным невежеством и не сомневаются в собственной гениальности. ================
Теперь объясню немного Ваши заблуждения относительно реализации Луа внутри. Судя по Вашим гневным рассуждениям, Вы не разбирались в исходниках VM Lua. ----------------------------- Все переменные (кроме данных в таблицах) имеют именно прямой доступ. Они представляют собой структуры В этой структуре есть 32 бит (или 64 бит) слово, которое содержит целую, вещественную, булев. переменные. а также указатель на таблицу или функцию. Если Вы используете API C for Lua, то Вы получаете прямой доступ к ним. Замечу, что указатель - это и есть любимое Вами целое. --------------- Но для чайников эти возможности, по вполне понятным причинам, недоступны на чистом Луа. Доступ чайникам к целому типу в версиях 5.3 создало кучу вопросов на этом форуме. Так как чайник не читает документации - потому что он чайник . ---------------------- Теперь про Выши гневные опусы о строках текста. В луа строки текста заменяются изначально на их хеш - 32(64) любимое Вами целое число . А далее, во всей вашей программе , где вам надо сравнивать сортировать строки, участвуют не строки, а эти числа. Т е обработка строк происходит также быстро как обработка целых чисел. Ну и где Вы видели более компактное и эффективное решение? ----------------------- В итоге, если вы присвоите элементу таблицы имя , то луа сделает для него целое число- хэш и далее для извлечения этого элемента будет использовать это целое как индекс в массиве. ==================== Не буду более рассказывать об интересных и эффективных решениях в VM Lua. Кому интересно, читайте исходники. ========================== В результате - Луа самый компактный и быстрый из скриптовых языков. Его легко встраивать в любые системы, в том числе и на одном чипе. Конечно, есть множество языков программирования и каждый из них создавался для определенных задач и имеет определенную область эффективного применения. ========================= И в завершение моего ликбеза, замечу, что в КВИК встроили луа именно для расширения интерфейса для пользователя, а не для создания торговых роботов. ------------------------ Поэтому не стоит на зеркало пенять...
SciTe - написан на луа, есть встроенный компилятор и отладчик
Убийственная характеристика редактору! Лучше помню только фразу Кернигана из статьи "Почему Паскаль не является моим любимым языком программирования": "Три из четырёх известных мне компиляторов с Паскаля написаны на Си". ::
специально для Вас из Вики: -------------------------------- По идеологии и реализации язык Lua ближе всего к JavaScript, в частности, он также реализует прототипную модель ООП, но отличается паскалеподобным синтаксисом и более мощными и гибкими конструкциями. Характерной особенностью Lua является реализация большого числа программных сущностей минимумом синтаксических средств. Так, все составные пользовательские типы данных (массивы, структуры, множества, очереди, списки) реализуются через механизм таблиц, а механизмы объектно-ориентированного программирования, включая множественное наследование — с использованием метатаблиц, которые также отвечают за перегрузку операций и ряд других возможностей. Lua предназначен для пользователей, не являющихся профессиональными программистами, вследствие чего большое внимание уделено простоте дизайна и лёгкости обучения. Язык широко используется для создания тиражируемого программного обеспечения (например, на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх (в том числе Garry's Mod)[10].
SciTe - написан на луа, есть встроенный компилятор и отладчик
Убийственная характеристика редактору! Лучше помню только фразу Кернигана из статьи "Почему Паскаль не является моим любимым языком программирования": "Три из четырёх известных мне компиляторов с Паскаля написаны на Си". ::
Видно, что Вы не в теме. У Вас получается типа - "кина не видел, но считаю , что говно" --------------------------- На луа написан не только редактор но и многие игры а также системы управления нефтяным оборудованием и приборами (Собственно для этого его и создавали изначально). ----------------- Так как SciTe написан на луа, то пользователь может легко добавить свои плюшки и быть до .... счастливым и радостным.
В качестве совета. Вне зависимости от тайма графика , в индикатор приходят все тики или почти все. Но чтобы алгоритм действительно работал по свечам, а не по тикам, ставьте фильтр работы алгоритма по началу(концу) свечи
Александр написал: nikolz, перезагрузка скрипта в любом случае приведет к сбросу параметров на начальные значения. это не "сохранение параметров settings", файл lua-скрипта индикатора оно не перезапишет я их меняю в режиме редактирования, но программно, и новые значение не отображаются в диалоговом окне настроек индикатора, хотя индикатор работает по новым значениям, и нажатие кнопки ОК или Применить затрёт эти изменения на старые даже если открыта другая вкладка настроек графика согласитесь, неправильно, когда переменная Settings.Offset равна 50, и рисуется 50, а настройках написано, что 30, и нажатие ОК запишет в нее 30 и будет рисоваться 30
возможно, я Вас не понял. Но у меня нет проблем с settings.
Vladimir написал: Здравствуйте. В общем есть идея написать бота который бы сообщал о том, что цена инструмента подошла к айсбергу. Реализацию я представляю следующим образом: перехватывает рыночные заявки, если лимитка была 90 и после проедания она обновилась до >= 1000 (и такое происходило 2 раза подряд), то будет выведено сообщение..
Может существуют возможности Quik и QLua которые бы предложили альтернативу?
Подобные идеи реализуют HFT роботы, но не на КВИКЕ