亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stock.cpp

?? 通信達接口引警 可直接下載股票數據,建立自已的股票軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "config.h"

#include <string>
#include <vector>
#include <set>
#include <map>
#include <iostream>
//#include <boost/assign/std/vector.hpp>
//#include <boost/assign/list_inserter.hpp>
#include <boost/thread/detail/config.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/recursive_mutex.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>
#include "boost/filesystem/operations.hpp" // includes boost/filesystem/path.hpp
#include "boost/filesystem/fstream.hpp"    // ditto
// #include <boost/smart_assert/assert.hpp>
#include <boost/foreach.hpp>
#include "stockio.h"

#include "util.hpp"
#include "stock.h"

using namespace boost;

BOOST_CLASS_TRACKING(StockMarket::GBBQMap, serialization::track_never);

namespace StockMarket{
//	using namespace assign;

const float MarketInfo::tax = 0.01f;				// 1 %

unsigned int MarketInfo::stocks_count[MarketInfo::MARKET_MAX];
StringSet	 MarketInfo::stocks_set[MarketInfo::MARKET_MAX];

recursive_mutex transact_mutex;
recursive_mutex bid_mutex;

StockTransact::DateTransact		today_transact;
StockTransact::TransactMap		hist_transact;
StockBid::BidMap 				instant_price_list;
#if 0
int StockBasicInfo::apply_gbbq_front(const string &stock_code, const gregorian::date& ref_dt
	, const gregorian::date& dst_dt, int ref_price)
{
	float new_price = static_cast<float>(ref_price);
	uint uint_ref_dt = date_to_uint(ref_dt);
	uint uint_dst_dt = date_to_uint(dst_dt);
	DateGBBQ &dgb = stock_gbbq_info[stock_code];
	for(DateGBBQ::const_iterator iter = dgb.begin(); iter < dgb.end(); ++iter)
	{
		if(iter->dt <= uint_ref_dt) 
			continue;
		else if(iter->dt <= uint_dst_dt) 
		{
			if(1 == iter->chg_type && iter->data.bonus.cash > 0.1)		// 派發現金
			{
				new_price -= iter->data.bonus.cash * 10;
			}
			if(1 == iter->chg_type && iter->data.bonus.sell_price > 0.1)	// 配股
			{
				float sell_price = 0, sell_count = 0;
				sell_price = iter->data.bonus.sell_price * 100;			// 轉化為分
				sell_count = iter->data.bonus.sell_count;
				new_price += ((sell_price * sell_count) / 10);
			}
			else if(1 == iter->chg_type&& iter->data.bonus.give_count > 0)	// 送或配股或轉增股上市
			{
				new_price = (new_price * 10) / (10 + iter->data.bonus.give_count);
			}
			else if(6 == iter->chg_type && iter->data.bonus.sell_price > 0.1)	// 增發
			{
			}
			else if(8 == iter->chg_type)									// 增發上市
			{
			}
		}
		else
		{
			break;
		}
	}
	if(new_price < 0) new_price = 0;
	return static_cast<int>(new_price);
	
}
#endif
string StockBasicInfo::get_gbbq_file_name(uint tr_date)
{
	const string stock_gbbq_file = "F:\\Develop\\stock\\data\\G";
	stringstream ss;
	ss << stock_gbbq_file << tr_date << ".mat";
	return ss.str();
}

bool StockBasicInfo::is_gbbq_file_exist(uint tr_date)
{
	return is_file_exist(get_gbbq_file_name(tr_date));
}

void StockBasicInfo::clear_gbbq_info()
{
	stock_gbbq_info.clear();
}

#if 0
bool StockBasicInfo::load_gbbq_info(gregorian::date tr_date, int day_count)
{
	while(day_count--)
	{
		if(is_gbbq_file_exist(date_to_uint(tr_date)))
		{
			string filename = get_gbbq_file_name(date_to_uint(tr_date));
			ifstream ifs(filename.c_str(), ios::binary);
			if(ifs)
			{
				archive::binary_iarchive ia(ifs);
				ia >> stock_gbbq_info;
				std::cout << "GBBQ file " << filename << " applied\r\n";
				return true;
			}
		}
		tr_date -= gregorian::date_duration(1);
	}
	std::cout << "No GBBQ found!\r\n";
	return false;
}
#endif

void StockBasicInfo::save_gbbq_info(uint tr_date)
{
	if (is_gbbq_file_exist(tr_date))
	{
		return;
	}
	string filename = get_gbbq_file_name(tr_date);

	int maxDealCount = 0;
	GBBQMap::const_iterator iter;
	for(iter = stock_gbbq_info.begin();iter !=  stock_gbbq_info.end(); ++iter)
	{
		if(iter->second.size() > (uint)maxDealCount)
		{
			maxDealCount = iter->second.size();
		}
	}

	const int col_count = 8;
	int dims[3];
	dims[0] = col_count;
	dims[1] = maxDealCount;
	dims[2] = stock_gbbq_info.size();
	mxArray *mx_t0_data = mxCreateNumericArray(3, &dims[0], mxDOUBLE_CLASS, mxREAL);
	double *p_mxT0data = mxGetPr(mx_t0_data), *p_temp_mxT0data = p_mxT0data;
	
	const gregorian::date christ_date(2000,1,1);
	for(GBBQMap::const_reverse_iterator iter = stock_gbbq_info.rbegin(); iter != stock_gbbq_info.rend(); ++iter)
	{
		for(DateGBBQ::const_iterator iter_code = iter->second.begin();iter_code !=  iter->second.end(); ++iter_code)
		{
			p_temp_mxT0data[0] = iter->first;
			p_temp_mxT0data[1] = (uint_to_date(iter->first) - christ_date).days() + 730486;	// 相當于 matlab 的 date_num
			p_temp_mxT0data[2] = atoi(iter_code->code.c_str());
			p_temp_mxT0data[3] = iter_code->chg_type;
			p_temp_mxT0data[4] = iter_code->data.gb.old_cir;
			p_temp_mxT0data[5] = iter_code->data.gb.old_ttl;
			p_temp_mxT0data[6] = iter_code->data.gb.new_cir;
			p_temp_mxT0data[7] = iter_code->data.gb.new_ttl;

			p_temp_mxT0data += col_count;
		}
		p_mxT0data += maxDealCount * col_count;
		p_temp_mxT0data = p_mxT0data;
	}
	matlab_engine::Instance().saveVarToFile(filename, mx_t0_data, "gbbq_info");
	mxDestroyArray(mx_t0_data);

}

bool StockBasicInfo::load_basic_info()
{
	// 加載股票基本資料
	// 基本信息
	stock_base_info.clear();

	BaseInfo	bs;
	const string stock_data_path = "C:\\Program Files\\xyzq\\T0002\\";
	string full_path = stock_data_path + "BASE.DBF";
	fstream fs(full_path.c_str(), ios::in);
//	fstream ofs("d:\\temp\\t.txt", ios::out);

	if(!fs)	return false;

	int record_off = 0x522;
	fs.seekg(record_off);
	char c;
	fs >> c;
	while(!fs.eof() && -1 != fs.tellg())
	{
		fs >> bs;
		record_off += BaseInfo::record_len;
		stock_base_info.insert(make_pair(bs.stock_code, bs));
//		ofs << bs.stock_code << endl;
		fs.seekg(record_off);
		fs >> c;
	}
	return true;

}

void StockBasicInfo::save_basic_info()
{
	const string filename = "F:\\Develop\\stock\\data\\basic_info.mat";

	StockBaseInfoMap::const_iterator iter_code;
	const int deal_col_count = 31;
	int dims[2];
	dims[0] = deal_col_count;
	dims[1] = stock_base_info.size();

	mxArray *mx_t0_data = mxCreateNumericArray(2, &dims[0], mxDOUBLE_CLASS, mxREAL);
	double *p_mxT0data = mxGetPr(mx_t0_data), *p_temp_mxT0data = p_mxT0data;
	
	for(iter_code = stock_base_info.begin();iter_code !=  stock_base_info.end(); ++iter_code)
	{
		p_temp_mxT0data[0] = atoi(iter_code->first.c_str());
		p_temp_mxT0data[1] = iter_code->second.update_time;
		p_temp_mxT0data[2] = iter_code->second.ttl_amount;
		p_temp_mxT0data[3] = iter_code->second.state_own_amount;
		p_temp_mxT0data[4] = iter_code->second.init_amount;
		p_temp_mxT0data[5] = iter_code->second.corp_amount;
		p_temp_mxT0data[6] = iter_code->second.b_amount;
		p_temp_mxT0data[7] = iter_code->second.h_amount;
		p_temp_mxT0data[8] = iter_code->second.cir_amount;
		p_temp_mxT0data[9] = iter_code->second.empl_amount;
		p_temp_mxT0data[10] = iter_code->second.ttl_asset;
		p_temp_mxT0data[11] = iter_code->second.varible_asset;
		p_temp_mxT0data[12] = iter_code->second.firm_asset;
		p_temp_mxT0data[13] = iter_code->second.invisible_asset;
		p_temp_mxT0data[14] = iter_code->second.long_term_invest;	// 長期投資
		p_temp_mxT0data[15] = iter_code->second.varible_debt;		// 流動負債
		p_temp_mxT0data[16] = iter_code->second.long_term_debt; 	// 長期負債
		p_temp_mxT0data[17] = iter_code->second.accu_fund;			// 公積金
		p_temp_mxT0data[18] = iter_code->second.net_asset;			// 凈資產
		p_temp_mxT0data[19] = iter_code->second.major_income;		// 主營收入
		p_temp_mxT0data[20] = iter_code->second.major_profit;		// 主營利潤
		p_temp_mxT0data[21] = iter_code->second.bussiness_income;	// 營業收入
		p_temp_mxT0data[22] = iter_code->second.invest_income;		// 營業收入
		p_temp_mxT0data[23] = iter_code->second.allowance;			// 補貼收入
		p_temp_mxT0data[24] = iter_code->second.non_bussiness_income;	// 業外收入
		p_temp_mxT0data[25] = iter_code->second.income_adjustment;	// 收入調整
		p_temp_mxT0data[26] = iter_code->second.ttl_profit; 		// 利潤總額
		p_temp_mxT0data[27] = iter_code->second.unknown3;			// 
		p_temp_mxT0data[28] = iter_code->second.net_profit; 		// 稅后利潤
		p_temp_mxT0data[29] = iter_code->second.undist_profit;		// 未分配利潤
		p_temp_mxT0data[30] = iter_code->second.per_net_assert2;	// 每股凈資產2

		p_temp_mxT0data += deal_col_count;
	}
	matlab_engine::Instance().saveVarToFile(filename, mx_t0_data, "basic_info");
	mxDestroyArray(mx_t0_data);

}

bool StockBasicInfo::load_block_info()
{
	// 加載板塊資料
	stock_block_info.clear();

	const string stock_data_path = "C:\\Program Files\\xyzq\\T0002\\";
	string full_path = stock_data_path + "BLOCK.DAT";
	fstream fs(full_path.c_str(), ios::in | ios::binary);
	if(!fs)	return false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲自拍偷拍综合| 欧美本精品男人aⅴ天堂| 日韩一区二区在线观看| 国产性色一区二区| 日韩黄色免费网站| 91热门视频在线观看| 国产午夜精品理论片a级大结局 | 久久久99精品久久| 午夜影视日本亚洲欧洲精品| 成人18精品视频| 久久久精品tv| 麻豆精品新av中文字幕| 欧美自拍丝袜亚洲| 国产亚洲欧美日韩俺去了| 美女免费视频一区| 欧美日韩国产bt| 亚洲国产精品久久不卡毛片| 91在线你懂得| 国产欧美日韩另类一区| 韩国中文字幕2020精品| 日韩欧美一区在线| 美国三级日本三级久久99| 欧美丝袜丝交足nylons| 日韩理论片网站| 91在线小视频| 亚洲蜜桃精久久久久久久| av在线这里只有精品| 国产精品私人影院| 成人免费观看男女羞羞视频| 国产精品污网站| 成人国产精品视频| 成人免费在线观看入口| 色哟哟一区二区在线观看| 中文字幕一区二区三区蜜月| 99麻豆久久久国产精品免费优播| 国产精品入口麻豆原神| 成人99免费视频| 一区二区三区在线视频免费 | eeuss影院一区二区三区| 中文无字幕一区二区三区| 成人动漫在线一区| 日韩码欧中文字| 欧美色大人视频| 麻豆精品一区二区综合av| 欧美精品一区二区在线观看| 国产精品亚洲人在线观看| 国产精品免费看片| 91黄色在线观看| 美腿丝袜亚洲一区| 国产亚洲一区二区三区| 99re6这里只有精品视频在线观看| 亚洲精品菠萝久久久久久久| 3d动漫精品啪啪1区2区免费| 国内精品免费在线观看| 中文字幕永久在线不卡| 欧美色网一区二区| 久久激情五月激情| 1024成人网| 91麻豆精品国产自产在线观看一区| 免费在线观看精品| 中文字幕一区二区三区在线不卡| 欧美日韩精品一区二区在线播放| 美国欧美日韩国产在线播放| 亚洲3atv精品一区二区三区| 久久综合五月天婷婷伊人| 99精品国产视频| 美女视频一区二区| 1区2区3区国产精品| 日韩美女主播在线视频一区二区三区 | 最新国产成人在线观看| 欧美精选在线播放| 高清国产一区二区| 天天色 色综合| 欧美国产日本视频| 欧洲视频一区二区| 国产91丝袜在线18| 亚洲444eee在线观看| 国产精品白丝在线| 日韩一卡二卡三卡四卡| 成人av中文字幕| 精品一区二区三区免费| 亚洲激情中文1区| 久久欧美一区二区| 欧美一区二区三区思思人| proumb性欧美在线观看| 精品中文av资源站在线观看| 一区二区三区日本| 日韩毛片精品高清免费| 久久精品视频网| 欧美一区二区精美| 欧美日本韩国一区二区三区视频| 大尺度一区二区| 国产在线精品一区二区| 人禽交欧美网站| 亚洲日本在线观看| 欧美激情一区在线| 久久影院视频免费| 日韩欧美综合一区| 欧美一区二区在线免费观看| 在线视频中文字幕一区二区| 不卡的电影网站| 丰满少妇在线播放bd日韩电影| 日产精品久久久久久久性色| 成人精品免费看| 激情图区综合网| 日韩av高清在线观看| 天天免费综合色| 日韩在线播放一区二区| 一二三区精品福利视频| 亚洲男人的天堂在线观看| 国产欧美一区二区精品性色 | 91国内精品野花午夜精品| 有码一区二区三区| 国产欧美一区二区三区网站| 欧美日韩成人在线| 成人久久久精品乱码一区二区三区| 一区二区三区日本| 亚洲日本va在线观看| 欧美大片在线观看一区| 91精品国产欧美一区二区18| 91网上在线视频| 成人小视频在线| 久久精品噜噜噜成人88aⅴ| 亚洲综合一区二区精品导航| 国产性天天综合网| 中文字幕免费在线观看视频一区| 欧美性猛片xxxx免费看久爱| 一本色道久久综合亚洲aⅴ蜜桃| 国产在线精品免费| 精品一区二区三区av| 麻豆精品视频在线观看| 久久精品国产在热久久| 国产iv一区二区三区| 国产乱码精品一区二区三| 国产乱码一区二区三区| 韩国视频一区二区| 精品一区二区在线播放| 爽爽淫人综合网网站| 国产在线精品视频| jlzzjlzz亚洲日本少妇| 日韩精品在线看片z| 日韩精品一区二区三区四区 | 欧美精品一区二区三区视频| 亚洲高清免费在线| 中文文精品字幕一区二区| 国产乱码精品一品二品| 亚洲与欧洲av电影| 麻豆精品精品国产自在97香蕉 | 中文字幕在线不卡一区二区三区| 一个色综合网站| 国模无码大尺度一区二区三区| jvid福利写真一区二区三区| 欧美美女黄视频| 久久九九99视频| 亚洲综合在线电影| 国产乱人伦偷精品视频不卡| 91女神在线视频| 欧美tickling挠脚心丨vk| 日日摸夜夜添夜夜添精品视频| 国产精品白丝jk黑袜喷水| 欧美日韩亚洲国产综合| 国产精品视频线看| 秋霞午夜av一区二区三区| 99re热视频精品| 久久亚洲一级片| 婷婷亚洲久悠悠色悠在线播放| 成人精品一区二区三区四区| 91精品一区二区三区久久久久久 | 久久九九99视频| 日韩av一二三| 欧美主播一区二区三区| 国产精品欧美一级免费| 国产麻豆精品久久一二三| 欧美精品欧美精品系列| 伊人色综合久久天天| 国产传媒久久文化传媒| 日韩欧美你懂的| 亚洲无线码一区二区三区| 99re8在线精品视频免费播放| 久久色成人在线| 看国产成人h片视频| 777久久久精品| 亚洲va在线va天堂| 在线观看日韩高清av| 成人欧美一区二区三区1314| 国产成人av电影在线播放| 久久你懂得1024| 色婷婷久久久久swag精品| 久久精品视频一区二区三区| 国产综合成人久久大片91| 日韩欧美你懂的| 黄色日韩网站视频| 亚洲精品一区二区三区99| 精品亚洲成av人在线观看| 精品欧美一区二区三区精品久久 | 久久伊99综合婷婷久久伊| 久久国内精品自在自线400部| 91精品国产入口| 久久99国产精品麻豆| 久久综合国产精品|