本文整理汇总了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