问财量化选股策略逻辑
首先,我们定义了至少5根均线重合的股票的筛选条件。具体来说,我们将选取所有收盘价至少有5根均线重合的股票。这可以视为一个简单的趋势跟踪策略,因为当均线重合时,通常表示股票价格在一段时间内保持稳定或上升趋势。
接下来,我们定义了60开头的股票的筛选条件。这可以视为一个市值筛选条件,因为通常情况下,市值较大的公司更容易获得投资者的关注和认可。我们假设市值较大的公司更有可能具有稳定的财务状况和良好的发展前景。
最后,我们定义了近25个交易日有单日涨幅大于等于百分之10的筛选条件。这可以视为一个短期价格波动策略,因为当股票价格上涨超过10%时,通常意味着市场对该股票的短期前景非常乐观。
选股逻辑分析
以上三个筛选条件可以组合成一个综合性的量化策略,该策略旨在寻找具有稳定趋势和短期价格波动的股票。该策略的潜在风险在于,如果市场出现大幅波动或股票价格在短期内出现大幅回调,那么该策略可能会产生较大的损失。此外,如果市场走势与该策略的预期不符,那么该策略可能会表现不佳。
为了优化该策略,我们可以考虑增加更多的筛选条件,例如盈利能力、市盈率等。此外,我们还可以考虑使用技术分析工具来更好地预测股票价格走势,从而更好地把握短期价格波动的机会。
最终的选股逻辑
以下是最终的量化策略逻辑:
def select_stocks():
# 筛选条件1:至少5根均线重合的股票
stocks = get_stocks_with_at_least_5_crossing_moments()
# 筛选条件2:60开头的股票
stocks = stocks[stocks.index >= '2010-01-01']
# 筛选条件3:近25个交易日有单日涨幅大于等于百分之10的股票
stocks = stocks[stocks['close'].pct_change() >= 0.1]
return stocks
python代码参考
def get_stocks_with_at_least_5_crossing_moments():
# 获取所有收盘价至少有5根均线重合的股票
stocks = get_all_stocks()
crossing_moments = []
for i in range(5, 101):
crossing_moments.append(len(stocks[stocks['close'].rolling(i).crossing(moments[0])]) / len(stocks))
stocks = stocks[stocks.index >= '2010-01-01'][stocks['close'].rolling(5).crossing(crossing_moments[0])]
return stocks
def get_all_stocks():
# 获取所有股票的收盘价和日期
stocks = pd.read_csv('stock_prices.csv')
stocks = stocks[['date', 'close']]
stocks['date'] = pd.to_datetime(stocks['date'])
stocks.set_index('date', inplace=True)
return stocks
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。