funduk (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 След.
Запустить скрипт Lua другим скриптом, Запустить скрипт Lua другим скриптом
 
Вы имеете ввиду что-то, отличное от Lua команды dofile?
Как в Quik включить получать обезличенные сделки юр. лиц., Заметил что сделки на срочном рынке приходят только физ лиц как включить отображение сделок юр лиц?
 
Как Вы поняли, что там нет сделок юрлиц?
Выставить сделку с переносом из стакана, быстрые сделки
 
Цитата
ДмитрийР написал:
Открыто окно котировок. Выставлены опции панель торговли и быстрое выставление/снятие заявок. Заявка выставляется без переноса через ночь. Как её выставить так, что бы она переносилась до какой то даты . Я так понял это не возможно?
Быстро -- никак. А так - как обычно, клавиатурной кнопкой вызываю контекстное меню, там в алго заявках есть пункт про GTC, если брокер поддерживает.
Как создать глобальную константу доступную многим скриптам и индикаторам?, Как создать глобальную константу доступную многим скриптам и индикаторам?
 
Цитата
nikolz написал:
или готовые внешние dll.
например, lua_share
Зависание приёма данных в QUIK
 
У меня квик на пару секунд затупил в приёме данных сейчас на пробое CRU4 11.75 в 12:07 ровно после того как оповещение выскочило. Версия 11.1.4.2, брокер БКС.
[BUG] getFuturesHolding: ошибка в работе
 
Цитата
VPM написал:
local holdings = nil --getFuturesHolding(self.firmid, self.account, symbol, self.type)
Хоть к теме и не относится, но что-то часто такие ошибки у Вас в коде...

А так -- ну да, getFuturesHolding даёт nil, если не было ордеров по тикеру с прошлого клиринга и одновременно если нет позиции. Наверняка это деталь реализации для какого-нибудь ускорения...
[BUG] getFuturesHolding: ошибка в работе
 
Цитата
VPM написал:
Вот сама функция, что не так?
Цитата
if getFuturesHolding ~= 'основная сессия' then

Вы сравниваете функцию и строку на равенство.
[BUG] getFuturesHolding: ошибка в работе
 
Мне тоже хотелось бы знать, безопасно ли использовать getFuturesHolding в скрипте из разных потоков (main и основной поток квика), т.к. у меня мистические краши квика происходят в скрипте, в котором есть такие вызовы.
При смене инструмента графика в Lua индикаторе OnDestroy() не вызывается
 
На каждом I == 1 проверяете инструмент, если он не совпадает с предыдущим, удаляете метку. Т.е. удаляете после смены инструмента, не до.
текущий современный способ сделать робота без ежемесячных расходов?
 
Цитата
Oleg Vazhnev написал:
Забыл самое важно сказать, что хочу на C++ писать, т.к. у меня уже много полезного кода на C++
Ну так пишите) Lua C API и/или любой из мостов C++-Lua. Я использую sol3.
текущий современный способ сделать робота без ежемесячных расходов?
 
API брокеров бесплатны, как я понимаю. Есть у тинька и финама, но у финама альфа версия и можно забыть про миллисекунды.
Для прототипов я использую sol2 либу для C++-Lua, но потом надо переписывать части на Lua C API (или sol::stack...) для скорости
Хочу заказать скрипт., Хочу заказать скрипт по поиску роботов, которые покупают или продают рыночными заявками.
 
Конечно же смотрел, потому и спрашиваю.
Хочу заказать скрипт., Хочу заказать скрипт по поиску роботов, которые покупают или продают рыночными заявками.
 
SellBuyStyle, приведённый пример показывает поведение непериодического робота. Как скрипт, по ТЗ ищущий периодических роботов, должен работать в моменты, когда такой робот активен? Скрипт будет видеть равные объёмы очень регулярно, и определит их или как (условно) 10 роботов, работающих через равные промежутки времени, или никак (если интервалы между бросками слишком разные).
Вылетает квик 50 раз за сессию!, вылетает квик при работе в период торговой сессии
 
