wumu
6 天以前 7a29ce102ca45e5b7888e898073d7c1342a7d9e3
滑动窗口 排名
3个文件已修改
41 ■■■■■ 已修改文件
historydata.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
separateanalysis.cpp 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
separateanalysis.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
historydata.cpp
@@ -537,9 +537,9 @@
    }
    qDebug()<<log_days.size()<<log_days.back();
    QString time_trade = "2025-06-01";
    QString time_trade = "2019-01-01";
    if(log_days.size() > 1){
        time_trade = log_days.at(log_days.size() - 2); // 末尾倒数第二个更新
        //time_trade = log_days.at(log_days.size() - 2); // 末尾倒数第二个更新
        //time_trade = log_days.first(); // 从第一个开始更新
    }
    qDebug()<<"time_trade:"<<time_trade;
separateanalysis.cpp
@@ -33,6 +33,40 @@
}
void SeparateAnalysis::calcWindowRank()
{
    // 滑动窗口排名,6个要2+的前100
    QVector<int> ranks;
    for(int i=0;i<m_model->rowCount();++i){
        ranks.append(m_model->item(i,9)->text().toInt());
        if(i >= 6){
            // 先统计排名计数
            int cntBig=0, cntSmall=0;
            for(int j=0;j<ranks.size();++j){
                if(ranks.at(j) > 100){
                    cntBig++;
                }else{
                    cntSmall++;
                }
            }
            // 统计对比
            if(cntSmall == 2 && ranks.back() <= 100){
                // 将当前6个元素定为符合的窗口,背景色设置为紫色
                for(int k=0;k<6;++k){
                    m_model->item(i-k,9)->setData(QColor("red"),Qt::BackgroundColorRole);
                }
            }
            // 清除窗口第一个元素
            ranks.pop_front();
        }
    }
}
void SeparateAnalysis::initMySQL()
{
    //添加一个数据库
@@ -131,6 +165,8 @@
    qint64 need = QDateTime::currentMSecsSinceEpoch()-tt;
    ui->label_status->setText(QString("耗时:%1 毫秒,查询完成.条数: %2").arg(QString::number(need)).arg(QString::number(rows)));
    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    // 滑动窗口统计
    calcWindowRank();
}
separateanalysis.h
@@ -18,6 +18,7 @@
    ~SeparateAnalysis();
    void calcRankChange(); // 统计排名变化情况,主要统计当天比前一天的变化情况,和1的差值,达到0.90+ 说明可以买入观察了
    void calcWindowRank(); // 使用滑动窗口来统计排名变化情况,目标要6个有2个+前100名
private slots:
    void on_pushButton_search_clicked();
    void setNamesToCombo(QMap<QString,QString> &names);