SQL запрос в SQLite - страница 10

 
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
 
prostotrader #:

Привет!

А что не так с запросом "Выбрать запись с максимальным sess_id" ?

Ругается на order
Select max(sessi_id) from ....
 
Yuriy Zaytsev #:
Select max(sessi_id) from ....

Спасибо, но так выдается только одна колонка sess_id

 

Юрий!

Сейчас я выбираю стакан так

FDQuery.Open('select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 28547');

А как добавить сортировку по полю "price", чтобы первая запись имела самую большую цену?

 
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 

 
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

Не помогает

 
prostotrader #:

Работает,  но появилась другая проблема, ордера sell (dir = 2) и ордера buy (dir=1) расположены

в разнобой, тогда как в стакане сначала (сверху) должны располагаться ордера sell (dir = 2) от более

большой цены к маленькой

Нет ли смысла ордера на покупку и на продажу получать двумя разными запросами?

 
JRandomTrader #:

Нет ли смысла ордера на покупку и на продажу получать двумя разными запросами?

2 запроса - двойное "отжирание" времени, но я решил проблему

переставив местами сортировку, теперь стакан правильный

select * from FORTS_AGGR5_REPLorders_aggr where sess_id = 11025 and isin_id = 1218393 order by dir desc, price desc


Но нужно еще проверить, как будет с отрицательными ценами...
 
prostotrader #:
2 запроса - двойное "отжирание" времени, но я решил проблему

Это если стакан надо только показать, причём целиком.

А если с этими ордерами надо потом работать... Или вся работа в принципе на SQL возложена?

 
JRandomTrader #:

Это если стакан надо только показать, причём целиком.

А если с этими ордерами надо потом работать... Или вся работа в принципе на SQL возложена?

SQLite - выполняет роль хранилища данных, обеспечивая одновременный доступ к данным из других тредов.

Синхронизация происходит с помощью транзакций соединений базы (основное соединение - наполняет базу, клон-соединения - забирают данные).

Поэтому нужно максимально ограничить кол-во запросов к базе клон-соединениями. Я пишу универсальный коннектор, НЕ ПОД ОДНУ, конкретную задачу,

поэтому данные у каждого робота должны быть максимально возможными.

Одним запросом я получаю готовый стакан. Сейчас, во время разработки, база хранится на диске, в боевом режиме база будет в памяти,

что позволит работать очень быстро

Добавлено

Каждое дочернее окно 

Это локальная копия необходимых для торговли данных, полученных из базы.

Робот- это плагин DLL, в которой хранится логика работы советника.

Таким образом, получается универсальный мини-терминал, заточенный под торговлю роботами.

Т.е каждое дочернее окно это независимый робот (как в МТ5), только без графики и прочих (не нужных для торговли роботами)

"наворотов" с очень быстрым соединением через Плаза 2

Общая концепция здесь

https://www.mql5.com/ru/forum/434155/page42#comment_50902544

Нужна помощь профессионального программиста - Мне нужны стратегии, чтобы обрабатывать каждый инструмент в своем потоке.
Нужна помощь профессионального программиста - Мне нужны стратегии, чтобы обрабатывать каждый инструмент в своем потоке.
  • 2023.12.02
  • www.mql5.com
Если Вы открыли какой-либо инструмент это отдельный поток для каждого инструмента. Поэтому каждый инструмент работает со своим снепшотом данных и никак не связан с другими инструментами. И само хранилище никак не связано с инструментами
Причина обращения: