1. 数据结构及存储
有关股票的数据结构都在工程StkLib中定义。
其中StKLib/Include/Stock.h中定义了如下结构和类:
1) KDATA结构
K线数据结构,如果是日线,则日期,开盘价,最高价,最低价,收盘价几个信息。
CKData类是KDATA结构的数组形式及一些操作。例如:技术图表界面中的K线图就是依据
这个类画的。
CKData类里面有三个标志变量,
int m_nKType; 记录这个数组是日线,周线,5分钟线等,见CKData::KTypes
枚举类型。
int m_nCurFormat; 记录K线的复权状态,见CKData::Formats枚举类型。
formatOriginal不复权,formatXDRup向上复权,
formatXDRdown向下复权。
int m_nCurMaindataType; 记录主数据类型,见CKData::MaindataTypes枚举类型。
例如:如果是mdtypeAverage,则MaindataAt(...)函数
返回的就是平均价。
K线数据在磁盘上的存储,与钱龙,核新格式兼容,每只股票一个文件。磁盘上日线,
周线,月线的数据格式是源文件StkLib\Src\Qianlong.h中定义的结构QL_Data_day的简单
重复,从文件头开始至文件尾都是这个结构,有多少个就说明有多少个数据。同样,5分
钟,15分钟,30分钟,60分钟线的结构是源文件StkLib\Src\Qianlong.h中的QL_Data_5min。
装载K线数据时,自动转换成CKData类的对象。
2) DRDATA结构
除权除息数据结构,即K线复权时使用的公司股本变动及分红等数据。CDRData类是
DRDATA结构的数组形式及一些操作。
DRDATA在磁盘上存储于data\CHNA.pwr文件中,该文件格式与分析家除权文件格式完全
相同。分析家除权文件的格式就是源文件StkLib\Src\SelfDB.h中的结构FXJ_DRDATA。
装载数据时,自动转换为CDRData类的对象。
3) BASEDATA结构
财务信息数据结构,即股票的财务数据信息。CBasedata类是BASEDATA结构的数组形式
及一些操作。
BASEDATA在磁盘上存储于data\CHNA.bst中。该文件的格式即为若干个BASEDATA结构。
4) REPORT结构
实时行情传送过来的股票报价包,类似于通视的RCV_REPORT_STRUCTEx。
StkNet\Src\StkReceiver.h中的CStkReceiver类是负责接收通视数据包的类,有一个静态
对象可以通过AfxGetStkReceiver()方法获得。该对象将收到的通视数据转换成相应的
REPORT,MINUTE,OUTLINE,MULTISORT结构。并创建线程,向需要数据的窗口发送消息。
同时将相应数据存储到本地dat\目录下,只保存当天数据。
dat\report.now保存最新RCV_REPORT_STRUCTEx数据,源文件NetTS\Src\TSCache.cpp中的
BOOL CTSCache::StoreReports( )和BOOL CTSCache::LoadReports( )方法保存和读取这个
文件。
dat\SHSE.rpt,dat\SZSE.rpt分别保存上证和深证的REPORT数据。格式为类CClkFile,定
义在StkLib\Include\SelfDB.h中。
dat\SHSE.min,dat\SZSE.min分别保存上证和深证的MINUTE数据。格式为类CClkFile,定
义在StkLib\Include\SelfDB.h中。
5) MINUTE结构
实时行情传送过来的分钟线数据,类似于通视的RCV_MINUTE_STRUCTEx。
即分时行情窗口中的分时价格线数据,每分钟一个数据。
6) OUTLINE结构
实时行情传送过来的行情额外数据,通视目前没有该类数据。
7) MULTISORT结构
实时行情传送过来的综合排名数据。通视目前没有该类数据。通视的综合排名是根据收到
的RCV_REPORT_STRUCTEx自己算出来的。这个结构是天网网络接口发送的,在服务器端计算
好的排名,直接发到客户端,显示在综合排名界面。
该数据不存盘。
8) COMMPACKET结构
为了写程序方便,定义的一个结构,该结构可以分配其他结构数组,分配方法在源文件
StkLib\Src\Packets.cpp中。
该数据不存盘。
9) CStockInfo类
股票基本信息数据,包含基本财务数据,最新报价数据,最近若干天的K线缓存。
该数据不存盘。
10) CStock类
某只股票的全部数据都可以存储在这个类里,装载过程参见后面的示例代码说明。
其中StKLib/Include/StockContainer.h中定义了如下结构和类:
11) CStockContainer类
CStockInfo类的数组容器,AfxGetStockContainer()函数得到该类的一个静态对象,保存
着当前所有股票的基本信息数据缓存。在程序启动时装载。
AfxGetSListContainer()函数得到该类的另一个静态对象,保存着当前股票列表窗口中的
股票及基本信息缓存。该对象的数据初始化根据用户操作自动从AfxGetStockContainer()
对象里装载。
12) CDomain类
一个板块或者一个分组。包含该板块(分组)名称及代码数组。
13) CDomainContainer类
板块或者分组容器类。
AfxGetDomainContainer()方法返回一个静态对象,包含当前板块信息。
AfxGetGroupContainer()方法返回一个静态对象,包含当前分组信息。
其中StKLib/Include/Database.h中定义了如下类:
14) CStDatabase类
访问本地数据的接口类。通过AfxGetDB()方法返回该类的一个静态对象,可以通过
该对象读取本地的K线数据,F10资料,除权数据。读取方法参看下面示例详解。
2. 磁盘上的文件
dat\report.now 最新即时行情列表数据。
dat\SHSE.rpt 每天每只上证股票的成交数据。
dat\SZSE.rpt 每天每只深证股票的成交数据。
dat\SHSE.min 每天每只上证股票的分钟线数据。
dat\SZSE.min 每天每只深证股票的分钟线数据。
data\shase\base\ 上证F10资料,每只股票一个文件。
data\shase\day\ 上证日线数据,每只股票一个文件。
data\shase\week\ 上证周线数据,每只股票一个文件。
data\shase\month\ 上证月线数据,每只股票一个文件。
data\shase\mnt\ 上证5分钟数据,每只股票一个文件。
data\shase\xdr\ 上证除权数据,每只股票一个文件。最终结果是CHNA.pwr与该目录
下的文件合并的结果。
data\shase\base\ 深证F10资料,每只股票一个文件。
data\shase\day\ 深证日线数据,每只股票一个文件。
data\shase\week\ 深证周线数据,每只股票一个文件。
data\shase\month\ 深证月线数据,每只股票一个文件。
data\shase\mnt\ 深证5分钟数据,每只股票一个文件。
data\shase\xdr\ 深证除权数据,每只股票一个文件。最终结果是CHNA.pwr与该目录
下的文件合并的结果。
data\SHSE.cod 上证代码表。
data\SHSE.cod 深证代码表。
data\CHNA.bst 财务数据文件。
data\CHNA.pwr 除权数据文件。
data\domain.dat 板块数据文件。
group.dat 分组数据文件。
3. 指标数据结构及调用接口
其中StKLib/Include/Technique.h中定义了如下类:
1) CTechnique类
该类为所有技术指标类的父类,该类里保存着计算指标用的数据,即一个CKData对象。
另外还有一些Cache,是对刚刚计算过的指标值进行缓存,提高显示速度,以免总是重复计算。
几个虚函数接口:
// 得到nIndex位置处的买卖信号,nIndex为CKData的数组位置,pnCode为原因代号
virtual int GetSignal( int nIndex, UINT * pnCode = NULL );
// 得到nStart到nEnd之间的指标值的最大最小值,画图时用来判断画图坐标区间。
virtual BOOL GetMinMaxInfo( int nStart, int nEnd, double *pdMin, double *pdMax );
// 计算指标值,对不同的指标类型,对应参数的个数不同。
virtual BOOL Calculate( double * pValue, int nIndex, int nDays, BOOL bUseLast );
virtual BOOL Calculate( double * pValue, int nIndex, BOOL bUseLast );
virtual BOOL Calculate( double * pValue1, double * pValue2, int nIndex, BOOL bUseLast );
virtual BOOL Calculate( double * pValue1, double * pValue2, double * pValue3, int nIndex, BOOL bUseLast );
virtual BOOL Calculate( double * pValue1, double * pValue2, double * pValue3, double * pValue4, int nIndex, BOOL bUseLast );
virtual BOOL Calculate( double * pValue1, double * pValue2, double * pValue3, double * pValue4, double * pValue5, int nIndex, BOOL bUseLast );
// 计算单个指标值及该指标值nMADays日均线
virtual BOOL CalculateMA( double * pValue, double * pMA, int nIndex, BOOL bUseLast, int nMADays );
4. 读取某只股票数据的示例程序详解
方法一:
CStock stock; // 创建CStock对象,用于存储数据。
stock.SetStockCode( CStock::marketSHSE, "600036" ); // 股票代码
AfxPrepareStockData( &AfxGetDB(), stock, CKData::ktypeDay, CKData::formatXDRdown, CKData::mdtypeClose, FALSE, TRUE );
// 装载stock的日线,并向下除权。
CKData & kday = stock.GetKData(CKData::ktypeDay); // 访
没有合适的资源?快使用搜索试试~ 我知道了~
策略为王源代码无删减版本-vc++6.0-可以升级到vc2024-64位
共2000个文件
h:376个
cpp:351个
sbr:308个
6 下载量 122 浏览量
2024-04-15
16:07:51
上传
评论
收藏 65.09MB RAR 举报
温馨提示
策略为王源代码无删减版本------vc++6.0-------可以升级到vc2024-----64位---- 策略为王源代码无删减版本------vc++6.0-------可以升级到vc2024-----64位---- 策略为王源代码无删减版本------vc++6.0-------可以升级到vc2024-----64位---- 策略为王源代码无删减版本------vc++6.0-------可以升级到vc2024-----64位---- 策略为王源代码无删减版本------vc++6.0-------可以升级到vc2024-----64位----
资源推荐
资源详情
资源评论
收起资源包目录
策略为王源代码无删减版本-vc++6.0-可以升级到vc2024-64位 (2000个子文件)
StkUI.aps 1.09MB
Tools.aps 253KB
StkNet.aps 50KB
profuisdllenu.aps 47KB
TestBench.aps 43KB
profuisdll.aps 38KB
XPFaceEnu.aps 38KB
StkNetenu.aps 34KB
NetTS.aps 30KB
XPFace.aps 25KB
GuiLib.aps 24KB
StkLib.aps 19KB
RealTime.cpp.bak 90KB
bin00002.bin 6KB
text_dec.bin 248B
text1.bin 226B
text_upg.bin 134B
bin00001.bin 124B
leftlogo.bmp 110KB
leftlogo.bmp 110KB
leftlogo.bmp 110KB
bmp00011.bmp 93KB
splash.bmp 93KB
splash.bmp 93KB
leftlogo.bmp 38KB
leftlogo.bmp 38KB
leftlogo.bmp 38KB
leftlogo.bmp 38KB
dlgleftl.bmp 38KB
leftlogo.bmp 38KB
dlgleftl.bmp 38KB
bmp00011.bmp 38KB
leftlogo.bmp 38KB
bmp00005.bmp 38KB
helplogo.bmp 38KB
bmp00005.bmp 38KB
bmp00008.bmp 31KB
startlog.bmp 31KB
bmp00010.bmp 28KB
wizardhe.bmp 28KB
dlgtoplo.bmp 28KB
toplogo.bmp 28KB
bmp00007.bmp 28KB
strategy.bmp 5KB
bmp00015.bmp 5KB
bmp00013.bmp 4KB
balang.bmp 4KB
balang.bmp 4KB
worksp_t.bmp 2KB
il_tab.bmp 2KB
bmp00012.bmp 2KB
mainbar.bmp 2KB
Toolbar.bmp 1KB
bmp00006.bmp 1KB
bmp00017.bmp 1KB
DockOffice.bmp 1KB
viewbar.bmp 1KB
bmp00002.bmp 1KB
bitmap1.bmp 1KB
bmp00016.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
simubar.bmp 958B
bmp00003.bmp 958B
periodba.bmp 958B
mainfram.bmp 958B
slistbar.bmp 838B
mainbar1.bmp 838B
bitmap1.bmp 694B
prjview_.bmp 630B
groupvie.bmp 630B
bitmap4.bmp 454B
bitradio.bmp 454B
worksp_b.bmp 378B
imagelist.bmp 378B
bmp00014.bmp 374B
bmp00001.bmp 374B
bmp00009.bmp 374B
techsvie.bmp 374B
checkedd.bmp 346B
checkedd.bmp 346B
menuchec.bmp 322B
bitmap2.bmp 322B
bitmap2.bmp 322B
menuchec.bmp 322B
bitmap2.bmp 322B
workspba.bmp 310B
bmp00007.bmp 310B
bmp00001.bmp 294B
bmp00004.bmp 246B
package.bmp 246B
toolbar1.bmp 238B
bmp00002.bmp 206B
bitmap2.bmp 198B
bitmap3.bmp 190B
CHNA.bst 377KB
CHNA.bst 377KB
Snif-base.cap 87KB
Snif-history.cap 85KB
Snif-login.cap 64KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
未来世界698698
- 粉丝: 204
- 资源: 169
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Jupyter扩展的jupylet-cn项目中文翻译设计源码
- 基于Java语言的校园跳蚤市场后台管理系统设计源码
- 基于Jupyter Notebook的PYTHON项目——周某年度最骄傲之作:零挂科挑战成功设计源码
- 基于Html与Java的综合技术,打造电脑商城网站设计源码
- 基于Java语言的前后端分离投票系统设计源码
- 基于Python全栈技术的B2C在线教育商城天宫设计源码
- ubuntu20.04安装教程-ubuntu20.04安装指南:涵盖物理机和虚拟环境下的详细流程
- 基于Java注解的Emqx消息监听器设计源码及后台访问控制API
- 基于Java语言的dormitory-backend学生宿舍管理系统设计源码
- 基于Dart语言的Flutter框架设计源码镜像仓库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功