⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stock.h

📁 提供股票行情、股票提示、实数资料、异动个股、专家分析及预测、机构荐股
💻 H
📖 第 1 页 / 共 3 页
字号:
/*
	Cross Platform Core Code.

	Copyright(R) 2001-2002 Balang Software.
	All rights reserved.

	Using:
		class	CKData
		class	CDRData
		class	CBaseData
		class	CReport
		class	CMinute
		class	COutline
		class	CStockInfo
		class	CStock
*/

#if	!defined( __STKLIB_STOCK_H__ )
#define	__STKLIB_STOCK_H__

#define	STKLIB_DATA_INVALID	0x7FFFFFFF

#define	STKLIB_DAYS_INONEYEAR	240
#define	STKLIB_DAYS_CACHE		60
#define	STKLIB_DAYS_CALCULATE	30
#define	STKLIB_AUTORESUMEDR_DATEBEGIN	20040519
#define	STKLIB_AUTORESUMEDR_LIMIT		11

#define	STKLIB_CODE_MAIN			"1A0001"
#define	STKLIB_CODE_MAINSZN			"399001"
#define	STKLIB_CODE_SZZS			"1A0001"	// 上证指数
#define	STKLIB_CODE_SZYBL			"1A0009"	// 上证180指数
#define	STKLIB_CODE_SZAG			"1A0002"	// 上证A股
#define	STKLIB_CODE_SZBG			"1A0003"	// 上证B股
#define	STKLIB_CODE_SZNCZ			"399001"	// 深证成指
#define	STKLIB_CODE_SZNZZ			"399106"	// 深证综指
#define	STKLIB_CODE_SZNCFAZ			"399002"	// 深证成份A指
#define	STKLIB_CODE_SZNCFBZ			"399003"	// 深证成份B指
#define	STKLIB_CODE_SZNFIRST		"000001"	// 深证第一支股票
#define	STKLIB_CODE_SHAFIRST		"600000"	// 上证第一支股票
#define	STKLIB_CODE_ZLDD			"000000"	// 主力大单


// some fixed length
#define	STKLIB_MAX_CODE			8
#define	STKLIB_MAX_CODE2		16	// 兼容较长股票代码
#define	STKLIB_MAX_NAME			16
#define	STKLIB_MAX_NAMEENU		80
#define	STKLIB_MAX_SHORTNAME	16
#define	STKLIB_MAX_DOMAIN		32
#define	STKLIB_MAX_PROVINCE		32

// some enum values

#pragma pack(1)

// 本头文件中定义的数值单位:
// 		价格及与金额有关的单位,如成交金额、主营收入、每股收益、总市值等:元
// 		成交量单位:手(=100股)

/////////////////////////////////////////////////////////////////////////////////////////////
// 股票静态数据结构

// K线数据结构	CStock::dataK
typedef struct kdata_t {
	DWORD	m_dwMarket;						// 证券市场类型,see CStock::StockMarket
	char	m_szCode[STKLIB_MAX_CODE];		// 证券代码,以'\0'结尾

	DWORD	m_date;				//日期	Format is XXMMDDHHMM for 5min, Format is YYYYMMDD for day
	time_t	m_time;				//时间 与m_date一致.如果是是某日,则小时分秒均为0

	float	m_fOpen;			// 开盘价(元)
	float	m_fHigh;			// 最高价(元)
	float	m_fLow;				// 最低价(元)
	float	m_fClose;			// 收盘价(元)
	float	m_fVolume;			// 成交量(股)
	float	m_fAmount;			// 成交金额(元)

	DWORD	m_dwAdvance;		// 仅指数有效
	DWORD	m_dwDecline;		// 仅指数有效

	DWORD	m_dwReserved;
} KDATA, *PKDATA;

// 除权数据结构 CStock::dataDR
typedef struct drdata_t
{
	DWORD	m_dwMarket;						// 证券市场类型,see CStock::StockMarket
	char	m_szCode[STKLIB_MAX_CODE];		// 证券代码,以'\0'结尾

	DWORD	m_date;				//日期	Format is XXMMDDHHMM for 5min, Format is YYYYMMDD for day
	time_t	m_time;				//时间 与m_date一致.如果是是某日,则小时分秒均为0

	float	m_fGive;			// 每股送
	float	m_fPei;				// 每股配
	float	m_fPeiPrice;		// 配股价,仅当 m_fPei!=0.0f 时有效
	float	m_fProfit;			// 每股红利

	DWORD	m_dwReserved;
} DRDATA, * PDRDATA;

