问财量化选股策略逻辑
- 今日增仓占比>5%
- 竞价涨幅>-2<5
- 今日上涨>1主板
选股逻辑分析
该策略主要关注今日的市场表现,通过三个条件来筛选股票。首先,要求今日的增仓占比超过5%,说明市场资金对该股票的关注度较高。其次,要求竞价涨幅在-2到5之间,说明该股票在竞价阶段有较好的表现。最后,要求今日上涨超过1主板,说明该股票在主板市场的表现优于其他股票。
有何风险?
该策略主要关注的是今日的市场表现,因此可能无法准确预测未来市场走势。此外,如果市场出现大幅波动,该策略可能会出现误判,导致选出的股票表现不佳。
如何优化?
为了提高该策略的准确性和稳定性,可以考虑加入更多因素,例如历史表现、行业背景、财务数据等。同时,可以考虑使用量化交易软件来实现更高效的交易。
最终的选股逻辑
import talib
def get筛选条件():
# 获取今日的增仓占比
percent = talib.STOCHF(close, high, low, fastk=1, slowk=2, slowd=3, fastd=6, fastkcross=10, slowkcross=30, cross=0, n=14)
percent = percent[-1]
# 获取今日的竞价涨幅
open_price = close.shift(1)
high_price = open_price + (open_price - close) * 0.05
low_price = open_price - (open_price - close) * 0.05
gain = high_price - open_price
loss = open_price - low_price
gain = gain.where(gain > 0, 0)
loss = loss.where(loss > 0, 0)
gain = gain.where(gain < 0, 0)
loss = loss.where(loss < 0, 0)
gain = gain.where(gain == 0, 0.001)
loss = loss.where(loss == 0, 0.001)
price_change = gain / loss
price_change = price_change.where(price_change > 0, 0)
price_change = price_change.where(price_change < 0, 0)
price_change = price_change.where(price_change == 0, 0.001)
price_change = price_change.resample('D').last().ffill()
# 获取今日的上涨情况
is_up = close > open
is_up = is_up.where(is_up == 0, 0.5)
# 将三个条件组合在一起
return percent, price_change, is_up
def get筛选结果():
# 获取所有股票的筛选条件
percent, price_change, is_up = get筛选条件()
# 将筛选条件转换为数值
percent = percent.values
price_change = price_change.values
is_up = is_up.values
# 获取所有股票的代码和数量
codes = stock_info['code']
n = len(codes)
# 初始化筛选结果
result = pd.DataFrame(index=codes)
# 计算每个股票的综合得分
score = (percent * 0.3 + price_change * 0.3 + is_up * 0.4).values
# 将综合得分转换为二进制
result['score'] = (score > 0.5).astype(int)
# 返回筛选结果
return result
def get_stock_info():
# 获取所有股票的基本信息
codes = stock_info['code']
data = yf.download(codes, start='2021-01-01', end='2021-12-31')
data = data.dropna()
data = data[['open', 'high', 'low', 'close']]
data = data.rename(columns={'open': 'open_price', 'high': 'high_price', 'low': 'low_price', 'close': 'close_price'})
data = data.set_index('code')
return data
python代码参考
import talib
import yf
import pandas as pd
# 获取所有股票的基本信息
stock_info = yf.download('000300.XSHG', start='2021-01-01', end='2021-12-31')
stock_info = stock_info.dropna()
stock_info = stock_info[['open', 'high', 'low', 'close']]
stock_info = stock_info.rename(columns={'open': 'open_price', 'high': 'high
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


