问财量化选股策略逻辑
- 至少5根均线重合的股票
- 开盘价在十日线左右
- 今日增仓占比>5%
选股逻辑分析
- 该策略通过选取至少5根均线重合的股票,表明该股票的短期和中期趋势较为稳定,同时也能够反映出市场的平均成本。
- 开盘价在十日线左右,说明该股票的价格相对稳定,且处于中期趋势的上升通道中。
- 今日增仓占比>5%,说明该股票的主力资金在近期有明显的流入迹象,表明该股票受到市场资金的关注。
有何风险?
- 该策略选取的股票需要满足至少5根均线重合的条件,这意味着该股票的价格波动相对较小,可能会导致收益率的降低。
- 开盘价在十日线左右,说明该股票的价格相对稳定,但也可能意味着该股票的价格缺乏上涨的动力。
- 今日增仓占比>5%,说明该股票的主力资金在近期有明显的流入迹象,但也可能意味着该股票存在被高估的风险。
如何优化?
- 可以通过调整均线的数量和时间周期来优化策略,以适应不同的市场环境。
- 可以通过加入其他指标,如成交量、MACD等,来提高策略的准确性和稳定性。
- 可以通过加入过滤条件,如股价是否处于历史高位、是否有业绩支撑等,来降低风险。
最终的选股逻辑
- 选取至少5根均线重合的股票
- 开盘价在十日线左右
- 今日增仓占比>5%
- 加入其他指标,如成交量、MACD等
- 加入过滤条件,如股价是否处于历史高位、是否有业绩支撑等
python代码参考
import talib
import pandas as pd
def get_stock_data():
# 获取股票数据
data = pd.read_csv('stock_data.csv')
return data
def get_line_data(data):
# 获取股票的均线数据
ma5 = talib.MA(data['close'], timeperiod=5)
ma10 = talib.MA(data['close'], timeperiod=10)
ma20 = talib.MA(data['close'], timeperiod=20)
ma50 = talib.MA(data['close'], timeperiod=50)
ma100 = talib.MA(data['close'], timeperiod=100)
ma200 = talib.MA(data['close'], timeperiod=200)
return ma5, ma10, ma20, ma50, ma100, ma200
def get_signal_data(data):
# 获取股票的今日增仓占比数据
today = pd.Timestamp.today()
data['today'] = today
data['今天的增仓占比'] = data['total_amount'] / data['avg_amount'] * 100
return data
def get_filter_data(data):
# 获取股票的过滤条件数据
data['is_hist_high'] = data['close'] > data['close'].rolling(window=20).max()
data['has业绩支撑'] = data['eps'] > data['eps'].rolling(window=20).mean()
return data
def get_final_data(data):
# 获取最终的股票数据
ma5, ma10, ma20, ma50, ma100, ma200 = get_line_data(data)
data = get_signal_data(data)
data = get_filter_data(data)
return ma5, ma10, ma20, ma50, ma100, ma200, data
def get_top_stocks(data):
# 获取排名前5的股票
ma5, ma10, ma20, ma50, ma100, ma200, data = get_final_data(data)
ma5_sorted = ma5.sort_values(ascending=False)
ma10_sorted = ma10.sort_values(ascending=False)
ma20_sorted = ma20.sort_values(ascending=False)
ma50_sorted = ma50.sort_values(ascending=False)
ma100_sorted = ma100.sort_values(ascending=False)
ma200_sorted = ma200.sort_values(ascending=False)
top_stocks = ma5_sorted.index[:5]
return top_stocks
def get_final_data_with_top_stocks(data):
# 获取最终的股票数据,同时加入排名前5的股票
ma5, ma10, ma20, ma50, ma100, ma20
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
