<p>温和放量趋势选股公式}</p><p>涨幅 := (CLOSE - REF(CLOSE,1)) / REF(CLOSE,1) * 100;</p><p>量比 := VOL / MA(VOL, 5);</p><p>换手率 := VOL / FINANCE(7) * 100; { 假设FINANCE(7)为流通股本,请根据软件实际函数调整 }</p><p>市值 := FINANCE(总市值或流通市值函数); { 请根据软件实际函数调整,例如 FINANCE(41) }</p><p>{核心选股条件}</p><p>条件1 := 涨幅 >= 3 AND 涨幅 <= 5;</p><p>条件2 := 量比 >= 1;</p><p>条件3 := 换手率 >= 5 AND 换手率 <= 10;</p><p>条件4 := 市值 >= 5000000000 AND 市值 <= 200000000000; { 单位:元,50亿=5e9, 200亿=2e11 }</p><p>条件5 := COUNT(VOL > REF(VOL,1), 3) >= 2; { 最近3日内,至少有2天成交量放大 }</p><p>条件6 := MA(CLOSE, 60) > REF(MA(CLOSE, 60), 1); { 60日均线今日值大于昨日值,表示向上 }</p><p>选股: 条件1 AND 条件2 AND 条件3 AND 条件4 AND 条件5 AND 条件6;</p><p>import pandas as pd</p><p>import akshare as ak # 示例数据库,需提前安装</p><p># 定义选股参数</p><p>params = {</p><p>'涨幅下限': 3,</p><p>'涨幅上限': 5,</p><p>'量比下限': 1,</p><p>'换手率下限': 5,</p><p>'换手率上限': 10,</p><p>'市值下限_亿元': 50,</p><p>'市值上限_亿元': 200,</p><p>'成交量持续天数': 3 # 判断成交量放大的时间窗口</p><p>}</p><p>def stock_selection_logic(stock_data, params):</p><p>"""</p><p>应用选股逻辑到单只股票的数据上</p><p>"""</p><p># 计算基本指标</p><p>stock_data['涨幅'] = (stock_data['收盘价'] - stock_data['收盘价'].shift(1)) / stock_data['收盘价'].shift(1) * 100</p><p>stock_data['量比'] = stock_data['成交量'] / stock_data['成交量'].rolling(5).mean()</p><p>stock_data['换手率'] = stock_data['成交量'] / stock_data['流通股本'] * 100 # 需要流通股本数据</p><p>stock_data['MA60'] = stock_data['收盘价'].rolling(60).mean()</p><p># 获取最新一天的数据</p><p>latest = stock_data.iloc[-1]</p><p># 条件判断</p><p>cond_price = params['涨幅下限'] <= latest['涨幅'] <= params['涨幅上限']</p><p>cond_vol_ratio = latest['量比'] >= params['量比下限']</p><p>cond_turnover = params['换手率下限'] <= latest['换手率'] <= params['换手率上限']</p><p>cond_market_cap = params['市值下限_亿元'] <= latest['总市值'] <= params['市值上限_亿元']</p><p>cond_ma60_trend = latest['MA60'] > stock_data['MA60'].iloc[-2] # 60日均线向上</p><p># 判断成交量持续放大:例如,最近N天有N-1天是放大的</p><p>recent_vol = stock_data['成交量'].tail(params['成交量持续天数']+1) # 多取一天用于比较</p><p>vol_increase_days = sum(recent_vol.iloc[i] > recent_vol.iloc[i-1] for i in range(1, len(recent_vol)))</p><p>cond_vol_increase = vol_increase_days >= (params['成交量持续天数'] - 1)</p><p>return cond_price and cond_vol_ratio and cond_turnover and cond_market_cap and cond_vol_increase and cond_ma60_trend</p><p># 主程序流程示意</p><p>def main():</p><p>all_stocks_codes = ['000001', '600036', ...] # 需要获取股票列表</p><p>selected_stocks = []</p><p>for code in all_stocks_codes:</p><p>try:</p><p># 获取单个股票的历史日线数据,需要包含收盘价、成交量、总市值、流通股本等字段</p><p>stock_data = ak.stock_zh_a_hist(symbol=code, period="daily")</p><p># 这里需要将数据整理成规范的DataFrame格式</p><p>if stock_selection_logic(stock_data, params):</p><p>selected_stocks.(code)</p><p>except Exception as e:</p><p>print(f"处理股票 {code} 时出错: {e}")</p><p>print("筛选出的股票代码:", selected_stocks)</p><p>if __name__ == "__main__":</p><p>main()</p><p>先编二个试试……真的要感谢上苍赐给我的这个礼物,这不是什么人都可以做的事情!前段时间自己自由放任了自己,现在该醒醒了……不然我是自毁前程。</p>