20日内有至少一根涨幅大于5%的阳线源码是什么

在Python中,可以使用以下的策略源码实现要求:

这个源码假设你已经有一个可以反映大盘涨跌的`pandas_datareader`库中的`stock_prices`数据集。


```python
import pandas_datareader as pdr
import datetime
import numpy as np
import talib

# 设置参数
start_date = '开始日期' # 开始日期,比如:2023-01-01
end_date = '结束日期' # 结束日期,比如:当前日期
days = int(20) # 天数,即搜索周期为20天
stocks = ['股票代码1', '股票代码2', ...] # 需要关注的股票代码列表
pct_change_threshold = 0.05 # 涨幅大于5%

stock_prices = pdr.get_data_yahoo(start_date, end_date, stocks)
df = stock_prices['Adj Close'].copy()

def positive_day(security, dates):
days_ahead = (len(dates) - 1) # 由于可能有till the next day,所以要额外算一天
if days_ahead > 0:
dates = dates[:days_ahead] # 保留未来的数据,因为有可能到第二天才涨
stocks = [security] # 只考虑一只股票
data = pdr.get_hist_data(security, start=dates[0], end=dates[-1]) # 获取历史数据
return data['Close'].diff() > 0 # 判断是否有上涨趋势

df['阳线'] = df.apply(positive_day, dates=df['日期']) # 对每只股票进行判断
df['涨幅'] = df['阳线'].apply(lambda x: x.any() and talib.MAX(x).max() / x.max() - 1) # 计算涨幅大于5%的股票数量
print(df[df['涨幅'] > pct_change_threshold]) # 打印结果
```
这段代码首先定义了一个函数`positive_day`,用于判断某只股票在给定日期范围内的涨跌情况。然后,它遍历每只股票的历史数据,判断是否有至少一根涨幅大于5%的阳线。最后,它统计满足条件的股票数量并打印结果。

注意这段代码中的数据来源和指标(TA-Lib)都可能因为具体的情况而有所不同。此外,你需要自己定义'开始日期'、'结束日期'以及'股票代码'。此外,TA-Lib可能需要额外安装,可以使用pip install TA-Lib进行安装。

推荐

车牌查询
桂ICP备20004708号-3