?? express.h
字號:
/*
Cross Platform Core Code.
Copyright(R) 2001-2002 Balang Software.
All rights reserved.
Using:
class CExpress;
class CIndex;
class CIndexContainer;
*/
#if !defined( __STKLIB_EXPRESS_H__ )
#define __STKLIB_EXPRESS_H__
#include "MathParser.h"
#include "Container.h"
/***
定義股票列表項的唯一標識
*/
// 股票
#define SLH_NONE 0
#define SLH_MIN 1
#define SLH_CODE 1 // 股票代碼
#define SLH_NAME 2 // 股票名稱
// 技術數據
#define SLH_DATE 3 // 日期
#define SLH_LASTCLOSE 4 // 昨收
#define SLH_OPEN 5 // 今開
#define SLH_CLOSE 6 // 收盤價
#define SLH_HIGH 7 // 最高價
#define SLH_LOW 8 // 最低價
#define SLH_AVERAGE 9 // 均價
#define SLH_DIFF 10 // 漲跌
#define SLH_DIFFPERCENT 11 // 漲幅%
#define SLH_SCOPE 12 // 震幅%
#define SLH_VOLUME 13 // 成交量
#define SLH_AMOUNT 14 // 成交額
#define SLH_VOLUP 15 // 外盤
#define SLH_VOLDOWN 16 // 內盤
#define SLH_DIFFPERCENT_MIN5 17 // 五分鐘漲幅%
#define SLH_SELLBUYRATIO 18 // 委比%
#define SLH_SELLBUYDIFF 19 // 委量差
#define SLH_BUYPRICE3 20 // 買價三
#define SLH_BUYPRICE2 21 // 買價二
#define SLH_BUYPRICE1 22 // 買價一
#define SLH_SELLPRICE1 23 // 賣價一
#define SLH_SELLPRICE2 24 // 賣價二
#define SLH_SELLPRICE3 25 // 賣價三
#define SLH_BUYVOLUME3 26 // 買量三
#define SLH_BUYVOLUME2 27 // 買量二
#define SLH_BUYVOLUME1 28 // 買量一
#define SLH_SELLVOLUME1 29 // 賣量一
#define SLH_SELLVOLUME2 30 // 賣量二
#define SLH_SELLVOLUME3 31 // 賣量三
// 主要基本指標
#define SLH_REPORTTYPE 32 // 報表類型
#define SLH_PE 33 // 市盈率
#define SLH_PNETASSET 34 // 市凈率
#define SLH_PMAININCOME 35 // 市銷率
#define SLH_RATIO_PCASH 36 // 價格凈現金比
#define SLH_RATIO_CURRENCY 37 // 流通率
#define SLH_RATIO_CHANGEHAND 38 // 換手率
#define SLH_RATIO_VOLUME 39 // 量比
#define SLH_RS 40 // 相對強度
#define SLH_MARKETVALUE 41 // 總市值
#define SLH_MARKETVALUEA 42 // A股市值
#define SLH_MARKETVALUEB 43 // B股市值
// ★償債能力
#define SLH_RATIO_LIQUIDITY 44 // 流動比率
#define SLH_RATIO_QUICK 45 // 速動比率
#define SLH_VELOCITY_RECEIVABLES 46 // 應收帳款周率
// ★經營能力
#define SLH_VELOCITY_MERCHANDISE 47 // 存貨周轉率
#define SLH_MAIN_INCOME 48 // 主營業務收入
#define SLH_CASH_PS 49 // 每股凈現金流量
// ★盈利能力
#define SLH_PROFIT_MARGIN 50 // 主營業務利潤率
#define SLH_NETASSET_YIELD 51 // 凈資產收益率
// ★資本結構
#define SLH_DATE_BEGIN 52 // 上市日期
#define SLH_SHARE_COUNT_TOTAL 53 // 總股本
#define SLH_SHARE_COUNT_A 54 // 流通A股
#define SLH_SHARE_COUNT_B 55 // 流通B股
#define SLH_SHARE_COUNT_H 56 // 流通H股
#define SLH_SHARE_COUNT_NATIONAL 57 // 國有股
#define SLH_SHARE_COUNT_CORP 58 // 法人股
#define SLH_PROFIT_PSUD 59 // 每股未分配利潤
#define SLH_ASSET 60 // 總資產
#define SLH_RATIO_HOLDERRIGHT 61 // 股東權益比率
#define SLH_RATIO_LONGDEBT 62 // 長期負債率
#define SLH_RATIO_DEBT 63 // 資產負債率
// ★投資收益能力
#define SLH_NETASSET_PS 64 // 每股凈資產
#define SLH_NETASSET_PS_REGULATE 65 // 調整每股凈資產
#define SLH_EPS 66 // 每股收益
#define SLH_EPS_DEDUCT 67 // 扣除后每股收益
#define SLH_NET_PROFIT 68 // 凈利潤
#define SLH_MAIN_PROFIT 69 // 主營業務利潤
#define SLH_TOTAL_PROFIT 70 // 利潤總額
#define SLH_PROFIT_INC 71 // 主營利潤增長率
#define SLH_INCOME_INC 72 // 主營收入增長率
#define SLH_ASSET_INC 73 // 總資產增長率
#define SLH_ANNGAINS_AVERAGE 74 // 年平均收益率
#define SLH_ANNGAINS_STDDEV 75 // 收益標準差
#define SLH_BETA 76 // β值
#define SLH_SHARP 77 // 夏普風險指數
#define SLH_TRADE 78 // 行業
#define SLH_PROVINCE 79 // 省份
#define SLH_MAX 79
#define SLH_INVALID (UINT(-1))
#define SLH_USERDEFINE_BEGIN 10000
#define SLH_WIDTH_MIN 60
#define SLMAX_SLHTEXTLEN 256
typedef struct slh_data_t {
UINT slh_id;
char string[SLMAX_SLHTEXTLEN+1];
UINT weight;
char varname[MP_MaxVarNameLen];
}SLH_DATA;
extern SLH_DATA slh_data_array[SLH_MAX+1];
CSPString AfxGetVariantName( UINT nVariantID, BOOL bWithParameter ); // 根據股票列表項ID得到名稱,bWithParameter表示名稱中是否含有參數
BOOL AfxGetVariantNameArray( CSPStringArray & astr, BOOL bWithParameter ); // 得到所有股票列表項的名稱
UINT AfxGetVariantID( CSPString strName, BOOL bWithParameter ); // 根據股票列表項名稱得到ID
CSPString AfxGetVariantVarName( int nVariantID ); // 根據股票列表項ID得到使用在表達式中的變量名稱
CSPString AfxGetVariantVarName( CSPString strName, BOOL bWithParameter ); // 根據股票列表項名稱得到使用在表達式中的變量名稱
BOOL AfxGetVariantValue(UINT nVariantID, CStockInfo &info, double * pValue,
CStockContainer *pContainer ); // 得到某只股票的相應值,單位與股票列表視圖中相同
int AfxCompareVariantValue(int nVariantID, CStockInfo & info1, CStockInfo &info2,
CStockContainer *pContainer ); // 比較兩只股票的相應值
CSPString AfxGetVariantDispString(UINT nVariantID, CStockInfo &info,
CStockContainer *pContainer ); // 得到某只股票的相應值的顯示字串
COLORREF AfxGetVariantColor( UINT nVariantID, CStockInfo &info ); // 得到某只股票的相應值的顯示顏色
/***
表達式,可以包含變量
*/
class CExpress
{
public:
CExpress();
CExpress( const CExpress &src );
virtual ~CExpress();
CExpress & operator = ( const CExpress &src);
virtual void Serialize( CSPArchive &ar );
BOOL SetExpressString( CSPString strExpressOrg );
CSPString GetExpressString( );
virtual CSPString GetLastErrorMsg( );
BOOL GetExpressResult( double * pResult, BOOL * pError );
protected:
virtual BOOL PreCompile( );
virtual BOOL InitParser( );
protected:
CSPString m_strExpressOrg; // Save to disk
int m_nReserved; // Save to disk, Not Used
BOOL m_bIsModified;
CSPString m_strExpress;
CMathParser m_parser;
};
/***
新建指標,包含含有變量的表達式,在股票列表上顯示為一列
*/
class CIndex : public CExpress
{
public:
CIndex( );
CIndex( const CIndex &src );
~CIndex( );
UINT m_nID;
CSPString m_strName;
CSPString m_strDescript;
CSPString m_strReserved;
CIndex & operator = ( const CIndex &src );
virtual void Serialize( CSPArchive & ar );
BOOL IsInvalidID( );
BOOL SetNextID( );
virtual BOOL CheckExpressValid( );
BOOL GetExpressResult( double * pResult, CStockInfo &info, BOOL *pVariantNoValue, BOOL * pError );
protected:
virtual BOOL PreCompile( );
virtual BOOL InitParser( CStockInfo &info, BOOL *pVariantNoValue );
protected:
CSPDWordArray m_adwVariant; // temp data
};
//template class __declspec(dllexport) CSPArray<CIndex, CIndex &>;
typedef CSPArray<CIndex, CIndex &> CIndexArray;
/***
新建指標數組
*/
class CIndexContainer : public CIndexArray
{
public:
CIndexContainer( );
virtual ~CIndexContainer( );
// for access CIndexArray
virtual int Add(CIndex &newElement) { return CIndexArray::Add(newElement); }
void RemoveIndex( UINT nID );
CIndex & GetIndex( UINT nID );
CIndex & GetIndex( CSPString strName );
BOOL EditIndex( CIndex &index );
UINT GetNextID( );
void FileSerialize( CSPArchive & ar );
};
#endif // __STKLIB_EXPRESS_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -