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

📄 stock_selector.h

📁 股票分析源代码
💻 H
字号:
#ifndef __HBSTOCK2_STOCK_SELECTOR_H__
#define __HBSTOCK2_STOCK_SELECTOR_H__

#include <vector>
#include <map>
#include <set>
#include <string>

#include <ace/Service_Object.h>
#include <ace/Refcounted_Auto_Ptr.h>
#include <ace/Null_Mutex.h>
#include <ace/DLL.h>

#include "hbstock2/data_config.h"
#include "hbstock2/hbstock_exception.h"
#include "gnu/app_config.h"

#include "hbstock2/model_base.h"

namespace hbstock2
{
	
enum PeriodType {SHORT_LINE,MIDDLE_LINE,LONG_LINE};

struct SelectorData
{	
	unsigned long id;	
	char   code[LEN_CODE+1];
	char   day[LEN_DATE+1];
	
	int   selector_id;
	char  selector_name[LEN_NAME+1];
	char  selector_title[LEN_NAME+1];
	float priority;
	
	PeriodType period_type;
	
	bool is_up;	
	bool is_expect_selected;
	bool is_selected;	

public :
	SelectorData() :
		id(0),				
		selector_id(0),
		priority(0),
		period_type(MIDDLE_LINE),
		is_up(true),
		is_expect_selected(true),
		is_selected(true)
	{		
		code[0] = 0;
		day[0] = 0;	
		selector_name[0] = 0;
		selector_title[0] = 0;	
	}	
};

bool SelectorDataSort (const SelectorData& data1,const SelectorData& data2) ;

typedef std::vector<SelectorData> VectSelectorData;
typedef ACE_Refcounted_Auto_Ptr<VectSelectorData,ACE_Null_Mutex> VectSelectorDataPtr;

class SelectorPriority
{

public :
	bool set_priority(const unsigned int i_index,const float f_priority);
	bool set_weigh(const unsigned int i_index,const float f_weigh);
	
	bool get_priority(const unsigned int i_index,float f_priority) const;
	bool get_weigh(const unsigned int i_index,float f_weigh) const;
	
	void init_priority(const unsigned int i_size,const float f_priority=100);
	void init_priority(const float f_priority=100);
	void init_weigh();
	void init_weigh(const std::vector<float>& vect_weigh);
	
	float result();

private :
	std::vector<float> m_vect_weigh;
	std::vector<float> m_vect_priority;
};

class StockSelector : public ModelConfigParameter,
	public ModelBaseInfo,
	public ACE_Service_Object
{
public:
	virtual ~StockSelector(){}	
	
	virtual int init (int argc, ACE_TCHAR *argv[]) = 0;
    virtual int fini (void) = 0;
    virtual int info (ACE_TCHAR **str, size_t len) const = 0;
    
	// select function
	virtual bool is_up() const = 0;
	virtual PeriodType get_period_type() const = 0;
	
	virtual bool prepare() = 0;
	virtual bool exec_select(SelectorData& data,
		const char* p_ch_code,const char* p_ch_date=0) = 0;
	virtual bool post(VectSelectorData& vect_selector_data) = 0;
		
}; //StockSelector

typedef ACE_Refcounted_Auto_Ptr<StockSelector,ACE_Null_Mutex> StockSelectorPtr;

} // namespace hbstock2
#endif  // #ifndef __HBSTOCK2_STOCK_SELECTOR_H__

⌨️ 快捷键说明

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