From 696f5b6779bd1f904c2497bb29a1cc991ab0477a Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期一, 10 二月 2025 22:47:55 +0800 Subject: [PATCH] 250210 --- getstocklist.cpp | 68 ++++++++++++++++++++++++++++++++-- 1 files changed, 64 insertions(+), 4 deletions(-) diff --git a/getstocklist.cpp b/getstocklist.cpp index a0b32c2..ffd5dc6 100644 --- a/getstocklist.cpp +++ b/getstocklist.cpp @@ -8,6 +8,9 @@ #include <QJsonArray> #include <QLibrary> // 鐢ㄤ簬鍔犺浇dll鍔ㄦ�佸簱鐨勭被 + +#pragma execution_character_set("utf-8") + GetStockList::GetStockList(QWidget *parent) : QMainWindow(parent), ui(new Ui::GetStockList) @@ -20,6 +23,8 @@ // 濡傛灉https 璁块棶鐨勬椂鍊欙紝杩樻槸鐖彇澶辫触锛屽彲浠ヤ唬鐮佸姞杞藉姩鎬佸簱鏉ユ敮鎸� // 鍓嶆彁鏉′欢鏄妸2涓猟ll鍔ㄦ�佸簱鎷疯礉鐨勭敓鎴愮洰褰曚腑:libeay32.dll 鍜� ssleay32.dll // 鎷疯礉鍒扮敓鎴愮洰褰曪紝灏卞彲浠ョ洿鎺ュ姞杞� + // 鑻ユ槸msvc 64bit鐨勭紪璇戝櫒锛岄渶瑕佷笅杞藉搴斾綅鏁扮殑dll搴撴潵鎷疯礉鍗冲彲 -- openssl-1.0.2q-x64_86-win64.zip + QLibrary lb("libeay32.dll"); if(lb.load()){ qDebug()<<"load libeay32.dll 鎴愬姛"; @@ -172,6 +177,14 @@ m_getCodeTimer = new QTimer(this); connect(m_getCodeTimer,SIGNAL(timeout()),this,SLOT(getCodeSlot())); + // 鏀寔缂栬緫妗嗙殑妯$硦鍖归厤 + m_completer = new QCompleter(this); + m_completer->setModel(m_customModel); // 鍏宠仈鍖呭惈鎵�鏈夊尮閰嶅唴瀹圭殑妯″瀷鎴栬�呭瓧绗︿覆閾捐〃 + m_completer->setCaseSensitivity(Qt::CaseInsensitive); // 涓嶅尯鍒嗗ぇ灏忓啓 + m_completer->setCompletionMode(QCompleter::PopupCompletion); // 鑷姩鏄剧ず涓嬫媺妗� + m_completer->setFilterMode(Qt::MatchContains); // 鍓嶇紑鍖归厤銆佸寘鍚�佸悗缂� + ui->lineEdit_search->setCompleter(m_completer); // 鍏宠仈鍖归厤鐨勬帶浠� + } GetStockList::~GetStockList() @@ -257,6 +270,9 @@ m_model->appendRow(rowItems); } } + + // 鍙戝皠淇″彿 + emit sendCodeNames(m_codeNames); } @@ -395,6 +411,8 @@ double volume_rate = volume_cur / volume_old; if(volume_rate > 2){ qDebug()<<"搴曢儴鍙嶈浆绛栫暐:閲忚兘姣�"<<volume_rate<<code <<curDateTime<<"浠锋牸:" <<close; + QString info = QString("<font size=8 color=red> %4 搴曢儴鍙嶈浆绛栫暐:閲忚兘 鏃堕棿:%1 浠锋牸:%2 閲忚兘姣斿��=%3 </font>").arg(curDateTime).arg(close).arg(volume_rate).arg(code); + emit sendInfoMess(info); } } @@ -503,6 +521,7 @@ double ma30 = jArr.at(i).toArray().at(15).toVariant().toDouble(); double open = jArr.at(i).toArray().at(2).toVariant().toDouble(); + long long market_cap = jArr.at(i).toArray().at(22).toVariant().toLongLong(); double volume_rate = 0; if(i > 0){ // 璁$畻閲忚兘姣� @@ -514,8 +533,16 @@ if(ma5 >= open && ma10 >= open && ma20 >= open && ma30 >= open && ma5 <= close && ma10 <= close && ma20 <= close && ma30 <= close){ qDebug()<<"涓�闃崇┛鍥涚嚎:"<< code <<curDateTime<<" 浠锋牸:"<<close << "閲忚兘姣�:"<<volume_rate; - QString info = QString("<font size=8 color=red> %3 %4 涓�闃崇┛鍥涚嚎:%1 浠锋牸:%2 閲忚兘姣�:%5 鍛ㄦ湡:%6 </font>").arg(curDateTime).arg(close).arg(code).arg(m_codeNames[code]).arg(volume_rate).arg(m_dateType); - emit sendInfoMess(info); + if(volume_rate > 4){ + QString info = QString("<font size=8 color=blue> %3 %4 涓�闃崇┛鍥涚嚎:%1 浠锋牸:%2 閲忚兘姣�:%5 鍛ㄦ湡:%6 甯傚��:%7浜�</font>").arg(curDateTime).arg(close).arg(code).arg(m_codeNames[code]).arg(volume_rate) + .arg(m_dateType).arg(market_cap/100000000.0); + emit sendInfoMess(info); + }else{ + QString info = QString("<font size=8 color=red> %3 %4 涓�闃崇┛鍥涚嚎:%1 浠锋牸:%2 閲忚兘姣�:%5 鍛ㄦ湡:%6 甯傚��:%7浜�</font>").arg(curDateTime).arg(close).arg(code).arg(m_codeNames[code]).arg(volume_rate) + .arg(m_dateType).arg(market_cap/100000000.0); + emit sendInfoMess(info); + } + } } @@ -810,7 +837,7 @@ */ qDebug()<<"鎵ц搴曢儴鍙嶈浆绛栫暐"; - emit sendInfoMess("<font size=12 color=pink>鎵цMACD绛栫暐 </font>"); + emit sendInfoMess("<font size=12 color=pink>鎵ц搴曢儴鍙嶈浆绛栫暐 </font>"); int curRow = ui->tableView->currentIndex().row(); // QString symbol = m_model->item(curRow,1)->text(); @@ -865,7 +892,7 @@ QString symbol = m_customModel->data(m_customModel->index(curRow,1)).toString(); qint64 begin = QDateTime::currentMSecsSinceEpoch(); // 鍙栧綋鍓嶆椂闂存埑 int numsCnt = 200; - QString urlStr = QString("https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=%1&begin=%2&period=%4&type=before&count=-%3&indicator=kline,macd,ma,boll").arg(symbol).arg(begin).arg(numsCnt).arg(m_dateType); + QString urlStr = QString("https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=%1&begin=%2&period=%4&type=before&count=-%3&indicator=kline,macd,ma,boll,market_capital").arg(symbol).arg(begin).arg(numsCnt).arg(m_dateType); qDebug()<<urlStr; qDebug()<<"褰撳墠鑲$エ:"<<symbol<<m_customModel->data(m_customModel->index(curRow,0)).toString(); // 涓嬩竴姝ュ氨鏄牴鎹畊rl璇锋眰鍒扮殑鏁版嵁锛岃繘琛屽垎鏋� @@ -925,3 +952,36 @@ } } } + +void GetStockList::on_pushButton_filterCap_clicked() +{ + double begin = ui->lineEdit_beginCap->text().toDouble(); + double end = ui->lineEdit_endCap->text().toDouble(); + int rows = m_customModel->rowCount(); + for(int i=rows - 1;i > 0;--i){ + double allCap = m_customModel->data(m_customModel->index(i,2)).toDouble(); + if( allCap < begin || allCap > end){ + m_customModel->removeRow(i); + } + } +} + +void GetStockList::on_pushButton_search_clicked() +{ + ui->tableView->clearSelection(); + QString condition = ui->lineEdit_search->text(); + for(int i =0;i<m_customModel->rowCount();++i){ + if(m_customModel->data(m_customModel->index(i,0)).toString() == condition + || m_customModel->data(m_customModel->index(i,1)).toString() == condition) + { + //ui->tableView->setCurrentIndex(m_customModel->index(i,0)); + ui->tableView->selectRow(i); + break; + } + } +} + +void GetStockList::on_lineEdit_search_returnPressed() +{ + on_pushButton_search_clicked(); +} -- Gitblit v1.8.0