当前位置: 首页>>代码示例>>Python>>正文


Python Account.print_init_position方法代码示例

本文整理汇总了Python中account.Account.print_init_position方法的典型用法代码示例。如果您正苦于以下问题:Python Account.print_init_position方法的具体用法?Python Account.print_init_position怎么用?Python Account.print_init_position使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在account.Account的用法示例。


在下文中一共展示了Account.print_init_position方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: analyze

# 需要导入模块: from account import Account [as 别名]
# 或者: from account.Account import print_init_position [as 别名]
def analyze(file_name, merge_stock_operation_detail=False):
	account_type = re.sub('_normalized\.xls', '', file_name)
	flow_records = pd.read_excel(file_name, encoding='gbk')

	SinaQuote.reset()
	broker_processor = globals()['normal']	
	init_account = Account(None)
	for i, row in flow_records.iterrows():
		broker_processor.handle_row(row, init_account, i==0)

	init_account.calculate_init_cash_if_no_remain_amount(flow_records)
	init_account.print_position()
	init_account.print_init_position()
	init_account_value = init_account.calculate_init_position_value(20140101)
	init_date = int(init_account.get_init_date())
	print init_date
	print init_account_value
	print init_account.init_cash

	account = Account( init_account )
	account_status_data = []
	#print "%d: %s" % (1, account.report_init())
	process_day = datetime(2014,1,1)
	init_day = datetime(init_date/10000, init_date%10000/100, init_date%100)

	while process_day < init_day:
		account.set_date(int(process_day.strftime('%Y%m%d')))
		account.calculate_nv()
		print account.get_status_data()
		account_status_data.append(account.get_status_data())
		process_day = compute.next_bday(process_day)

	for i, row in flow_records.iterrows():
		d = broker_processor.get_row_date(row)
		row_date = datetime(d/10000, d%10000/100, d%100)
		while row_date > process_day:
			account.calculate_nv(int(process_day.strftime('%Y%m%d')))
			print account.get_status_data()
			#if process_day == datetime(2014,2,24) or process_day == datetime(2014,2,25):
			#	account.print_position()
			#if int(process_day.strftime('%Y%m%d')) == 20140509 or int(process_day.strftime('%Y%m%d')) == 20140512:
			#account.report_position_detail()
			account_status_data.append(account.get_status_data())
			process_day = compute.next_bday(process_day)
			account.set_date(int(process_day.strftime('%Y%m%d')))
		broker_processor.handle_row(row, account, i==0)
		account.calculate_nv() # 每个操作必须重新计算净值
		#print account.get_status_data(), d, row['operation'], row['actual_amount'], row['stock_code'], row['stock_name']
	while process_day <= datetime(2014,12,31):
			account.calculate_nv(int(process_day.strftime('%Y%m%d')))
			print account.get_status_data()
			account_status_data.append(account.get_status_data())
			process_day = compute.next_bday(process_day)
			account.set_date(int(process_day.strftime('%Y%m%d')))
		
	df_nv_history = pd.DataFrame(data=account_status_data, columns=account.get_status_columns())
	(uid, name) = get_uid_name()
	out_file_name = uid + '_' + name + '_' + account_type + u'_分析结果' + datetime.now().strftime('%Y%m%d%H%M%S') + '.xls'
	if merge_stock_operation_detail:
		out_file_name = u'/Users/jiangbin/百度云同步盘/work/for_renjie/'+out_file_name
	(profit_sum_list, profit_detail_df_list) = account.get_profit_detail(20141231)
	#df_profit_detail = pd.DataFrame(data=profit_list, columns=profit_columns)
	df_profit_sum = pd.DataFrame(data=profit_sum_list, columns=[u'代码', u'名称', u'累计赢利'])
	df_init_position = init_account.get_init_position_dataframe()
	df_final_position = account.get_position_dataframe(20141231)
	#account.stock_position.get_detail_stock_flow(20141231)
	buy_sell_count = account.buy_sell_count

	df_overview = pd.DataFrame()
	with pd.ExcelWriter(out_file_name) as writer:
		df_overview = print_result_overview(account_type, df_nv_history, buy_sell_count, writer)
		df_nv_history.to_excel(writer, sheet_name=u'净值历史', encoding='gbk')
		df_profit_sum = add_stock_code_prefix(df_profit_sum, u'代码')
		df_profit_sum.to_excel(writer, sheet_name=u'个股赢利汇总', encoding='gbk')
		write_profit_detail(writer, profit_detail_df_list, merge_stock_operation_detail)
		df_init_position[u'类型'] = u'期初持仓'
		df_final_position[u'类型'] = u'期末持仓'
		df_position_all = pd.concat([df_init_position, df_final_position])
		df_position_all = add_stock_code_prefix(df_position_all, u'代码')
		change_init_date(df_position_all)
		df_position_all.to_excel(writer, sheet_name=u'期初期末持仓', encoding='gbk')

		
	return df_overview
开发者ID:imagebody,项目名称:ulopark,代码行数:86,代码来源:analyze_account.py


注:本文中的account.Account.print_init_position方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。