问财量化选股策略逻辑
在问财中,我们可以通过以下量化策略来筛选出至少5根均线重合的股票,换手率>2%且<9%,macd零轴以上的股票:
- 筛选出所有A股股票。
- 对于每只股票,计算其收盘价的5日、10日、20日、60日和120日均线。
- 对于每只股票,计算其换手率,如果换手率>2%且<9%,则将其加入筛选列表。
- 对于每只股票,计算其macd指标,如果macd零轴以上,则将其加入筛选列表。
- 将步骤2到步骤4中筛选出的股票按照收盘价的升序排列。
- 返回步骤1中筛选出的所有股票。
选股逻辑分析
这个策略的逻辑是通过计算股票的均线、换手率和macd指标来筛选出符合条件的股票。其中,均线是用来衡量股票的走势和趋势,换手率用来衡量股票的活跃程度,而macd指标则用来衡量股票的多空力量。
该策略的优点是简单易懂,可以通过计算几个基本指标来筛选出符合条件的股票。此外,该策略还可以通过调整筛选条件来适应不同的市场环境。
然而,该策略也存在一些风险。首先,由于该策略只考虑了股票的均线、换手率和macd指标,因此可能会忽略其他重要的因素,例如公司的财务状况、行业前景等。其次,由于该策略是基于历史数据进行筛选的,因此可能会忽略未来市场走势的变化。
如何优化?
为了优化该策略,我们可以考虑以下几点:
- 考虑加入更多的指标来筛选股票,例如市盈率、市净率等。
- 考虑加入技术分析指标,例如布林线、移动平均线等。
- 考虑加入基本面分析指标,例如营收、净利润等。
- 考虑加入更多的市场因素,例如政策、经济等。
最终的选股逻辑
最终的选股逻辑如下:
- 筛选出所有A股股票。
- 对于每只股票,计算其收盘价的5日、10日、20日、60日和120日均线。
- 对于每只股票,计算其换手率,如果换手率>2%且<9%,则将其加入筛选列表。
- 对于每只股票,计算其macd指标,如果macd零轴以上,则将其加入筛选列表。
- 对于每只股票,计算其市盈率、市净率等基本面分析指标。
- 对于每只股票,计算其布林线、移动平均线等技术分析指标。
- 对于每只股票,计算其政策、经济等市场因素。
- 将步骤2到步骤7中筛选出的股票按照综合评分的升序排列。
- 返回步骤1中筛选出的所有股票。
python代码参考
以下是一个简单的python代码参考,用于实现上述的选股策略:
import talib
import pandas as pd
def get_stock_data(stock_code):
# 获取股票的历史数据
df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{stock_code}',
index_col='Date', parse_dates=True)
df = df[['Adj Close']]
return df
def get_stock_scores(df):
# 计算股票的均线、换手率和macd指标
df['MA5'] = talib.MA(df['Adj Close'], timeperiod=5)
df['MA10'] = talib.MA(df['Adj Close'], timeperiod=10)
df['MA20'] = talib.MA(df['Adj Close'], timeperiod=20)
df['MA60'] = talib.MA(df['Adj Close'], timeperiod=60)
df['MA120'] = talib.MA(df['Adj Close'], timeperiod=120)
df['MACD'], df['MACD Signal'], df['MACD Histogram'] = talib.MACD(df['Adj Close'], fastperiod=12, slowperiod=26, signalperiod=9)
df['换手率'] = df['Volume'] / df['Adj Close'].rolling(window=30).sum()
df['综合评分'] = df['MA5'] + df['MA10'] + df['MA20'] + df['MA60
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