Дмитрий Б., а какое количество индикаторов и областей на каждом графике? У меня уже при 13 стаканах и 30 инструментах на графиках по 50+ линий индикаторов в каждом были ситуации, когда один стакан не обновлялся на одной вкладке (а на другой вкладке, где было мало графиков, стакан по тому же инструменту обновлялся) в период большой рыночной активности. Когда я свой гуи для стаканов написал, выяснилось, что стаканы квика медленные (т.к. в том же потоке рисуются, что и всё остальное, включая расчёт индикаторов и показ графиков).
Хочу заказать скрипт., Хочу заказать скрипт по поиску роботов, которые покупают или продают рыночными заявками.
 
SellBuyStyle, можете посмотреть работу реального робота сегодня в валюте (продажи по 20 лотов в рандомные интервалы два-три раза внутри секунды в районе 17 часов)
Вылетает квик 50 раз за сессию!, вылетает квик при работе в период торговой сессии
 
Лена, меню "Сервисы" и там "Lua скрипты..."
Вылетает квик 50 раз за сессию!, вылетает квик при работе в период торговой сессии
 
Помимо очевидного совета сменить тормозную тёмную тему на светлую, и чистку dat файлов в archive (что Вы и так делаете), можете добавить в диспетчере задач на вкладке "Подробности" столбец "Объекты GDI" и сказать сюда число объектов GDI для процесса info.exe. Если там 10000, то надо уменьшать количество окон.
Также описанные проблемы могут встречаться, если у Вас есть пользовательские скрипты, использующие DLL, особенно гуишные (с багами).
И уточните, не англоязычную ли версию квика Вы используете. Там тоже были проблемы гуи
Как в Quik открыть старый файл с данными
 
Цитата
VargoR написал:
Может быть, все-таки, чтобы не мучать пользователей тестирующих свои стратегии в Quik, добавить функционал загрузки старых данных в график Quik?
Этой проблеме сто лет в обед, она навряд ли будет решена, к сожалению. Вы быстрее освоите другие платформы для тестирования автоматических стратегий (tradingview, backtrader, ...). Альтернативно Вы можете автоматизировать устранение перемешивания, если умеете редактировать DAT файлы с свечами (я умею, но это не бесплатно и с ограничениями, наложенными форматом), и далее адаптировать свои скрипты, чтобы они работали с ограниченной по времени частью свечей.
Хочу заказать скрипт., Хочу заказать скрипт по поиску роботов, которые покупают или продают рыночными заявками.
 
SellBuyStyle, как Вы собираетесь проверять, что скрипт нашёл всех подразумеваемых Вами роботов? По таблице обезличенных сделок? Или через подключение к потоку заявок за большие бабки?
Снять защиту с робота на LUA, Снять защиту с робота на lua, привязанного к закрытому счёту
 
Maater, Вам же nikolz выше ответил с исправленным кодом робота
Надо кое-что исправить в документации
 
Anton Belonogov, в документации 11.3 уточнения внесены, но в примерах там такое:
Цитата
Есть спрос, но нет предложения:
{'bid_count': '3.000000',
'offer_count': '0.000000',
'bid': {{'price':'11.3', 'quantity':'10'},
{'price':'11.4', 'quantity':'20'},
{'price':'11.5', 'quantity':'30'},
},
'offer': ''
}

То есть утверждается, что если предложения нет, то приходит таблица, в которой есть(!) ключ 'offer' и он указывает на строку длины 0. Неужели это правда так стало в новой версии?)
Куда все подевались?
 
Может быть, потому все и разбежались, что в любом топике море оффтопа :)
Индикаторы
 
Цитата
Дмитрий Квази написал:
Можно это как то исправить, чтобы на всех выбранных инструментах дельта отрисовывалась не зависимо открыт график или нет.
Без крупного исправления кода индикатора - нет. Но обычно это делается парой скрипт-индикатор (скрипт вычисляет, что нужно, независимо от того, открыты графики или нет, а индикатор рисует вычисленное, но нужно уметь передавать данные между скриптом и индикатором).
Цитата
Дмитрий Квази написал:
Одновременно на всех 10 инструментах дельта не отрисуется так как активно я выбираю только 1 инструмент я правильно понял?
Да.
Индикаторы
 
Цитата
Дмитрий Квази написал:
Причина в загрузке перед каждым переходом на новый инструмент, ещё раз повторюсь, ощущение что загрузка данных начинается при открытии графика с инструментом.
Ну так и есть же и так и должно быть, ведь индикатор, если специально сильно не извращаться, работает ровно на одном инструменте. А если это не так, то от кода индикатора сильно зависит, что происходит при смене инструмента, поэтому следует обратиться к автору.
Индикаторы
 
