?? stock.h
字號:
/*
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" // 上證指數(shù)
#define STKLIB_CODE_SZYBL "1A0009" // 上證180指數(shù)
#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)
// 本頭文件中定義的數(shù)值單位:
// 價格及與金額有關(guān)的單位,如成交金額、主營收入、每股收益、總市值等:元
// 成交量單位:手(=100股)
/////////////////////////////////////////////////////////////////////////////////////////////
// 股票靜態(tài)數(shù)據(jù)結(jié)構(gòu)
// K線數(shù)據(jù)結(jié)構(gòu) CStock::dataK
typedef struct kdata_t {
DWORD m_dwMarket; // 證券市場類型,see CStock::StockMarket
char m_szCode[STKLIB_MAX_CODE]; // 證券代碼,以'\0'結(jié)尾
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; // 僅指數(shù)有效
DWORD m_dwDecline; // 僅指數(shù)有效
DWORD m_dwReserved;
} KDATA, *PKDATA;
// 除權(quán)數(shù)據(jù)結(jié)構(gòu) CStock::dataDR
typedef struct drdata_t
{
DWORD m_dwMarket; // 證券市場類型,see CStock::StockMarket
char m_szCode[STKLIB_MAX_CODE]; // 證券代碼,以'\0'結(jié)尾
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;
// 財務(wù)信息數(shù)據(jù)結(jié)構(gòu) CStock::dataBasetbl
typedef struct basedata_t {
DWORD m_dwMarket; // 證券市場類型,see CStock::StockMarket
char m_szCode[STKLIB_MAX_CODE2]; // 證券代碼,以'\0'結(jié)尾
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; // 應(yīng)收帳款周率
// ★經(jīng)營能力
float m_fVelocity_merchandise; // 存貨周轉(zhuǎn)率
float m_fMain_income; // 主營業(yè)務(wù)收入
float m_fCash_ps; // 每股凈現(xiàn)金流量
// ★盈利能力
float m_fProfit_margin; // 主營業(yè)務(wù)利潤率 %
float m_fNetasset_yield; // 凈資產(chǎn)收益率 %
// ★資本結(jié)構(gòu)
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; // 總資產(chǎn)
float m_fRatio_holderright; // 股東權(quán)益比率
float m_fRatio_longdebt; // 長期負債率
float m_fRatio_debt; // 資產(chǎn)負債率
// ★投資收益能力
float m_fNetasset_ps; // 每股凈資產(chǎn)
float m_fNetasset_ps_regulate; // 調(diào)整每股凈資產(chǎn)
float m_fEps; // 每股收益
float m_fEps_deduct; // 扣除后每股收益
float m_fNet_profit; // 凈利潤
float m_fMain_profit; // 主營業(yè)務(wù)利潤
float m_fTotal_profit; // 利潤總額
// ★增長率
float m_fProfit_inc; // 主營利潤增長率%
float m_fIncome_inc; // 主營收入增長率%
float m_fAsset_inc; // 總資產(chǎn)增長率%
// ★技術(shù)數(shù)據(jù)統(tǒng)計值
float m_fYield_average; // 平均收益率%
float m_fYield_stddev; // 收益標準差%
float m_fBeite; // β值
DWORD m_dwReserved[4];
}BASEDATA, *PBASEDATA;
// 股票靜態(tài)數(shù)據(jù)結(jié)構(gòu)結(jié)束
/////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
// 實時行情使用數(shù)據(jù)結(jié)構(gòu)
// 行情刷新數(shù)據(jù)結(jié)構(gòu) CStock::dataReport
typedef struct report_t {
DWORD m_dwMarket; // 證券市場類型,see CStock::StockMarket
char m_szCode[STKLIB_MAX_CODE]; // 證券代碼,以'\0'結(jié)尾
char m_szName[STKLIB_MAX_NAME]; // 證券名稱,以'\0'結(jié)尾
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;
// 行情分時數(shù)據(jù)結(jié)構(gòu) 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'結(jié)尾
time_t m_time; // 交易時間
float m_fHigh; // 最高價(元)
float m_fLow; // 最低價(元)
float m_fNew; // 最新價(元)
float m_fVolume; // 成交量(股)
float m_fAmount; // 成交額(元)
} MINUTE, *PMINUTE;
// 行情額外數(shù)據(jù)結(jié)構(gòu) 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;
// 綜合排名數(shù)據(jù)結(jié)構(gòu) 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'結(jié)尾
} STOCKCODE, *PSTOCKCODE;
// 行情通用數(shù)據(jù)包
#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; // 行情刷新數(shù)據(jù)
MINUTE * m_pMinute; // 分時成交數(shù)據(jù)
MULTISORT * m_pMultisort; // 綜合排名數(shù)據(jù)
OUTLINE * m_pOutline; // 附加數(shù)據(jù)
KDATA * m_pKdata; // 補充歷史日線數(shù)據(jù)
DRDATA * m_pDrdata; // 補充權(quán)息資料
STOCKCODE * m_pStockcode; // 股票代碼
void * m_pData;
};
} COMMPACKET, *PCOMMPACKET;
// 實時行情使用數(shù)據(jù)結(jié)構(gòu)結(jié)束
/////////////////////////////////////////////////////////////////////////////////////////////
#pragma pack()
/***
除權(quán)除息數(shù)組類
*/
class 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線數(shù)據(jù)數(shù)組類
*/
class 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,
ktypeMin15 = 0x02,
ktypeMin30 = 0x03,
ktypeMin60 = 0x04,
ktypeDay = 0x05,
ktypeWeek = 0x06,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -