问财量化选股策略逻辑
首先,我们需要找到至少5根均线重合的股票。这可以通过计算股票的均线数量来实现。我们可以使用以下代码:
def get均线数量(data):
# 计算股票的均线数量
num_lines = 0
for i in range(5, 0, -1):
if data['close'].rolling(i).mean().count() > 0:
num_lines += 1
return num_lines
接下来,我们需要找到昨天龙虎榜中出现的股票。这可以通过查询龙虎榜数据来实现。我们可以使用以下代码:
def get_yesterday_bars(data):
# 获取昨天的龙虎榜数据
bars = data['date'].where(data['date'] == pd.Timedelta(days=1))
return bars
然后,我们需要找到竞价涨幅大于-2且小于5的股票。这可以通过筛选数据来实现。我们可以使用以下代码:
def get_bars_with_positive_price_change(data):
# 获取竞价涨幅大于-2且小于5的股票
bars = data[(data['pre_close'] > data['close'] - 2) & (data['pre_close'] < data['close'] + 5)]
return bars
最后,我们需要将这些条件结合起来,找到至少5根均线重合的昨天龙虎榜中出现的竞价涨幅大于-2且小于5的股票。我们可以使用以下代码:
def get_qualified_bars(data):
# 获取至少5根均线重合的昨天龙虎榜中出现的竞价涨幅大于-2且小于5的股票
bars = get_yesterday_bars(data)
bars = bars.merge(get_bars_with_positive_price_change(data), on='date')
bars = bars.merge(get均线数量(bars), on='date')
bars = bars[bars['num_lines'] >= 5]
return bars
选股逻辑分析
该策略的逻辑是,首先计算股票的均线数量,然后获取昨天的龙虎榜数据,再筛选出竞价涨幅大于-2且小于5的股票,最后将这些条件结合起来,找到至少5根均线重合的昨天龙虎榜中出现的竞价涨幅大于-2且小于5的股票。
该策略的优点是能够筛选出符合条件的股票,从而缩小股票池。缺点是需要计算多个指标,可能会增加计算时间。此外,该策略可能会漏掉一些符合条件的股票,因为筛选条件比较严格。
有何风险?
该策略可能会漏掉一些符合条件的股票,因为筛选条件比较严格。此外,该策略可能会将一些不符合条件的股票纳入股票池,从而增加投资风险。
如何优化?
为了优化该策略,我们可以考虑增加筛选条件,例如筛选出成交量较大的股票或盈利能力较强的股票。此外,我们还可以考虑使用其他技术指标来筛选股票,例如MACD或RSI。
最终的选股逻辑
最终的选股逻辑如下:
def get_qualified_bars(data):
# 获取至少5根均线重合的昨天龙虎榜中出现的竞价涨幅大于-2且小于5的股票
bars = get_yesterday_bars(data)
bars = bars.merge(get_bars_with_positive_price_change(data), on='date')
bars = bars.merge(get均线数量(bars), on='date')
bars = bars[bars['num_lines'] >= 5]
bars = bars.merge(get_volume(bars), on='date')
bars = bars[bars['volume'] > 1000000]
bars = bars.merge(get_profit(bars), on='date')
bars = bars[bars['profit'] > 0.01]
return bars
其中,get_volume
和get_profit
函数分别计算股票的成交量和盈利能力。这些函数的代码可以参考以下伪代码:
def get_volume(data):
# 计算股票的成交量
bars = data['date'].where(data['date'] == pd.Timedelta(days=1))
volume = bars['volume'].sum()
return volume
def get_profit(data):
# 计算股票的盈利能力
bars = data['date'].where(data['date'] == pd.Timedelta(days=1))
close = bars['close']
open = bars['open']
profit = close - open
return profit
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。