А, ну я вижу таблицу обезличенных сделок как nikolz советовал. Значит, индикатор так долго считает. Попробуйте удалить часовой график, он дольше всего у Вас на видео грузится. Там или очень много свечей, и/или индикатор слишком неоптимально написан для этого тф.

"Установлен он на 20 инструментах"
на видео в каждый момент времени он установлен на ровно одном инструменте на трёх таймфреймах.
Индикаторы
 
Судя по скринам, вкладка у вас одна и Вы переключаетесь не между  вкладками, а просто по таблице текущих торгов. Конечно, как только Вы  уходите с одного инструмента, индикатор на нём перестаёт работать и  начинает работать на том, на который перешли, возможно подгружая  пропущенные данные (зависит от кода индикатора). Даже если Вы последуете совету nikolz, индикатор не вынудит квик запросить данные для инструмента, пока Вы не включите график с индикатором на данном инструменте (хотя, конечно, внутри индикатора может быть хитрая логика, что он просто запоминает весь набор инструментов, на которых он был включён сегодня, и подгружает данные по всем ним сам, независимо от текущего инструмента в ТТТ, но это изврат и тормоза, навряд ли так делалось)
Индикаторы
 
Цитата
Дмитрий Квази написал:
Вы мне просто ответьте на вопрос, для экономии ресурсов программа приостанавливает работу на не активных вкладках или нет? Это всё что мне нужно от вас узнать!
индикаторы на неактивных вкладках совершенно точно продолжают работать
Куда все подевались?
 
Тоже интересен этот вопрос. Неужели все торгуют через мобильные приложения и веб-интерфейсы брокеров?
Знаю, что частные фонды своих прогеров имеют, которым достаточно документации. Ещё заметил, что ТП ARQA периодически предлагает сразу на почту им писать про баги, поэтому часть обсуждений могла туда уйти.
Получить информацию об изменении цены активов с течением времени не в графическом виде
 
Например, если график открыт, нажать правой кнопкой мыши на свечке и выбрать "Сохранить данные в файл".
Получить историю параметра через CreateDataSource
 
Я на старте скрипта гружу что мне нужно, это же один раз делается. Ещё мне кажется, что сервер "привыкает" со временем, что клиент с таким-то ID хочет такие-то данные и будет отдавать их быстрее.
Получить историю параметра через CreateDataSource
 
Сначала надо сделать так, чтобы ParamRequest на этот параметр вернул true. Потом, после CreateDataSource, дождаться ненулевого размера (или повесить колбэк и получить первый вызов). Далее работа как со свечами.
Как на графике нарисовать свечу?
 
Конечно нет)
Баг: Заменить инструмент не работает если слишком много инструментов
 
Цитата
Karina Dmitrieva написал:
Здравствуйте, funduk.

Сообщение "Слишком много графиков. Возможно снижение производительности" возникает по причине того, что превышено ограничение на количество графических объектов, допустимых для одной
диаграммы.
Для устранения ошибки достаточно либо удалить ненужные графики из существующей диаграммы, либо добавлять новые в другое окно.
Можете добавить настройку для игнорирования этого ограничения? Никакого "железного" ограничения на количество графических объектов нет же, это искусственное ограничение квика.
Баг: Заменить инструмент не работает если слишком много инструментов
 
И да, можно ли проигнорировать это предупреждение и всё равно добавить инструмент/индикатор? Пока что он просто не добавляется и всё.

Ещё что-то из индикаторов поудалять, то всё равно не добавляется с той же ошибкой. Какое условие появление ошибки "Слишком много графиков"? Как отключить эту фигню?
Баг: Заменить инструмент не работает если слишком много инструментов
 
  1. Создаём график цены и объёма
  2. В окне редактирования настроек добавляем на него разные инструменты до тех пор, пока не вылезет окно с ошибкой:
    "Слишком много графиков.
    Возможно снижение производительности."
    В моём случае 5 областей, в каждой по инструменту и 5-6 индикаторов
  3. Закрываем окно настроек, нажимаем правой кнопкой мыши на цене любого инструмента и выбираем пункт "Заменить инструмент"
  4. Выбираем новый инструмент, нажимаем Ок и ничего не происходит (price не меняется на новый инструмент, как должна)
версия 11.1.4.2
Русские буквы выводятся аброкадаброй
 
Сохраняйте скрипт в кодировке Win1251, а не в UTF8
Удаление не используемых счетов и перенос настроек, Удаление не используемых счетов и перенос настроек
 
Вкладка, сохранённая в 10-м квике, правильно открывается в 11-м квике, и настройки таблиц в ней сохраняются.
Что изменилось в 11.1.1.11, что перестали приходить данные по CreateDataSource?
 
Цитата
Georgii написал:
Текст ошибки: " attempt to call a nil value (method 'size') "
Написано ясно - нет метода "size". Lua имеет регистрозависимый синтаксис, следует использовать "Size".
Глобальные переменные индикатора, не работает код индикатора на lua при попытке обратится к переменной объявленной в функции Init()
 
VuEma после конца первого прохода OnCalculate остаётся равным последнему значению. Из-за того, что проходов обычно три, следует всё изменяемое состояние индикатора инициализировать внутри условия по == 1.
Access Violation at adress и Unknown exception at adress, Прошу помощи с ошибкой Lua
 
Скомпилируйте с дебаг информацией и посмотрите стектрейс. Я так всегда и ловлю.
Quik ОЧЕНЬ долго загружается на виртуальной машине.
 
Цитата
Кирилл написал:
сделав файл info.log с нулевым размером и read-only
ого
а замеряли ли Вы, сколько это дало дополнительного прироста в сравнении с "просто перенести на рамдиск"?
SciTE
 
Цитата
Nikolay написал:
Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?
А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
Отчёт по всем сделкам клиента - ввод Кода инструмента, Фильтрация по Коду инструмента при создании отчёта
 
Всегда интересно было, что это за модуль генерации отчёта о всех сделках, и почему не все брокеры предоставляют его. У меня в БКС его нету. Какой у Вас брокер?
Мне приходится пользоваться "историей позиций"
Надо кое-что исправить в документации
 
достаточно запросить стакан на инструмент, на который не подписаны
Квик для тикера LQDT не показывает историю от 6 мая 2024
 
у брокера могут быть разные серверы квика для раздачи данных на приложение и на терминал
в таких случаях проблема почти всегда у брокера (может быть не на всех серверах)
Как определить Код класса (CLASSCODE) по коду инструмента (SECCODE)?
 
Через Winapi можно по идее скопировать все данные из окна, которое появляется по Alt+I.
Как определить Код класса (CLASSCODE) по коду инструмента (SECCODE)?
 
SearchItems по таблице securities даст инфу. В остальных таблицах и функциях типа getDepoEx (возвращающей инфу по таблице "4.15 Позиции по инструментам") будет sec_code только. Ну и из индикатора ещё можно получить...
Quik ОЧЕНЬ долго загружается на виртуальной машине.
 
Больше всего времени загрузки я экономлю, когда сокращаю архивные свечки в папке archive (удаляю вообще, или перезаказываю, или редактирую dat файлы так, чтобы остались только нужные свечи). 5 минут на ноуте это долго, если ноут современный. 5950х у меня загружает квик за 23 секунды при 30+ графиках (120-ти datasource, 60 индикаторов) и только что почищенном архиве, в котором остаётся не более 3000 свечек на график. Если не чистить неделю, загружает уже 33 секунды.
Я бы предложил посмотреть, не тупит ли чтение архивных свечей.
Индикатор уровней High, Low определенной свечи определенного таймфрейма
 
mbak, поясните,  пожалуйста, что на самом деле Вы хотите? "помочь в написании" одного  скрипта, или написать его за Вас,  или написать его за Вас и объяснить, почему именно так, а не иначе, или обучить части базовых основ  математики и программирования, необходимых для написания конкретно этого  скрипта? Могу предложить платную помощь  :smile:  
Индикатор уровней High, Low определенной свечи определенного таймфрейма
 
Конечно не работает, и даже ошибку пишет, что исправить. Перед началом каждого интересующего периода x должен быть инициализирован числом, не помешающим максимуму. Например, так.

Код
 if (t.hour < 16) or ((t.hour == 16) and (t.min < 30)) then x = nil end if (t.hour == 16) and (t.min >= 30) and (t.sec == 00) then x = math.max(x or 0, H(index)) end
Страницы: 1 2 3 4 След.
Наверх