问财量化选股策略逻辑
- 今日增仓占比>5%
- 周线MA5金叉MA10
- 换手率>2%且<9%
选股逻辑分析
- 今日增仓占比>5%:表示最近一段时间内,股票的成交量在增加,说明市场资金对该股票比较看好,可能有进一步上涨的趋势。
- 周线MA5金叉MA10:表示股票的短期和长期趋势是向上的,说明市场对该股票的走势比较乐观。
- 换手率>2%且<9%:表示股票的换手率较高,说明市场对该股票的关注度较高,但不至于过高,说明市场对该股票的分歧不是很大。
有何风险?
- 今日增仓占比>5%:虽然说明市场资金对该股票比较看好,但也不一定代表股票一定会涨,因为市场的变化是不可预测的。
- 周线MA5金叉MA10:虽然表示股票的短期和长期趋势是向上的,但也不一定代表股票一定会涨,因为市场走势受到多种因素的影响。
- 换手率>2%且<9%:虽然说明市场对该股票的关注度较高,但也不一定代表股票一定会涨,因为市场的变化是不可预测的。
如何优化?
- 可以考虑加入更多因素来综合分析,例如:股票的市盈率、市净率、财务数据等。
- 可以考虑加入更多时间周期来分析,例如:日线、月线等。
最终的选股逻辑
- 今日增仓占比>5%
- 周线MA5金叉MA10
- 换手率>2%且<9%
- 市盈率<20
- 市净率>1
- 净利润增长率>20%
python代码参考
import talib
def get_k_data(symbol, start_date, end_date):
# 获取股票的历史K线数据
k_data = talib.get_k_data(symbol=symbol, start_date=start_date, end_date=end_date)
return k_data
def get_trend_data(symbol, start_date, end_date):
# 获取股票的历史趋势数据
trend_data = talib.get_trend_data(symbol=symbol, start_date=start_date, end_date=end_date)
return trend_data
def get_moving_average_data(symbol, time周期):
# 获取股票的历史移动平均线数据
moving_average_data = talib.MA(get_k_data(symbol=symbol, start_date=start_date, end_date=end_date), time周期)
return moving_average_data
def get今天的增仓占比(symbol):
# 获取股票今天的增仓占比
k_data = get_k_data(symbol=symbol, start_date=datetime.datetime.now() - datetime.timedelta(days=30), end_date=datetime.datetime.now())
close_prices = k_data['close']
volume = k_data['volume']
today = datetime.datetime.now()
open_price = k_data[today-1]['open']
close_price = k_data[today]['close']
if open_price == 0:
today_open_price = 0
else:
today_open_price = open_price
today_close_price = close_price
today_volume = volume[today]
today_total_volume = sum(today_volume)
today_amount = today_total_volume * today_close_price
yesterday_amount = (sum(volume[today-1]) * (today_open_price - open_price)) + (sum(today_volume) * (close_price - today_close_price))
today_amount = today_amount / yesterday_amount
return today_amount
def get周线MA5金叉MA10(symbol):
# 获取股票的周线MA5金叉MA10
k_data = get_k_data(symbol=symbol, start_date=datetime.datetime.now() - datetime.timedelta(days=30), end_date=datetime.datetime.now())
moving_average_5 = talib.MA(k_data['close'], 5)
moving_average_10 = talib.MA(k_data['close'], 10)
if moving_average_5[-1] > moving_average_10[-1]:
return True
else:
return False
def get换手率(symbol):
# 获取股票的换手率
k_data = get_k_data(symbol=symbol, start_date=datetime.datetime.now() - datetime.timedelta(days=30), end_date=datetime.datetime.now())
close_prices = k_data['close']
volume = k_data['volume']
today = datetime.datetime.now()
open_price = k_data[today-1]['open']
close_price = k_data[today]['close']
if
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
