SQL запрос в SQLite - страница 10 1...34567891011121314151617 Новый комментарий prostotrader 2023.12.16 19:10 #91 Maxim Kuznetsov #: where лишний или условие после него потерялось :-) Спасибо, решено select * from FORTS_REFDATA_REPLsession where sess_id order by sess_id desc limit 1 А лучше, наверное так select * from FORTS_REFDATA_REPLsession order by sess_id desc limit 1 Yuriy Zaytsev 2023.12.16 20:04 #92 prostotrader #: Привет! А что не так с запросом "Выбрать запись с максимальным sess_id" ? Ругается на orderSelect max(sessi_id) from .... prostotrader 2023.12.16 21:15 #93 Yuriy Zaytsev #: Select max(sessi_id) from .... Спасибо, но так выдается только одна колонка sess_id prostotrader 2023.12.16 23:24 #94 Юрий! Сейчас я выбираю стакан так FDQuery.Open('select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547'); А как добавить сортировку по полю "price", чтобы первая запись имела самую большую цену? Yuriy Zaytsev 2023.12.17 06:41 #95 prostotrader #: select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547 select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547 order by price DESC сортировка по убывванию DESC prostotrader 2023.12.17 13:24 #96 Yuriy Zaytsev #: сортировка по убывванию DESC Спасибо! Работает, но появилась другая проблема, ордера sell (dir = 2) и ордера buy (dir=1) расположены в разнобой, тогда как в стакане сначала (сверху) должны располагаться ордера sell (dir = 2) от более большой цены к маленькой Такой запрос select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 1218393 order by price desc, dir desc Не помогает Выбрать тикет 2-х позиций Объясните мне зачем и Любой вопрос новичка, чтоб JRandomTrader 2023.12.17 14:08 #97 prostotrader #: Работает, но появилась другая проблема, ордера sell (dir = 2) и ордера buy (dir=1) расположены в разнобой, тогда как в стакане сначала (сверху) должны располагаться ордера sell (dir = 2) от более большой цены к маленькой Нет ли смысла ордера на покупку и на продажу получать двумя разными запросами? prostotrader 2023.12.17 14:13 #98 JRandomTrader #: Нет ли смысла ордера на покупку и на продажу получать двумя разными запросами? 2 запроса - двойное "отжирание" времени, но я решил проблему переставив местами сортировку, теперь стакан правильный select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 1218393 order by dir desc, price desc Но нужно еще проверить, как будет с отрицательными ценами... JRandomTrader 2023.12.17 14:16 #99 prostotrader #: 2 запроса - двойное "отжирание" времени, но я решил проблему Это если стакан надо только показать, причём целиком. А если с этими ордерами надо потом работать... Или вся работа в принципе на SQL возложена? prostotrader 2023.12.17 14:23 #100 JRandomTrader #: Это если стакан надо только показать, причём целиком. А если с этими ордерами надо потом работать... Или вся работа в принципе на SQL возложена? SQLite - выполняет роль хранилища данных, обеспечивая одновременный доступ к данным из других тредов. Синхронизация происходит с помощью транзакций соединений базы (основное соединение - наполняет базу, клон-соединения - забирают данные). Поэтому нужно максимально ограничить кол-во запросов к базе клон-соединениями. Я пишу универсальный коннектор, НЕ ПОД ОДНУ, конкретную задачу, поэтому данные у каждого робота должны быть максимально возможными. Одним запросом я получаю готовый стакан. Сейчас, во время разработки, база хранится на диске, в боевом режиме база будет в памяти, что позволит работать очень быстро Добавлено Каждое дочернее окно Это локальная копия необходимых для торговли данных, полученных из базы. Робот- это плагин DLL, в которой хранится логика работы советника. Таким образом, получается универсальный мини-терминал, заточенный под торговлю роботами. Т.е каждое дочернее окно это независимый робот (как в МТ5), только без графики и прочих (не нужных для торговли роботами) "наворотов" с очень быстрым соединением через Плаза 2 Общая концепция здесь https://www.mql5.com/ru/forum/434155/page42#comment_50902544 Нужна помощь профессионального программиста - Мне нужны стратегии, чтобы обрабатывать каждый инструмент в своем потоке. 2023.12.02 www.mql5.com Если Вы открыли какой-либо инструмент это отдельный поток для каждого инструмента. Поэтому каждый инструмент работает со своим снепшотом данных и никак не связан с другими инструментами. И само хранилище никак не связано с инструментами Нужна помощь профессионального программиста Класс CTrie fast Обсуждение статьи "SQLite: нативная 1...34567891011121314151617 Новый комментарий
where лишний или условие после него потерялось :-)
Спасибо, решено
А лучше, наверное так
select * from FORTS_REFDATA_REPLsession order by sess_id desc limit 1Привет!
А что не так с запросом "Выбрать запись с максимальным sess_id" ?
Ругается на orderSelect max(sessi_id) from ....
Спасибо, но так выдается только одна колонка sess_id
Юрий!
Сейчас я выбираю стакан так
FDQuery.Open('select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547');А как добавить сортировку по полю "price", чтобы первая запись имела самую большую цену?
select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547
select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547 order by price DESCсортировка по убывванию DESC
сортировка по убывванию DESC
Спасибо!
Работает, но появилась другая проблема, ордера sell (dir = 2) и ордера buy (dir=1) расположены
в разнобой, тогда как в стакане сначала (сверху) должны располагаться ордера sell (dir = 2) от более
большой цены к маленькой
Такой запрос
Не помогает
Работает, но появилась другая проблема, ордера sell (dir = 2) и ордера buy (dir=1) расположены
в разнобой, тогда как в стакане сначала (сверху) должны располагаться ордера sell (dir = 2) от более
большой цены к маленькой
Нет ли смысла ордера на покупку и на продажу получать двумя разными запросами?
Нет ли смысла ордера на покупку и на продажу получать двумя разными запросами?
2 запроса - двойное "отжирание" времени, но я решил проблему
переставив местами сортировку, теперь стакан правильный

Но нужно еще проверить, как будет с отрицательными ценами...2 запроса - двойное "отжирание" времени, но я решил проблему
Это если стакан надо только показать, причём целиком.
А если с этими ордерами надо потом работать... Или вся работа в принципе на SQL возложена?
Это если стакан надо только показать, причём целиком.
А если с этими ордерами надо потом работать... Или вся работа в принципе на SQL возложена?
SQLite - выполняет роль хранилища данных, обеспечивая одновременный доступ к данным из других тредов.
Синхронизация происходит с помощью транзакций соединений базы (основное соединение - наполняет базу, клон-соединения - забирают данные).
Поэтому нужно максимально ограничить кол-во запросов к базе клон-соединениями. Я пишу универсальный коннектор, НЕ ПОД ОДНУ, конкретную задачу,
поэтому данные у каждого робота должны быть максимально возможными.
Одним запросом я получаю готовый стакан. Сейчас, во время разработки, база хранится на диске, в боевом режиме база будет в памяти,
что позволит работать очень быстро
Добавлено
Каждое дочернее окно
Это локальная копия необходимых для торговли данных, полученных из базы.
Робот- это плагин DLL, в которой хранится логика работы советника.
Таким образом, получается универсальный мини-терминал, заточенный под торговлю роботами.
Т.е каждое дочернее окно это независимый робот (как в МТ5), только без графики и прочих (не нужных для торговли роботами)
"наворотов" с очень быстрым соединением через Плаза 2
Общая концепция здесь
https://www.mql5.com/ru/forum/434155/page42#comment_50902544