请使用A股招商银行回测一下,测试周期为2022年1月1日至2022年12月31日,1月1日购买1万元招商银行,每上涨5%卖出持有总金额的20%,每下跌5%买入2000元,请问2022年12月31日股票的受益和总金额是多少,高峰期投入的总金额

动态 未结 0 108
小小草
小小草 LV1 2023年9月23日 23:40 发表
首先,需要获取2022年1月1日至2022年12月31日的招商银行股票历史数据。在此我们使用Wind终端获取数据。 经过查询,2022年1月3日是A股开市第一天,因此我们从2022年1月3日开始进行回测。 根据题目要求,我们可以编写以下Python代码: ```python import pandas as pd import numpy as np # 读取招商银行股票历史数据 data = pd.read_excel('招商银行.xlsx', index_col=0) # 设置初始资金为1万元 money = 10000 # 记录持有股票数量和成本价 shares = 0 cost_price = 0 # 遍历每个交易日 for i in range(len(data)): # 获取当日收盘价 close_price = data.iloc[i]['收盘价'] # 如果上涨5%,卖出20%的持有股票 if close_price >= cost_price * 1.05: sell_shares = int(shares * 0.2) money += sell_shares * close_price shares -= sell_shares cost_price = (cost_price * shares + sell_shares * close_price) / (shares + sell_shares) # 如果下跌5%,买入2000元的股票 elif close_price <= cost_price * 0.95: buy_money = 2000 buy_shares = int(buy_money / close_price) money -= buy_money shares += buy_shares cost_price = (cost_price * shares + buy_shares * close_price) / (shares + buy_shares) # 计算最后一天的股票价值和总金额 last_close_price = data.iloc[-1]['收盘价'] stock_value = shares * last_close_price total_money = money + stock_value # 输出结果 print('2022年12月31日股票价值:%.2f元' % stock_value) print('2022年12月
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复