// 财务信息数据结构 CStock::dataBasetbl
typedef struct basedata_t {
	DWORD	m_dwMarket;						// 证券市场类型,see CStock::StockMarket
	char	m_szCode[STKLIB_MAX_CODE2];		// 证券代码,以'\0'结尾
	
	char	m_szDomain[STKLIB_MAX_DOMAIN];		// 板块
	char	m_szProvince[STKLIB_MAX_PROVINCE];	// 省份

	time_t	m_time;						// 日期,time_t
	DWORD	m_date;				 		// 日期	Format is YYYYMMDD for base data
	LONG	m_reporttype;				// 报告类型:年报、中报、季报
	float	m_fErate_dollar;			// 当期美元汇率
	float	m_fErate_hkdollar;			// 当期港币汇率

	// ★偿债能力
	float	m_fRatio_liquidity;			// 流动比率
	float	m_fRatio_quick;				// 速动比率
	float	m_fVelocity_receivables;	// 应收帐款周率
	// ★经营能力
	float	m_fVelocity_merchandise;	// 存货周转率
	float	m_fMain_income;				// 主营业务收入
	float	m_fCash_ps;					// 每股净现金流量
	// ★盈利能力
	float	m_fProfit_margin;			// 主营业务利润率 %
	float	m_fNetasset_yield;			// 净资产收益率 %
	// ★资本结构
	DWORD	m_datebegin;				// 上市日期 Format is YYYYMMDD
	float	m_fShare_count_total;		// 总股本
	float	m_fShare_count_a;			// 流通A股
	float	m_fShare_count_b;			// 流通B股
	float	m_fShare_count_h;			// 流通H股
	float	m_fShare_count_national;	// 国有股
	float	m_fShare_count_corp;		// 法人股
	float	m_fProfit_psud;				// 每股未分配利润
	float	m_fAsset;					// 总资产
	float	m_fRatio_holderright;		// 股东权益比率
	float	m_fRatio_longdebt;			// 长期负债率
	float	m_fRatio_debt;				// 资产负债率
	// ★投资收益能力
	float	m_fNetasset_ps;				// 每股净资产
	float	m_fNetasset_ps_regulate;	// 调整每股净资产
	float	m_fEps;						// 每股收益
	float	m_fEps_deduct;				// 扣除后每股收益
	float	m_fNet_profit;				// 净利润
	float	m_fMain_profit;				// 主营业务利润
	float	m_fTotal_profit;			// 利润总额
	// ★增长率
	float	m_fProfit_inc;				// 主营利润增长率%
	float	m_fIncome_inc;				// 主营收入增长率%
	float	m_fAsset_inc;				// 总资产增长率%
	// ★技术数据统计值
	float	m_fYield_average;			// 平均收益率%
	float	m_fYield_stddev;			// 收益标准差%
	float	m_fBeite;					// β值

	DWORD	m_dwReserved[4];
}BASEDATA, *PBASEDATA;

// 股票静态数据结构结束
/////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////
// 实时行情使用数据结构

// 行情刷新数据结构 CStock::dataReport
typedef struct report_t {
	DWORD	m_dwMarket;						// 证券市场类型,see CStock::StockMarket
	char	m_szCode[STKLIB_MAX_CODE];		// 证券代码,以'\0'结尾

	char	m_szName[STKLIB_MAX_NAME];		// 证券名称,以'\0'结尾

	time_t	m_time;						// 交易时间

	DWORD	m_dwFlag;					// 停牌标志

	float	m_fLast;					// 昨收(元)
	float	m_fOpen;					// 今开(元)
	float	m_fHigh;					// 最高(元)
	float	m_fLow;						// 最低(元)
	float	m_fNew;						// 最新(元)
	float	m_fVolume;					// 成交量(股)
	float	m_fAmount;					// 成交额(元)

	float	m_fBuyPrice[5];				// 申买价1,2,3,4(元)
	float	m_fBuyVolume[5];			// 申买量1,2,3,4(股)
	float	m_fSellPrice[5];			// 申卖价1,2,3,4(元)
	float	m_fSellVolume[5];			// 申卖量1,2,3,4(股)
} REPORT, *PREPORT;

// 行情分时数据结构 CStock::dataMinute
typedef struct minute_t {
	DWORD	m_dwType;	// 1 min, 5 min, 15 min, 30 min line

	DWORD	m_dwMarket;						// 证券市场类型,see CStock::StockMarket
	char	m_szCode[STKLIB_MAX_CODE];		// 证券代码,以'\0'结尾

	time_t	m_time;				// 交易时间
	float	m_fHigh;			// 最高价(元)
	float	m_fLow;				// 最低价(元)
	float	m_fNew;				// 最新价(元)
	float	m_fVolume;			// 成交量(股)
	float	m_fAmount;			// 成交额(元)
} MINUTE, *PMINUTE;

