上述代码的stock_pool改成trade_day前三个月当中最高价是最低价两倍以上的股票
时间: 2024-03-23 12:43:53 浏览: 65
asm_java.zip_java stock_交易_智能 股票_股票 stock_股票 交易
5星 · 资源好评率100%
好的,以下是将stock_pool改为前三个月中最高价是最低价两倍以上的股票的代码实现:
```python
import tushare as ts
import datetime
pro = ts.pro_api('你的token') # 这里需要填写你的tushare token
# 获取当前日期
today = datetime.datetime.now().strftime('%Y%m%d')
# 计算前三个月的日期范围
three_months_ago = (datetime.datetime.now() - datetime.timedelta(days=90)).strftime('%Y%m%d')
# 获取所有股票的基本信息
stock_info = pro.stock_basic(list_status='L', fields='ts_code,name,industry')
# 遍历所有股票,筛选出前三个月最高价是最低价两倍以上的股票
stock_pool = []
for index, row in stock_info.iterrows():
ts_code = row['ts_code']
name = row['name']
industry = row['industry']
# 获取前三个月的日线行情数据
df = pro.daily(ts_code=ts_code, start_date=three_months_ago, end_date=today)
if len(df) < 60:
continue
# 计算前三个月最高价和最低价
max_price = df['high'].max()
min_price = df['low'].min()
# 判断最高价是否是最低价的两倍以上
if max_price >= 2 * min_price:
stock_pool.append(ts_code)
# 获取股票交易日历
cal = pro.trade_cal(exchange='', start_date='20160101', end_date='20211231')
trade_days = cal[cal.is_open == 1]['cal_date'].values
# 遍历所有交易日
for i, trade_day in enumerate(trade_days):
if i >= 1500:
break
# 获取当日所有股票行情数据
df = pro.daily(trade_date=trade_day)
# 进行股票交易
for code in stock_pool:
# 获取股票当日行情数据
stock_data = df[df.ts_code == code]
if len(stock_data) == 0:
continue
# 判断是否买入股票
if stock_data.iloc[0]['pct_chg'] > 0:
print(trade_day, code, '买入')
# 判断是否卖出股票
elif stock_data.iloc[0]['pct_chg'] < 0:
print(trade_day, code, '卖出')
# 否则不进行交易
else:
pass
```
这段代码首先获取当前日期,并计算出前三个月的日期范围。然后,我们从tushare中获取所有股票的基本信息,并遍历所有股票,筛选出前三个月中最高价是最低价两倍以上的股票,将其加入股票池中。接着,我们按照之前的方法遍历所有交易日,并进行股票交易。注意,这里同样需要用到tushare的API,所以需要先在tushare官网上注册账号并获取token,然后将token替换代码中的相应部分。
阅读全文