请到后台主题设置添加
首页 / 证券

用DeepSeek结合K线趋势主力编写捕捉优质股票的程序

为了编写一个结合K线形态、趋势识别和主力资金的选股程序,以下是分步骤的解决方案:

### **一、数据准备**

1. **数据源**

使用免费金融数据接口(如AKShare、Tushare)获取以下数据:

“`python

import akshare as ak

# 获取A股历史数据示例

stock_data = ak.stock_zh_a_hist(symbol=”000001″, period=”daily”)

“`

2. **数据字段**

包含:日期、开盘价、收盘价、最高价、最低价、成交量、成交额。

### **二、技术指标计算**

#### 1. **K线形态识别**

“`python

def detect_morning_star(df):

# 早晨之星:阴线 → 十字星 → 阳线,第三日收盘 > 第一日50%

signals = []

for i in range(2, len(df)):

day1 = df.iloc[i-2]

day2 = df.iloc[i-1]

day3 = df.iloc[i]

condition = (

day1[‘收盘’] < day1[‘开盘’] and # 第一日阴线

abs(day2[‘收盘’] – day2[‘开盘’]) / day2[‘开盘’] < 0.01 and # 第二日十字星

day3[‘收盘’] > day3[‘开盘’] and # 第三日阳线

day3[‘收盘’] > (day1[‘开盘’] + day1[‘收盘’]) / 2

)

signals.append(condition)

return signals

“`

#### 2. **趋势识别**

“`python

def calculate_trend(df):

# 计算均线与MACD

df[‘MA5’] = df[‘收盘’].rolling(5).mean()

df[‘MA20’] = df[‘收盘’].rolling(20).mean()

df[‘MACD’], df[‘Signal’], _ = talib.MACD(df[‘收盘’])

# 趋势条件:5日线上穿20日线且MACD金叉

df[‘Trend_Signal’] = (df[‘MA5’] > df[‘MA20’]) & (df[‘MACD’] > df[‘Signal’])

return df

“`

#### 3. **主力资金分析**

“`python

def analyze_capital(df):

# 计算OBV和MFI

df[‘OBV’] = talib.OBV(df[‘收盘’], df[‘成交量’])

df[‘MFI’] = talib.MFI(df[‘最高’], df[‘最低’], df[‘收盘’], df[‘成交量’], timeperiod=14)

# 主力条件:OBV上升且MFI > 70

df[‘Capital_Signal’] = (df[‘OBV’].diff() > 0) & (df[‘MFI’] > 70)

return df

“`

### **三、策略整合**

“`python

def find_quality_stocks(stock_list):

results = []

for stock in stock_list:

df = get_stock_data(stock) # 获取数据

df = calculate_trend(df)

df = analyze_capital(df)

df[‘Morning_Star’] = detect_morning_star(df)

# 综合信号:形态 + 趋势 + 资金

df[‘Signal’] = df[‘Morning_Star’] & df[‘Trend_Signal’] & df[‘Capital_Signal’]

if df.iloc[-1][‘Signal’]:

results.append(stock)

return results

“`

### **四、实时监控与输出**

“`python

# 运行选股

selected_stocks = find_quality_stocks(all_stocks)

# 输出结果

print(“今日优质股票候选:”)

for stock in selected_stocks:

print(f”{stock[‘代码’]} {stock[‘名称’]} – 触发理由:趋势突破 + 主力流入”)

“`

### **五、优化与注意事项**

1. **参数调优**

– 调整均线周期(如改为10日/30日)。

– 优化MFI阈值(70-80区间)。

2. **回测验证**

使用历史数据验证策略胜率:

“`python

backtest(df, signals_col=’Signal’, hold_period=5)

“`

3. **风险控制**

– 设置止损条件(如跌破5日线离场)。

– 结合市盈率等基本面过滤高风险标的。

### **六、完整代码结构**

“`text

├── data/ # 存储股票数据

├── utils/

│ ├── data_fetcher.py # 数据获取模块

│ └── indicators.py # 技术指标计算

├── strategies/

│ └── quality_stock.py # 策略逻辑

└── main.py # 主程序

“`

通过以上方法,程序可系统性筛选出同时满足技术形态、趋势和资金条件的股票。建议在实际使用中结合实时数据更新和风控模块。

版权说明:
1.版权归本网站或原作者所有;
2.未经本网或原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。
搜索
最新留言
关注我们
关注我们
微信
关注我们
微博
请到后台主题设置添加

Powered ByZ-Blog.