问财量化选股策略逻辑
首先,我们需要定义一个包含5根均线的指标。我们可以使用移动平均线(MA)来计算这些均线。具体来说,我们可以计算5天、10天、20天、50天和200天的移动平均线。这些均线将被用来筛选股票。
接下来,我们需要筛选出10日涨幅大于0小于35的股票。这可以通过计算股票的10日涨幅来实现。具体来说,我们可以计算股票在过去的10天中的最高价和最低价,并计算它们之间的涨幅。如果涨幅大于0且小于35,则该股票将被筛选出来。
最后,我们需要筛选出酷特智能早晨之星。酷特智能早晨之星是一种技术分析指标,用于识别股票的买入和卖出信号。具体来说,酷特智能早晨之星由以下三个部分组成:
- 早晨之星:在连续下跌之后,出现一根长阳线,同时伴随着成交量的显著放大。
- 买入信号:如果在早晨之星出现后的第二天,股价继续上涨,并且成交量也继续放大,则这是一个买入信号。
- 卖出信号:如果在早晨之星出现后的第二天,股价下跌,并且成交量也减少,则这是一个卖出信号。
选股逻辑分析
这个策略的逻辑是通过计算5根均线的交叉情况来筛选股票,并结合10日涨幅和酷特智能早晨之星来确定买入和卖出信号。这种策略的目的是通过综合考虑多个因素来筛选出具有投资价值的股票。
然而,这个策略也存在一些风险。首先,移动平均线可能会被过度使用,从而导致其失去其有效性。其次,10日涨幅和酷特智能早晨之星也可能会被过度使用,从而导致其失去其准确性。最后,市场可能会发生变化,从而导致该策略不再有效。
如何优化?
为了优化这个策略,我们可以考虑以下几点:
- 使用更长或更短的移动平均线,以更好地反映市场走势。
- 使用更多的技术指标来筛选股票,以更好地确定买入和卖出信号。
- 定期重新评估该策略,以确保其仍然有效。
最终的选股逻辑
最终的选股逻辑如下:
- 计算5天、10天、20天、50天和200天的移动平均线。
- 筛选出10日涨幅大于0小于35的股票。
- 计算酷特智能早晨之星。
- 如果出现早晨之星,则计算买入信号和卖出信号。
- 如果买入信号出现,则买入该股票。
- 如果卖出信号出现,则卖出该股票。
python代码参考
以下是使用pandas和numpy库实现上述策略的python代码参考:
import pandas as pd
import numpy as np
def moving_average(df, n):
"""计算移动平均线"""
MA = pd.Series(df['Close'].rolling(n).mean(), name='MA_' + str(n))
df = df.join(MA)
return df
def get_profit(df):
"""计算10日涨幅"""
df['Profit'] = df['Close'].pct_change(10)
return df
def get_cuter_morning_star(df):
"""计算酷特智能早晨之星"""
df['Buy'] = np.where(df['Close'].shift(1) > df['Close'], 1, 0)
df['Sell'] = np.where(df['Close'].shift(1) < df['Close'], 1, 0)
df['MorningStar'] = np.where((df['Buy'] == 1) & (df['Sell'] == 0) & (df['Close'].shift(1) > df['Close']), 1, 0)
df = df.dropna()
return df
def get_signal(df):
"""计算买入和卖出信号"""
df['Buy'] = np.where(df['Close'].shift(1) > df['Close'], 1, 0)
df['Sell'] = np.where(df['Close'].shift(1) < df['Close'], 1, 0)
df['Signal'] = np.where(df['Buy'] == 1, 1, np.where(df['Sell'] == 1, -1, 0))
return df
def apply策略(df):
"""应用策略"""
df = moving_average(df, 5)
df = get_profit(df)
df = get_cuter_morning_star(df)
df = get_signal(df)
return df
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


