#include "StockDataReader.h"
#include <QtSql>
#include <QApplication>
#include <QString>
#include "../StockAnalyse/StockAnalyse_global.h"
#include "../StockAnalyse/stockanalyse.h"
// 静态成员变量需要在类体的外面进行初始化
//StocksDataReader* StocksDataReader::m_pInstance = NULL;
StocksDataReader* StocksDataReader::m_pInstance=NULL;
QMutex StocksDataReader::m_Mutex;
static QString strhttp_kline = "https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=";
//绘制实时的分时图需要下列两个网址相结合,腾讯的网址获取今日的历史分时图,新浪的网址实时的该股票行情,进行对今日分时图刷新
//http://data.gtimg.cn/flashdata/hushen/minute/sz000001.js?maxage=110&0.28163905744440854
static QString strhttp_realtime = "http://hq.sinajs.cn/list=";
static QString strhttp_timeline = "http://data.gtimg.cn/flashdata/hushen/minute/";
static QString strhttp_4daytimeline = "http://data.gtimg.cn/flashdata/hushen/4day/"; //+sz/或sh/
//https://web.ifzq.gtimg.cn/appstock/app/minute/query?code=sh600519 //新的链接
static QString strhttp_timeline_new = "https://web.ifzq.gtimg.cn/appstock/app/minute/query?code=";
static QString strhttp_4daytimeline_new = "https://web.ifzq.gtimg.cn/appstock/app/day/query?code=";
//获取最新行情
static QString strhttp_realtime_all = "http://qt.gtimg.cn/q=";//sh600000,sz000001 sh500038 //可以选这个数据多,不用计算可以直接用
//获取实时资金流向
//http://qt.gtimg.cn/q=ff_sh600519
//参考链接https://www.jianshu.com/p/e14b01990ff4
static QString strhttp_realtimemoney = "http://qt.gtimg.cn/q=";
//获取简要信息
//http://qt.gtimg.cn/q=s_sh600519,s_sh600000,s_sz000001
//获取港股最新行情
//http://qt.gtimg.cn/q=r_hk09988
//获取美股最新行情
//http://qt.gtimg.cn/?q=s_usBABA
//一些链接
// https://www.cnblogs.com/jackljf/p/3589216.html
//获取所有股票代码 (sign会不定期调整)
//http://api.k780.com/?app=finance.stock_list&category=hs&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
static QString strhttp_allSharescode = "http://api.k780.com/?app=finance.stock_list&category=hs&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json";
//参考文章
//https://blog.csdn.net/dangfm/article/details/25079471
//获取股票的交易明细(p为分页,每页70条数据)
//https://stock.gtimg.cn/data/index.php?appn=detail&action=data&c=sz002451&p=0
//返回的格式: v_detail_data_sz002451=[0,"0/09:25:01/6.21/0.01/20/12420/B|1/09:30:01/6.25/0.04/81/50621/B]
static QString strhttp_tradeDetail = "https://stock.gtimg.cn/data/index.php?appn=detail&action=data&c=";
StocksDataReader::StocksDataReader()
{
manager = new QNetworkAccessManager(this);
qDebug() << manager->supportedSchemes();
m_SharesCodelist = new QVariantList();
m_templist = new QVariantList();
m_timelinelist = new QVector<QStringList>;
m_pMap5DayTimeLine = new QMap<QString,QVector<QStringList>*>();
//m_AllRealtimelist = new QVector<QStringList>;
m_SharesOlderList = new QMap<int,QVector<SharesOlderData>*>();
m_AllRealtimeMoneylist = new QVector<QStringList>;
m_timer = new QTimer(this);
connect(m_timer, &QTimer::timeout, this, [=](){
if(m_SharesAllCode.size()> 0){
PreGetAllRealtimeData(m_SharesAllCode);
PreGetAllRealtimeMoney(m_SharesAllCode);
//qDebug()<<"实时刷新正在运行...";
}
});
m_timer->start(1000);
m_currentPage = 0;
m_bGetDetailFinished = false;
m_currentIndex = 0;
m_bGetAllKLineStart = false;
m_bGetAllKLineFinished = false;
}
void StocksDataReader::StartWorking()
{
qDebug()<<"StocksDataReader"<<QThread::currentThread();
//得到所有的股票代码(有两种方式1.本地数据库 2.http方式)
//StartGetAllSharesCodeFromHttp(m_SharesCodelist);
//用于搜索框的数据源
//StartGetKLineDataFromHttp("sz000001",TYPE_DAY_KLINE,-1,m_templist);
GetAllSharesCodeFromDB();
getChooseSharelistFromDB();
//必须要m_SharesAllCode中已经插入所有股票代码
//PreGetAllRealtimeData(m_SharesAllCode);
//
// StartGetTimelineDataFromHttp("sz000001" ,m_timelinelist);
//
// StartGetTradeDetailFromHttp("sz002425",0);
//腾讯的最新获取分时线方法
//StartGetRealtimeDataFromHttp_new("sz000001" ,m_timelinelist);
//ReadAllKLineFromLocalFile();
}
void StocksDataReader::Running(QString strcode)
{
//先要清除相关容器
StartGetKLineDataFromHttp(strcode,TYPE_DAY_KLINE,-1,m_templist);
//StartGetTimelineDataFromHttp(strcode ,m_timelinelist);
StartGetTimelineDataFromHttp_new(strcode ,m_timelinelist);
StartGetTimelineData_5DayFromHttp_new(strcode,m_pMap5DayTimeLine);
//交易明细
PreGetTradeDetail(strcode);
}
//
void StocksDataReader::SetFlashStatus(bool flag)
{
if(flag){
//qDebug()<<"开市了";
if(!m_timer->isActive())
{
qDebug()<<m_timer->isActive()<<"开启定时任务获取实时数据";
m_timer->start(1000);
}
}else{
// qDebug()<<"还没开市!";
if(m_timer->isActive())
{
qDebug()<<"关闭定时获取实时数据任务";
m_timer->stop();
}
}
// m_timer->start(1000);
}
void StocksDataReader::UpdateAllCodeFromHttpToDB()
{
//m_SharesCodelist函数内没用到
//qDebug()<<__FUNCTION__;
StartGetAllSharesCodeFromHttp(m_SharesCodelist);
}
StocksDataReader::~StocksDataReader()
{
manager->deleteLater();
}
void StocksDataReader::StartGetKLineDataFromHttp(QString SharesCode,int type,int num,QVariantList* list)
{
QNetworkRequest request;
// 发送https请求前准备工作;
QSslConfiguration config;
QSslConfiguration conf = request.sslConfiguration();
conf.setPeerVerifyMode(QSslSocket::VerifyNone);
conf.setProtocol(QSsl::TlsV1SslV3);
request.setSslConfiguration(conf);
QString strType,strCode,strNum;
switch(type){
case TYPE_5MIN_KLINE:
strType = "5";
break;
case TYPE_10MIN_KLINE:
strType = "10";
break;
case TYPE_10DAY_KLINE:
strType = "2400";
break;
case TYPE_5DAY_KLINE:
strType = "1200";
break;
case TYPE_15MIN_KLINE:
strType = "15";
break;
case TYPE_30MIN_KLINE:
strType = "30";
break;
case TYPE_60MIN_KLINE:
strType = "60";
break;
case TYPE_DAY_KLINE:
strType = "240";
break;
default:
strType = "240";
break;
}
strNum = QString::number(num);
//默认5,10,20,30均线都请求
request.setUrl(QUrl(strhttp_kline+SharesCode+"&scale="+strType+"&ma=5,10,20,30"+"&datalen="+strNum)); //
//start
QNetworkReply *pReply = manager->get(request);
connect(pReply , SIGNAL(finished()) , this , SLOT(onFinished_GetKLine()));
connect(pReply , SIGNAL(error(QNetworkReply::NetworkError)) , this , SLOT(onError_GetKLine(QNetworkReply::NetworkError)));
}
void StocksDataReader::StartGetAllKLineDataFromHttp()
{
m_currentCodeforAllKLine = m_SharesAllCode.at(m_currentIndex);
m_bGetAllKLineStart = true;
StartGetKLineDataFromHttp(m_currentCodeforAllKLine,TYPE_DAY_KLINE,-1,m_templist);//通过改第三个参数来决定获得多少天的数据
}
void StocksDataReader::StartGetRealtimeDataFromHttp(QString SharesCode, QVector<QStringList> *list)
{
}
//新的腾讯分时api
void StocksDataReader::StartGetTimelineDataFromHttp_new(QString SharesCode, QVector<QStringList> *list)
{
QNetworkRequest request;
// 发送https请求前准备工作;
QSslConfiguration config;
QSslConfiguration conf = request.sslConfiguration();
conf.setPeerVerifyMode(QSslSocket::
没有合适的资源?快使用搜索试试~ 我知道了~
shares 和stockAnalyse
共82个文件
h:34个
cpp:32个
ui:8个
需积分: 26 19 下载量 158 浏览量
2022-09-29
22:33:53
上传
评论
收藏 232KB ZIP 举报
温馨提示
shares 是https://blog.csdn.net/gws09876/article/details/118714042文章的源码程序,包含了界面和开放的股票数据解析,实现了文章展示的效果,图表使用的是qchart
资源详情
资源评论
资源推荐
收起资源包目录
shares和StockAnalyse.zip (82个子文件)
shares和StockAnalyse
StockAnalyse
stockanalyse.h 813B
StockAnalyse.pro 521B
stockanalyse.cpp 1KB
.DS_Store 6KB
StockAnalyse.pro.user 24KB
Types.h 9KB
StockAnalyse_global.h 258B
shares
DetailWidget.h 640B
SharesCallout.h 3KB
MoreInfoDlg.cpp 222B
SearchItemDelegate.cpp 5KB
MoreInfoDlg.ui 712B
OlderItemDelegate.cpp 2KB
SerachListWidget.h 1KB
HQ5DayTimeLineView.h 1KB
DetailItemDelegate.h 529B
ChooseTableviewItemDelegate.cpp 11KB
HQTimeLineView.cpp 23KB
CustomTabStyle.cpp 3KB
AnalyseListWidget.ui 3KB
RecommendTableview.h 612B
StockDataReader.h 7KB
BottomBar.h 385B
shares.pro 3KB
CustomTableModelMoney.h 1KB
CustomTableModelKLine.h 1KB
RecommendTableviewDelegate.h 1KB
SerachListWidget.cpp 7KB
RecommendTableview.cpp 391B
SerachListWidget.ui 845B
olderinfo.h 649B
CustomTableModelTimeLine.h 1KB
AnalyseListWidget.h 1KB
MoreInfoDlg.h 297B
HQMoneyView.h 1KB
BottomBar.cpp 1KB
.DS_Store 12KB
HQKLineView.h 3KB
ChooseTableviewItemDelegate.h 2KB
DetailItemDelegate.cpp 2KB
CustomTableModelTimeLine.cpp 4KB
DetailWidget.cpp 3KB
PinYinHelper.h 331B
CustomTabStyle.h 458B
DetailWidget.ui 812B
RecommendTableviewModel.cpp 4KB
SharesCallout.cpp 8KB
database.db 256KB
CustomTableModelMoney.cpp 3KB
RecommendTableviewModel.h 2KB
HQMoneyView.cpp 5KB
main.cpp 335B
mainwindow.ui 2KB
SearchItemDelegate.h 784B
olderinfo.ui 2KB
mainwindow.cpp 10KB
mainwindow.h 2KB
CustomTableModelVolume.h 1KB
ChooseTableview.h 587B
HQKLineView.cpp 31KB
ChartHeadbar.h 446B
AnalyseListWidget.cpp 8KB
ChooseTableviewmodel.cpp 9KB
HQ5DayTimeLineView.cpp 4KB
NtpApi.h 720B
HQTimeLineView.h 3KB
RecommendTableviewDelegate.cpp 2KB
Types.h 9KB
shares.pro.user 24KB
olderinfo.cpp 3KB
CustomTableModelVolume.cpp 4KB
BottomBar.ui 2KB
ChooseTableview.cpp 1KB
StockDataReader.cpp 37KB
ChartHeadbar.ui 9KB
ChartHeadbar.cpp 2KB
CustomTableModelKLine.cpp 8KB
OlderItemDelegate.h 524B
PinYinHelper.cpp 2KB
ChooseTableviewmodel.h 3KB
NtpApi.cpp 2KB
.DS_Store 8KB
共 82 条
- 1
gws09876
- 粉丝: 33
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0