假设初始资 有50万元整,从这二只TP 上市开始进行以下策略编写 最终特出由策略开始之日至今为止的收益情况;分别从tushare上获取二只gtf 的数据,给二个df设置宁段“pctN”, 来存放过去N
时间: 2024-12-11 20:26:51 浏览: 5
首先,让我们明确一下任务:您想要创建一个基于初始资金50万元的投资策略,利用Tushare API获取两只股票的数据,并计算自策略开始以来的收益率。在这个场景下,我们需要做以下几个步骤:
1. **数据获取**:使用Python库如`tushare`连接到Tushare API,获取指定股票(假设是A股的两只股票,例如"000001.SZ"和"600000.SH")的历史价格数据。
```python
import tushare as ts
# 获取两只股票的历史行情数据
pro = ts.pro_api('your_tushare_token') # 请替换为您的Tushare个人token
stock_a = pro.daily(ts_code='000001.SZ', start_date='YYYY-MM-DD', end_date='YYYY-MM-DD')
stock_b = pro.daily(ts_code='600000.SH', start_date='YYYY-MM-DD', end_date='YYYY-MM-DD')
```
2. **数据处理**:将获取的数据整合成DataFrame,并添加`pctN`列,表示过去N天的收益率。
```python
# 假设N=20
N = 20
df_stock_a = stock_a[['open', 'close']].copy()
df_stock_b = stock_b[['open', 'close']].copy()
for df in [df_stock_a, df_stock_b]:
df['pctN'] = (df['close'].shift(-N) - df['close']) / df['close'] * 100
```
3. **策略实现**:基于历史数据,制定投资策略。比如,可以设置买入卖出点位,计算每次交易后的持仓市值,然后累计收益。
```python
# 假设简单的买低卖高策略
df_stock_a['position'] = np.where(df_stock_a['pctN'] < 0, df_stock_a['close'], 0)
df_stock_b['position'] = np.where(df_stock_b['pctN'] < 0, df_stock_b['close'], 0)
# 计算累计收益
df_stock_a['cumulative_return'] = df_stock_a['position'].cumsum() * (df_stock_a['close'].iloc[0] / 500000)
df_stock_b['cumulative_return'] = df_stock_b['position'].cumsum() * (df_stock_b['close'].iloc[0] / 500000)
```
4. **结果评估**:最后,您可以查看每只股票策略结束至今的总收益以及平均年化回报率等指标。
注意:由于涉及到实际编程操作和实时数据获取,上述代码需要在本地环境中运行,并根据实际情况调整日期、股票代码和Tushare token。另外,策略的实际效果会受到市场波动的影响,这里只是一个简化示例。
阅读全文