写一Pyhon程席,能够选取1、最近处于上涨趋势股票 2、筑底爆发的股票
时间: 2024-01-13 11:05:14 浏览: 21
好的,以下是符合你要求的Python代码:
1. 最近处于上涨趋势股票:
```
import tushare as ts
import talib as ta
# 获取股票数据
pro = ts.pro_api()
df = pro.daily(ts_code='600000.SH', start_date='20210101', end_date='20211231')
# 计算指标
df['ma5'] = ta.MA(df['close'], timeperiod=5) # 5日均线
df['ma10'] = ta.MA(df['close'], timeperiod=10) # 10日均线
df['ma20'] = ta.MA(df['close'], timeperiod=20) # 20日均线
df['ma60'] = ta.MA(df['close'], timeperiod=60) # 60日均线
# 判断是否处于上涨趋势
if df['close'].iloc[-1] > df['ma5'].iloc[-1] > df['ma10'].iloc[-1] > df['ma20'].iloc[-1] > df['ma60'].iloc[-1]:
print('该股票处于上涨趋势')
else:
print('该股票未处于上涨趋势')
```
解释一下代码:
1. 使用Tushare库获取股票数据,其中`ts_code`参数指定股票代码,`start_date`和`end_date`参数指定日期范围;
2. 使用TA-Lib库计算所需的指标,其中涉及到的函数和参数分别为:
* `ta.MA()`:计算移动平均线,输入参数为收盘价序列和时间周期;
3. 判断是否处于上涨趋势,条件为收盘价大于5日均线且5日均线大于10日均线且10日均线大于20日均线且20日均线大于60日均线。
2. 筑底爆发的股票:
```
import tushare as ts
import talib as ta
# 获取股票数据
pro = ts.pro_api()
df = pro.daily(ts_code='600000.SH', start_date='20210101', end_date='20211231')
# 计算指标
df['ma10'] = ta.MA(df['close'], timeperiod=10) # 10日均线
df['ma20'] = ta.MA(df['close'], timeperiod=20) # 20日均线
df['ma60'] = ta.MA(df['close'], timeperiod=60) # 60日均线
df['macd'], df['macdsignal'], df['macdhist'] = ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9) # MACD指标
# 判断是否筑底爆发
if df['close'].iloc[-1] > df['ma10'].iloc[-1] > df['ma20'].iloc[-1] > df['ma60'].iloc[-1] and df['macd'].iloc[-1] > df['macdsignal'].iloc[-1]:
print('该股票筑底爆发')
else:
print('该股票未筑底爆发')
```
解释一下代码:
1. 使用Tushare库获取股票数据,其中`ts_code`参数指定股票代码,`start_date`和`end_date`参数指定日期范围;
2. 使用TA-Lib库计算所需的指标,其中涉及到的函数和参数分别为:
* `ta.MA()`:计算移动平均线,输入参数为收盘价序列和时间周期;
* `ta.MACD()`:计算MACD指标,输入参数为收盘价序列和快慢移动平均线的时间周期和信号线的时间周期;
3. 判断是否筑底爆发,条件为收盘价大于10日均线且10日均线大于20日均线且20日均线大于60日均线且MACD柱形图大于MACD信号线。