从0到1:手把手教你代码选股
大家好!在之前的文章中,我向大家介绍了 Sequoia:A股自动选股程序。虽然里面内置了很多策略,但很多投资者都有自己独特的投资理念和选股思路,怎么把这些想法转化为可执行的代码常常令人望而生畏。
今天,我想分享一个简单的选股策略实现,演示如何配置自己的选股策略。通过这个例子,我想告诉大家:编写属于自己的选股策略,其实并没有想象中那么困难。
教程
1.修改选股范围
默认程序取沪深京 A 股,运行会比较慢,可以只选择一部分版块, 代码如下:
#filename: work_flow.py
# 取沪深京 A 股
# all_data = ak.stock_zh_a_spot_em()
# 各行业板块
# ak.stock_board_industry_name_em()
# 取银行板块的个股
all_data = ak.stock_board_industry_cons_em(symbol='银行')
2.创建策略文件
在strategy
目录创建macd_signal.py
文件
# -*- encoding: UTF-8 -*-
import talib as tl
import pandas as pd
import logging
def check(code_name, data, end_date=None, threshold=26):
if len(data) < threshold:
logging.debug("{0}:样本小于26天...\n".format(code_name))
return False
# 计算MACD
macd, signal, hist = tl.MACD(
data['收盘'],
fastperiod=12, # 快线周期
slowperiod=26, # 慢线周期
signalperiod=9 # 信号线周期
)
# 判断金叉条件
golden_cross_detected = (
macd.iloc[-2] <= signal.iloc[-2] and # 前一个周期MACD在信号线下方
macd.iloc[-1] > signal.iloc[-1] # 当前周期MACD穿过信号线
)
return golden_cross_detected
在check方法里, code_name
是股票名称, data
是该股票数据,数据格式如下:
日期
股票代码
开盘
收盘
最高
最低
成交量
成交额
振幅
涨跌幅
涨跌额
换手率
p_change
MACD的实现, 直接使用了TA-Lib包, 量化交易的瑞士军刀:TA-Lib技术指标库详解。强烈建议收藏这篇文章, 只面记录了TA-Lib实现的所有技术指标。
3.开启策略文件
#filename: work_flow.py
strategies = {
# '放量上涨': enter.check_volume,
# '均线多头': keep_increasing.check,
# '停机坪': parking_apron.check,
# '回踩年线': backtrace_ma250.check,
# '突破平台': breakthrough_platform.check,
# '无大幅回撤': low_backtrace_increase.check,
# '海龟交易法则': turtle_trade.check_enter,
# '高而窄的旗形': high_tight_flag.check,
# '放量跌停': climax_limitdown.check,
'macd金叉': macd_signal.check
}
别忘记在 work_flow.py
顶部, 引入新建的策略。
from strategy import macd_signal
4.运行程序
等待片刻, 在sequoia.log
文件就会选出macd金叉的股票
总结
代码是思路的载体,策略是智慧的结晶。每一行代码,都可能是通向投资洞察的桥梁。希望这个简单的分享,能为您的投资之路增添一份勇气和智慧。