问财量化选股策略逻辑
根据提供的信息,我们可以通过以下三个条件来筛选股票:
- 至少5根均线重合的股票
- 昨天换手率>8%
- 机器人概念且流通市值小于100亿
我们可以使用以下代码来实现这个策略:
import talib
import pandas as pd
def check均线多重合(candles):
# 计算5日、10日、20日、60日、120日均线
ma5 = talib.MA(candles.Close, timeperiod=5)
ma10 = talib.MA(candles.Close, timeperiod=10)
ma20 = talib.MA(candles.Close, timeperiod=20)
ma60 = talib.MA(candles.Close, timeperiod=60)
ma120 = talib.MA(candles.Close, timeperiod=120)
# 判断是否至少有5根均线重合
if len(set(ma5)) >= 5 or len(set(ma10)) >= 5 or len(set(ma20)) >= 5 or len(set(ma60)) >= 5 or len(set(ma120)) >= 5:
return True
else:
return False
def check换手率(candles):
# 计算昨天的换手率
close_price = candles.Close[-1]
open_price = candles.Open[-1]
volume = candles Volume[-1]
if volume / (open_price * close_price) > 8:
return True
else:
return False
def check机器人概念(candles):
# 检查是否包含机器人概念的股票
# 这里可以使用股票的题材概念来判断
if '机器人' in candles.Ticker:
return True
else:
return False
def check流通市值(candles):
# 检查流通市值是否小于100亿
market_cap = candles.Close[-1] * candles.Open[-1] * candles Volume[-1] / 1000000000
if market_cap < 100:
return True
else:
return False
# 从股票数据源中获取数据
df = pd.read_csv('stock_data.csv')
# 筛选出符合条件的股票
filtered_df = df[(df['Close'].rolling(window=5).apply(check均线多重合, raw=True) &
df['Close'].rolling(window=1).apply(check换手率, raw=True) &
df['Ticker'].str.contains('机器人', case=False) &
df['MarketCap'].apply(check流通市值, raw=True))]
# 输出符合条件的股票列表
print(filtered_df[['Ticker', 'Close']])
选股逻辑分析
这个策略的逻辑是通过计算股票的5日、10日、20日、60日、120日均线,来筛选出至少有5根均线重合的股票。然后,通过计算昨天的换手率,来筛选出昨天换手率大于8%的股票。最后,通过检查股票是否包含机器人概念,以及流通市值是否小于100亿,来筛选出符合条件的股票。
有何风险?
这个策略的风险在于,它只考虑了股票的短期价格走势和成交量,而忽略了其他因素,例如公司的财务状况、行业环境等。因此,这个策略可能会错过一些具有长期投资价值的股票。
如何优化?
为了优化这个策略,我们可以考虑增加一些其他的筛选条件,例如:
- 股票的市盈率是否合理
- 股票的业绩是否稳定
- 股票的行业是否具有前景
此外,我们还可以考虑使用更高级的量化技术,例如机器学习算法,来提高策略的准确性和稳定性。
最终的选股逻辑
最终的选股逻辑可以使用以下代码实现:
import talib
import pandas as pd
def check均线多重合(candles):
# 计算5日、10日、20日、60日、120日均线
ma5 = talib.MA(candles.Close, timeperiod=5)
ma10 = talib.MA(candles.Close, timeperiod=10)
ma20 = talib.MA(candles.Close, timeperiod=20)
ma60 = talib.MA(candles.Close, timeperiod=60)
ma120 = talib.MA(candles.Close, timeperiod=120)
# 判断是否至少有5根均线重合
if len(set(ma5))
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


