add QbreathingLight Class

This commit is contained in:
2025-08-22 10:59:38 +08:00
parent e3f9abfd97
commit 4bf7977a30
15 changed files with 219 additions and 8 deletions

View File

@@ -72,6 +72,8 @@ bool QBigOrderManager::addBigOrder(const BigOrderInfo &order)
locker.unlock(); // <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>ٷ<EFBFBD><D9B7>ź<EFBFBD>
emit bigOrderAdded(order);
emit markBigOrderSignal();
return true;
}

View File

@@ -38,6 +38,8 @@ signals:
//void bigOrdersUpdated();
void saveOverRefreshView();
void markBigOrderSignal();
protected:
explicit QBigOrderManager(QObject *parent = nullptr);
~QBigOrderManager();

View File

@@ -197,7 +197,13 @@ void QBigOrderViewer::updateView()
rowItems << new QStandardItem(QString::number(std::fabs(order->volume/1000)) + "K");
rowItems << new QStandardItem(QString::number(order->price, 'f', 2));
rowItems << new QStandardItem(QString::number(order->level));
rowItems << new QStandardItem(order->svrRecvTime.mid(12));
QString str = order->svrRecvTime.mid(11);
if (str == nullptr)
{
QDateTime dateTime = QDateTime::currentDateTime();
str = dateTime.toString("hh:mm:ss");
}
rowItems << new QStandardItem(str);
m_model->appendRow(rowItems);
}
}
@@ -247,7 +253,13 @@ void QBigOrderViewer::setRowData(int row, QSharedPointer<BigOrderInfo> order)
QString::number(order->price, 'f', 2));
m_model->setData(m_model->index(row, 5),
QString::number(order->level));
m_model->setData(m_model->index(row, 6), order->svrRecvTime);
QString str = order->svrRecvTime.mid(11);
if (str == nullptr)
{
QDateTime dateTime = QDateTime::currentDateTime();
str = dateTime.toString("hh:mm:ss");
}
m_model->setData(m_model->index(row, 6), str);
}
bool QBigOrderViewer::matchesFilter(QSharedPointer<BigOrderInfo> order)

View File

@@ -6,6 +6,7 @@
#include <QFileDialog>
#include <QTextStream>
#include <QCoreApplication>
#include <QDateTime>
#include <QDebug>
@@ -121,7 +122,13 @@ void QHistoryOrderDialog::loadOrdersForDate(const QDate &date)
rowItems << new QStandardItem(QString::number(std::fabs(order->volume / 1000)) + "K");
rowItems << new QStandardItem(QString::number(order->price, 'f', 2));
rowItems << new QStandardItem(QString::number(order->level));
rowItems << new QStandardItem(order->svrRecvTime.mid(12));
QString str = order->svrRecvTime.mid(11);
if (str == nullptr)
{
QDateTime dateTime = QDateTime::currentDateTime();
str = dateTime.toString("hh:mm:ss");
}
rowItems << new QStandardItem(str);
m_model->appendRow(rowItems);
}

View File

@@ -92,10 +92,9 @@ QVector<BigOrderInfo> QOrderProcessor::findMaxVolumeItem(const OrderBookData & d
for (int i = 0; i < items.size(); i++) {
// 同一个价格挡位的订单中股票数量大于,阈值才有可能是大单
if (volume < items[i].volume) {
for (int j = 0; j< items[i].orderCount; j++)
for (int j = 0; j< items[i].details.size(); j++) // 超过list的最大数量就不会返回数据了
{
try {
if (items[i].details.size() == 0) continue;
if (volume < items[i].details[j].volume)
{
findBigOrder = true;
@@ -124,10 +123,9 @@ QVector<BigOrderInfo> QOrderProcessor::findMaxVolumeItem(const OrderBookData & d
for (int i = 0; i < items.size(); i++) {
// 同一个价格挡位的订单中股票数量大于,阈值才有可能是大单
if (volume < items[i].volume) {
for (int j = 0; j< items[i].orderCount; j++)
for (int j = 0; j< items[i].details.size(); j++)
{
try {
if (items[i].details.size() == 0) continue;
if (volume < items[i].details[j].volume)
{
findBigOrder = true;