问财量化选股策略逻辑
- 至少5根均线重合的股票
- 开盘价在十日线左右
- 500日内至少2次涨停
选股逻辑分析
这个策略的逻辑是基于技术分析和市场行为来筛选股票。首先,要求股票至少有5根均线重合,这表明股票价格在不同时间段内的趋势较为稳定,有利于后续的走势。其次,要求股票的开盘价在十日线左右,这表明股票价格在近期的走势较为稳定,有可能出现上涨的趋势。最后,要求股票在500日内至少2次涨停,这表明股票具有较强的市场表现和上涨动力。
有何风险?
这个策略的风险主要来自于市场风险和股票本身的风险。市场风险是指由于市场整体走势不佳或者政策变化等因素导致的股票价格波动,这种风险是无法完全避免的。股票本身的风险则包括公司财务风险、经营风险、行业风险等,这些风险也可能导致股票价格的波动。
如何优化?
为了降低这个策略的风险,可以考虑以下优化措施:
- 增加筛选条件,例如要求股票的市值、盈利能力、负债率等指标较好,以降低公司财务风险。
- 筛选历史表现较好的股票,例如选择过去几年内涨幅较大的股票,以降低经营风险。
- 分散投资,将资金分散投资于多个股票,以降低行业风险。
最终的选股逻辑
- 股票至少有5根均线重合
- 开盘价在十日线左右
- 股票市值、盈利能力、负债率等指标较好
- 过去几年内涨幅较大
python代码参考
以下是基于问财的Python代码实现:
import pandas as pd
import talib
def get_stock_data(symbol):
df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{symbol}', index_col='Date')
df = df.dropna()
df['Close'] = df['Close'].ffill()
df = df[['Close']]
return df
def get_stock_price_data(symbol):
df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{symbol}', index_col='Date')
df = df.dropna()
df['Close'] = df['Close'].ffill()
df = df[['Close']]
df['TenDayMA'] = talib.MA(df['Close'], timeperiod=10)
df['FiftyDayMA'] = talib.MA(df['Close'], timeperiod=50)
df['TwoHundredDayMA'] = talib.MA(df['Close'], timeperiod=200)
df = df[['Close', 'TenDayMA', 'FiftyDayMA', 'TwoHundredDayMA']]
return df
def get_stock筛选_data(symbol):
df = get_stock_price_data(symbol)
df['OverlappingMA'] = df.apply(lambda row: 1 if row['TenDayMA'] == row['FiftyDayMA'] and row['FiftyDayMA'] == row['TwoHundredDayMA'] else 0, axis=1)
df['OverlappingMA'] = df['OverlappingMA'].cumsum()
df = df[df['OverlappingMA'] >= 5]
df = df[df['Close'] > df['TenDayMA']]
df = df[df['Close'] > df['FiftyDayMA']]
df = df[df['Close'] > df['TwoHundredDayMA']]
df = df[df['Close'] / df['Close'].shift(1) > 1]
df = df[df['Close'] / df['Close'].shift(2) > 1]
df = df[df['Close'] / df['Close'].shift(3) > 1]
df = df[df['Close'] / df['Close'].shift(4) > 1]
df = df[df['Close'] / df['Close'].shift(5) > 1]
df = df[df['Close'] / df['Close'].shift(6) > 1]
df = df[df['Close'] / df['Close'].shift(7) > 1]
df = df[df['Close'] / df['Close'].shift(8) > 1]
df = df[df['Close'] / df['Close'].shift(9) > 1]
df = df[df['Close'] / df['Close'].shift(10) > 1]
df = df[df['Close'] / df['Close'].shift(11) > 1]
df = df[df['Close'] / df['Close'].shift(12) > 1]
df = df[df['Close'] / df['
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