// 行情额外数据结构 CStock::dataOutline
typedef struct outline_t {
	time_t	m_time;

	DWORD	m_dwShHq;
	DWORD	m_dwSzHq;
	DWORD	m_dwShPriceUp;
	DWORD	m_dwShPriceDown;
	DWORD	m_dwSzPriceUp;
	DWORD	m_dwSzPriceDown;
	DWORD	m_dwShWbUp;
	DWORD	m_dwShWbDown;
	DWORD	m_dwSzWbUp;
	DWORD	m_dwSzWbDown;
	DWORD	m_dwShStockCount;
	DWORD	m_dwSzStockCount;
} OUTLINE, *POUTLINE;

// 综合排名数据结构 CStock::dataMultisort
//综合排名
typedef struct multisort_item_t {
	BYTE	m_type;					// stock's type
	char	m_code[6];				// stock code
	long	m_data1;
	long	m_data2;
} MULTISORT_ITEM;
typedef struct multisort_t {
	DWORD	m_class;				// 1-涨幅 2-跌幅 4-5分钟涨幅 8-5分钟跌幅 16-委比前六 32-委比后六
									// 64-震幅 128-量比 256-总金额
	DWORD	m_tag;					// 0xf0 00 06 00
	MULTISORT_ITEM	m_stocks[6];
} MULTISORT, *PMULTISORT;

// 股票代码 CStock::dataCode
typedef	struct stockcode {
	DWORD	m_dwMarket;						// 证券市场类型,see CStock::StockMarket
	char	m_szCode[STKLIB_MAX_CODE2];		// 证券代码,以'\0'结尾
} STOCKCODE, *PSTOCKCODE;

// 行情通用数据包
#define	STKLIB_COMMPACKET_TAG	'KPMC'
typedef struct commpacket_t {
	DWORD	m_dwTag;			// = STKLIB_COMMPACKET_TAG
	DWORD	m_dwDataType;		// see CStock::DataType
	DWORD	m_dwCount;

	union
	{
		REPORT *	m_pReport;		// 行情刷新数据
		MINUTE *	m_pMinute;		// 分时成交数据
		MULTISORT *	m_pMultisort;	// 综合排名数据
		OUTLINE *	m_pOutline;		// 附加数据
		KDATA *		m_pKdata;		// 补充历史日线数据
		DRDATA *	m_pDrdata;		// 补充权息资料
		STOCKCODE *	m_pStockcode;	// 股票代码
		void *		m_pData;
	};
} COMMPACKET, *PCOMMPACKET;

// 实时行情使用数据结构结束
/////////////////////////////////////////////////////////////////////////////////////////////

#pragma pack()


#ifndef	STKLIB_API
#define	STKLIB_API	__declspec(dllimport)
#endif

/***
	除权除息数组类
*/
class STKLIB_API CDRData
{
public:
// Construction
	CDRData();
	CDRData( const CDRData &src );

// Attributes
	int		GetSize() const;
	int		GetUpperBound() const;
	void	SetSize(int nNewSize, int nGrowBy = -1);

// Operations
	// Clean up
	void	FreeExtra();
	void	RemoveAll();

	// Accessing elements
	DRDATA	GetAt(int nIndex) const;
	void	SetAt(int nIndex, DRDATA newElement);
	DRDATA&	ElementAt(int nIndex);

	// Direct Access to the element data (may return NULL)
	const DRDATA* GetData() const;
	DRDATA* GetData();

	// Potentially growing the array
	void	SetAtGrow(int nIndex, DRDATA newElement);
	int		Add(DRDATA newElement);

	// overloaded operator helpers
	DRDATA	operator[](int nIndex) const;
	DRDATA&	operator[](int nIndex);

	// Operations that move elements around
	void	InsertAt(int nIndex, DRDATA newElement, int nCount = 1);
	void	RemoveAt(int nIndex, int nCount = 1);
	void	InsertAt(int nStartIndex, CDRData* pNewArray);
	int		InsertDRDataSort( DRDATA newElement );
	void	Sort( );
	CDRData	& operator = ( const CDRData &src );
	void	Copy( const CDRData &src );
	BOOL	IsSameAs( CDRData * psrc );

// Implementation
protected:
	DRDATA* m_pData;   // the actual array of data
	int m_nSize;     // # of elements (upperBound - 1)
	int m_nMaxSize;  // max allocated
	int m_nGrowBy;   // grow amount

public:
	~CDRData();
};

/***
	K线数据数组类
*/
class STKLIB_API CKData
{
public:
	// Constructors
	CKData();
	CKData( int ktype, int maindatatype = mdtypeClose );
	CKData( const CKData & src );

	CKData	& operator = ( const CKData &src );

	static	BOOL	IsDayOrMin( int nKType );

	// Flag values
	enum KTypes {
		ktypeNone		=	0x00,
		ktypeMin		=	0x01,
		ktypeMin5		=	0x01,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -