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

📄 stock.h

📁 提供股票行情、股票提示、实数资料、异动个股、专家分析及预测、机构荐股
💻 H
📖 第 1 页 / 共 3 页
字号:
	const OUTLINE* GetData() const;
	OUTLINE* GetData();

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

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

	// Operations that move elements around
	void	InsertAt(int nIndex, OUTLINE newElement, int nCount = 1);
	void	RemoveAt(int nIndex, int nCount = 1);
	void	InsertAt(int nStartIndex, COutline* pNewArray);
	int		InsertOutlineSort( OUTLINE newElement );
	void	Sort( );
	COutline	& operator = ( const COutline &src );
	void	Copy( const COutline &src );

// Implementation
protected:
	OUTLINE* 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:
	~COutline();
};

class CStDatabase;

/***
	单个股票信息类 CStock::dataInfo
*/
class STKLIB_API	CStockInfo
{
public:
	CStockInfo( );
	CStockInfo( const CStockInfo &src );

	// Operation
	void Clear( );
	CStockInfo & operator = ( const CStockInfo & si );

	BOOL	IsEqualTo( DWORD dwMarket, const char * szCode );
	DWORD	GetMarket( );
	void	SetMarket( DWORD dwMarket );
	const char * GetStockCode( );
	BOOL	SetStockCode( DWORD dwMarket, const char * szCode );
	LONG	GetType( );
	void	SetType( LONG t );
	void	ResolveTypeAndMarket( );
	const char * GetStockName( );
	void	SetStockName( const char * szName );
	const char * GetStockNameEnu( );
	void	SetStockNameEnu( const char * szNameEnu );
	const char * GetStockNameChs( );
	void	SetStockNameChs( const char * szName );
	const char * GetStockShortName( );
	void	SetStockShortName( const char *szShortName );
	const char * GetStockDomain( );
	void	SetStockDomain( const char * szDomain );
	const char * GetStockProvince( );
	void	SetStockProvince( const char * szProvince );

	BOOL	StatTechIndex( DWORD dwDate );	// 设定当前技术资料日期,Format is YYYYMMDD
	BOOL	StatBaseIndex( DWORD dwDate );	// 设定当前基本资料日期,Format is YYYYMMDD
	
	// Attributes
	BOOL	IsValidStock( );	// 股票信息是否正确
	BOOL	IsShangHai( );		// 上证股票
	BOOL	IsShenZhen( );		// 深证股票
	BOOL	IsIndex( );			// 是否指数
	BOOL	IsBond( );			// 是否债券
	BOOL	IsBondIndex( );		// 是否国债指数
	BOOL	IsFund( );			// 是否基金
	int		DigitBit( );		// 得到该股价格有几位小数位,基金和上海B股是三位

	// Variant
	BOOL	GetAverage( double *pValue );	// 当日成交均价
	BOOL	GetDiff( double *pValue, DWORD dateCur, int nDays );	// 涨跌
	BOOL	GetDiffPercent( double *pValue, DWORD dateCur, int nDays );	// 涨跌幅度
	BOOL	GetScope( double *pValue, DWORD dateCur, int nDays );	// 涨跌范围
	BOOL	GetDiffPercentMin5( double *pValue );

	BOOL	GetPE( double * pValue );		// 市盈率
	BOOL	GetPNetAsset( double *pValue );	// 市净率
	BOOL	GetPMainIncome( double * pValue );	// 市销率
	BOOL	GetRatioPCash( double * pValue );	// 价格现金流比

	BOOL	GetShareCurrency( double * pValue );	// 流通股数
	BOOL	GetRatioCurrency( double * pValue );	// 流通比率
	BOOL	GetRatioChangeHand( double * pValue, double dVolume );
	BOOL	GetRatioChangeHand( CKData &kdata, double * pValue, DWORD dateCur, int nDays );
	BOOL	GetRatioChangeHand( double * pValue, DWORD dateCur, int nDays );	// n日换手率
	BOOL	GetRatioVolume( double * pValue, DWORD dateCur, int nDays );		// n日量比
	BOOL	GetRS( double * pValue, DWORD dateCur, int nDays );					// n日相对强度
	BOOL	GetSellBuyRatio( double *pdRatio, double *pdDiff );					// 委比和委差

	BOOL	GetMarketValue( double * pValue );	// 市值
	BOOL	GetMarketValueA( double * pValue );	// A股市值
	BOOL	GetMarketValueB( double * pValue );	// B股市值

	BOOL	GetXiapu( double * pValue );		// 夏普风险指数

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

	LONG	m_type;								// see CStock::StockType
	char	m_szName[STKLIB_MAX_NAME];			// 名称
	char	m_szNameEnu[STKLIB_MAX_NAMEENU];		// 英文名称
	char	m_szShortname[STKLIB_MAX_SHORTNAME];	// 拼音简称

	char	m_szDomain[STKLIB_MAX_DOMAIN];		// 板块
	char	m_szProvince[STKLIB_MAX_PROVINCE];	// 省份

public:

	DWORD	m_datetech;	//日期	Format is XXMMDDHHMM for 5min, Format is YYYYMMDD for day

	float	m_fLast;			// 昨收(元)
	float	m_fOpen;			// 开盘(元)
	float	m_fHigh;			// 最高价(元)
	float	m_fLow;				// 最低价(元)
	float	m_fClose;			// 收盘(元)

	float	m_fVolume;			// 成交量(股)
	float	m_fAmount;			// 成交额(元)

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

	float	m_fBuyPrice[5];
	float	m_fBuyVolume[5];
	float	m_fSellPrice[5];
	float	m_fSellVolume[5];

public:
	CKData		m_kdata;		// 保存最近AfxGetProfile().GetCacheDays()天K线数据
	CBaseData	m_basedata;		// 保存基本资料数据
	CMinute		m_minute;		// 最近5分钟的MINUTE分时数据
	REPORT		m_reportLatest;	// 保存最近的REPORT报价数据
	
public:
	// From Base Data
	DWORD	m_datebase;					//日期	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;					// β值
};

/***
	单个股票的数据,包括股票信息,K线数据,基本资料,除权除息数据等。
*/
class CStock
{
public:
	// Constructors
	CStock( );
	CStock( CStDatabase * pDatabase );
	CStock( CStDatabase * pDatabase, DWORD dwMarket, const char * code );
	virtual	~CStock();

	// Flag values
	enum StockMarket {
		marketUnknown	=	'UKNW',	// 未知
		marketSHSE		=	'ESHS',	// 上海证券交易所
		marketSZSE		=	'ESZS',	// 深圳证券交易所
		marketCYSE		=	'ESYC',	// 中国大陆创业板市场
		marketCHNA		=	'ANHC',	// 中国大陆上海或深圳或创业板证券交易所
		marketHKEX		=	'XEKH',	// 香港联合交易所
		marketTBSE		=	'ESBT',	// 台北证券交易所
		marketTKSE		=	'EST',	// 东京证券交易所
		marketLSE		=	'ESL',	// 伦敦证券交易所
		marketFLKFSE	=	'FKLF',	// 法兰克福证券交易所
		marketNYSE		=	'ESYN',	// 纽约证券交易所
		marketNASDAQ	=	'QDSN',	// 纳斯达克证券交易所
	};

	enum DataType {
		dataUnknown		=	0x00,		// 未知数据
		dataInfo		=	0x01,		// 股票信息
		dataK			=	0x02,		// K线数据
		dataDR			=	0x03,		// 权息资料
		dataBasetable	=	0x04,		// 财务数据
		dataBasetext	=	0x05,		// F10资料
		dataNews		=	0x06,		// 新闻资讯
		dataReport		=	0x07,		// 行情刷新数据
		dataMinute		=	0x08,		// 行情分时数据
		dataOutline		=	0x09,		// 行情额外数据
		dataCode		=	0x0A,		// 股票代码数组
		dataMultisort	=	0x0B,		// 综合排名
		dataDetail		=	0x0C,		// 成交明细
	};

	enum StockType {
		typeNone		=	0x00,
		typeshIndex		=	0x10,	//	上海指数
		typeshA			=	0x11,	//	上海A股
		typeshB			=	0x12,	//	上海B股
		typeshBond		=	0x13,	//	上海债券
		typeshRight		=	0x14,	//	上海权证
		typeshBonus		=	0x15,	//	上海红利
		typeshAdmeasure	=	0x16,	//	上海配股
		typeshInfo		=	0x1F,	//	上海证交所信息
		typeszIndex		=	0x20,	//	深圳指数 0x20 
		typeszA			=	0x21,	//	深圳A股 0x21 
		typeszB			=	0x22,	//	深圳B股 0x22 
		typeszBond		=	0x23,	//	深圳债券 0x23 
		typeszRight		=	0x24,	//	深圳权证 0x24 
		typeszBonus		=	0x25,	//	深圳红利 0x25 
		typeszAdmeasure	=	0x26,	//	深圳配股 0x26 
		typeszInfo		=	0x2F,	//	深圳证交所信息 0x2f 
		typeGeneralInfo	=	0x05,	//	综合财经信息 0x05 
	};

	enum StockTypeMark {
		markShanghai	=	0x10,	// 上海
		markShenzhen	=	0x20,	// 深圳
		markGeneralInfo	=	0x05,	// 综合财经信息
	};

	enum ReportType	{
		reportUnknown	=	0x00,	//	未知
		reportQuarter	=	0x01,	//	第一季度季报
		reportMid		=	0x02,	//	中报
		reportQuarter3	=	0x03,	//	第三季度季报
		reportAnnals	=	0x04,	//	年报
	};

	enum MultisortType {
		classRise		=	0x01,	// 涨幅
		classFall		=	0x02,	// 跌幅
		claddRiseMin5	=	0x04,	// 5分钟涨幅
		classFallMin5	=	0x08,	// 5分钟跌幅
		classBSRatioAsc	=	0x10,	// 委比前六
		classBSRatioDesc=	0x20,	// 委比后六
		classDiff		=	0x40,	// 震幅
		classVolRatio	=	0x80,	// 量比
		classAmount		=	0x100,	// 总金额
	};

	static	double GetReportFactor( int nReportType );

	// Attributes
	void	SetDatabase( CStDatabase * pDatabase );
	CStDatabase * GetDatabase( );
	void	SetStockCode( DWORD dwMarket, const char * szCode );
	const char * GetStockCode( );
	BOOL	SetStockInfo( CStockInfo * pInfo );
	CStockInfo	&	GetStockInfo( );
	CKData	&		GetKData( int ktype );
	CKData	&		GetKDataMonth( );
	CKData	&		GetKDataWeek( );
	CKData	&		GetKDataDay( );
	CKData	&		GetKDataMin60( );
	CKData	&		GetKDataMin30( );
	CKData	&		GetKDataMin15( );
	CKData	&		GetKDataMin5( );
	CDRData	&		GetDRData( );
	CReport &		GetReport( );
	CMinute &		GetMinute( );
	COutline &		GetOutline( );
	char	*		GetBaseTextPtr( );
	int				GetBaseTextLength( );
	BOOL			AllocBaseTextMem( int nNewLength );

	// Operations
	void	Clear( );
	int		PrepareData( int nDataType = dataInfo, int nKType = CKData::ktypeDay, BOOL bReload = FALSE );
	int		PrepareBaseInfo( BOOL bReload = FALSE );
	int		ExtractKData( int nKType, BOOL bForced );
	int		MergeBaseText( CStock &stock );
	int		MergeKData( CStock &stock, int nKType );
	int		MergeDRData( CStock &stock );
	int		StoreDRData( );

protected:
	void	SetKDataTypes( );

protected:
	CStDatabase	* m_pDatabase;
	CStockInfo	m_stockinfo;
	
	CKData		m_kdMonth;
	CKData		m_kdWeek;
	CKData		m_kdDay;
	CKData		m_kdMin60;
	CKData		m_kdMin30;
	CKData		m_kdMin15;
	CKData		m_kdMin5;
	CDRData		m_drData;
	CReport		m_report;
	CMinute		m_minute;
	COutline	m_outline;
	int			m_nBaseTextLen;
	char *		m_pBaseText;
};


#ifdef	_SP_ENABLE_INLINES
#define	_STOCK_INLINE	inline
#include "Stock.inl"
#undef	_STOCK_INLINE
#endif

#endif	//__STKLIB_STOCK_H__

⌨️ 快捷键说明

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