Комментарии к постам igor12
igor12, архитектура — она же под задачу. Для какой-то задачи нужен код на 10тыс строк, для другой достаточно простого скрипта на питоне. Апи использую разные — финам транзак, алор, тинь, исс биржи.
Демо не рекомендую юзать нигде — только для первого шага — проверить коннект, а дальше надо брать маркетдату с подключения на реальный счет. На демо часто бывают странные особенности, с которыми никогда не столкнешься на реальном счете.
igor12, тогда тем более всё проще, чем кажется. На пяти минутах и выше история за пару лет это несколько сотен тысяч свечей, они спокойно живут в обычном sqlite на диске. Тиковый поток не нужен, перекачивать всё заново при каждом старте тоже. Один раз залили историю с ISS, дальше дописываете свежие свечи по мере закрытия.
Квик в такой схеме отдаёт только последнюю свечу, и его капризы вас уже не касаются.
igor12, имхо — вместо того, чтобы для еды купить в любом магазине удобные ложки из нержавейки за копейки, Вы пытаетесь следовать практикам предков, поехать на реку, наловить моллюсков, вычистить створки, привязать палочки и сделать ложки. Не в обиду, первая пришедшая на ум аналогия.
Потерзайте оупенкоде с хорошей моделью, программа простая, разобраться можно за день начинающему. Это окупится. И про оптимальную архитектуру расскажет и скрипты напишет. Луа не пробовал, но на питоне и сишарпе код генерится хорошего уровня, при качественном техзадании.
igor12, риск тут как раз наоборот падает. Локальная база лежит у вас на диске, и если ISS сегодня недоступен или квик отвалился, вы всё равно считаете на том, что уже скачано. Останавливает всё обратная схема, когда источник данных и есть живой поток.
Язык вторичен, C# с луа ничем не хуже питона. Важно только чтобы история хранилась отдельно от терминала, а не запрашивалась заново каждый раз.
На каком таймфрейме гоняете? На минутках свои радости с пропусками баров, там и схема другая.
ИИ попробуйте поинтереснее, алиса опаздывает от хороших моделей, думаю — на год, а реально хорошие иностранные модели появились примерно весной. Модели последних недель еще более продвинуты. Доступ к моделям, например — через кодикроутер, цена апи чуть выше оригинала, не нужен впн, оплата в рублях. Поставьте opencode, подключите в него хорошие модели и терзайте. Самый свежий флэш дипсик хорош и стоит копейки — отлично для генерации, ненапряжно генерить сотни миллионов токенов. Затем проверять результат другой моделью.
И странным выглядит желание принципиально получать данные именно через квик, проще через любого брокера с нормальным апи брать данные и заливать в базу, как вариант — просто дергать запрос по таймеру.
KuzmaShevelev, про базу согласен, csv держится ровно до первого вопроса «дай май 2023 по трём тикерам». Но главная причина даже не в запросах. Квик при переподключении отдаёт кусок свечей внахлёст с тем, что уже забрали, и в csv это дубли, которые потом ловишь глазами. В sqlite уникальный индекс по (тикер, таймфрейм, дата) плюс INSERT OR REPLACE, и дубль физически не ляжет. Файл нормален только когда один инструмент, один таймфрейм и дописываешь строго в хвост.
Мысль про «грабли» я бы перевернул. Терминал это не архив, а кран с текущим потоком. Квик отдаёт ровно то, что лежит в датасорсе, на демо тем более, и никакая обёртка это не обойдёт. Своё локальное хранилище тут не костыль, а нормальная схема: один раз забрали N свечей при старте, дальше дописываете новые по мере прихода.
Отдельный луа-скрипт для этого не нужен. QuikPy и так разговаривает с QuikSharp.lua, свечи запрашиваются из питона и сразу кладутся в свой файл, csv или sqlite, что привычнее. Два процесса с обменом через csv, который вы описали, это как раз лишнее звено.
И я бы разделил задачу. История для расчётов и бэктеста берётся с ISS Мосбиржи, он открытый и бесплатный, дневки и часовки тянутся вообще без терминала. Квик оставить на живые данные и заявки. Тогда «демо не даёт сохранять историю» перестаёт быть проблемой в принципе.
Про ИИ отдельно: на квике и луа он врёт особенно уверенно, материала в обучении мало, и он спокойно выдумывает функции которых нет. Просите куски строк по двадцать и сверяйте имена методов с исходниками библиотеки. Целиком сгенерированный скрипт вы будете отлаживать дольше, чем писали бы руками.