(iwencai量化策略)竞价主力净买大于0_、9点25分涨幅小于6%、至少5根均线重合的

用户头像神盾局量子研究部
2023-09-01 发布

问财量化选股策略逻辑

  1. 至少5根均线重合的股票: 这个逻辑意味着股票的短期和中期趋势是相似的,可能表明股票价格在未来会保持稳定或上涨。
  2. 9点25分涨幅小于6%: 这个逻辑意味着股票在开盘时的价格没有出现大幅上涨,可能表明市场对该股票的未来表现不太乐观。
  3. 竞价主力净买大于0: 这个逻辑意味着在股票开盘时,主力资金净流入量大于流出量,可能表明市场对该股票的未来表现比较乐观。

选股逻辑分析

以上三个逻辑结合起来,可能会筛选出一些有潜力的股票,这些股票的短期和中期趋势相似,且在开盘时市场表现比较稳定。然而,这并不意味着这些股票一定会表现良好,因为市场走势是不可预测的,而且这些逻辑也存在一定的局限性。

有何风险?

  1. 过于依赖技术指标:使用技术指标进行股票筛选可能会导致过度依赖这些指标,而忽略了其他重要的因素,如公司的基本面和财务状况。
  2. 忽视市场情绪:市场情绪对股票价格的影响是不可预测的,因此使用技术指标进行股票筛选时,可能会忽略市场情绪的影响。
  3. 筛选出的股票可能不够多样化:使用技术指标进行股票筛选可能会导致选出的股票过于集中,从而增加了投资组合的风险。

如何优化?

  1. 结合多种技术指标:除了使用至少5根均线重合的股票这个逻辑外,还可以结合其他技术指标,如MACD、RSI等,来筛选股票。
  2. 考虑市场情绪:除了考虑股票的价格走势外,还可以考虑市场情绪对股票价格的影响,例如使用新闻、社交媒体等数据来分析市场情绪。
  3. 筛选出的股票要进行多样化:除了使用技术指标进行股票筛选外,还可以通过基本面分析等方式,筛选出具有不同行业、不同地域等特点的股票,从而实现投资组合的多样化。

最终的选股逻辑

以下是最终的选股逻辑:

  1. 股票的短期和中期趋势相似。
  2. 9点25分涨幅小于6%。
  3. 竞价主力净买大于0。
  4. 结合多种技术指标,如MACD、RSI等。
  5. 考虑市场情绪,使用新闻、社交媒体等数据来分析市场情绪。
  6. 筛选出的股票要进行多样化,包括不同行业、不同地域等特点的股票。

python代码参考

以下是基于上述策略的python代码参考:

import talib
import pandas as pd

def get_stock_data(stock_code):
    # 获取股票的历史数据
    df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{stock_code}', index_col='Date')
    df = df[['Adj Close']]
    df = df.resample('D').last()
    df = df.dropna()
    return df

def get_stock_trend(df):
    # 计算股票的短期和中期趋势
    MA5 = talib.MA(df['Adj Close'], timeperiod=5)
    MA20 = talib.MA(df['Adj Close'], timeperiod=20)
    MACD = talib.MACD(df['Adj Close'], fastperiod=12, slowperiod=26, signalperiod=9)
    RSI = talib.RSI(df['Adj Close'], timeperiod=14)
    trend = pd.DataFrame({'MA5': MA5, 'MA20': MA20, 'MACD': MACD['MACD'], 'RSI': RSI})
    trend['trend'] = trend['MA5'] > trend['MA20']
    trend['trend'] = trend['trend'] & (MACD['MACD'] > 0) & (RSI > 30)
    return trend

def get_stock筛选结果(df, threshold):
    # 根据筛选条件筛选股票
    filtered_df = df[df['trend'] == True]
    filtered_df = filtered_df[(filtered_df['Adj Close'] > threshold) & (filtered_df['Adj Close'] < (threshold + 6))]
    filtered_df = filtered_df[df['Net买'] > 0]
    return filtered_df

# 示例
df = get_stock_data('600036')
trend = get_stock_trend(df)
filtered_df = get_stock筛选结果(df, 10)
print(filtered_df)

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

select_sentence = '市值小于100亿' #选股语句。

模板如何使用?

点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论