投投资策略平台
署名 老K
策略库/5 日线买卖点

风险提示 本站内容为个人研究整理,仅供学习参考,不构成任何投资建议,据此操作风险自担。本策略的规则取自公开资料,并非个人独创交易体系。

5 日线买卖点

把均线系统的买卖信号落成可复算的判定,而不是看图说话。

引擎 + 公开数据源通用规则适用:股票
全贯穿全链路1选标的2定买点主用3定仓位4定卖点同时覆盖5复盘
下载完整策略包 11.1 KB · 5 个文件 · 解压即用
下载 .zip

内容指纹(SKILL.md 的 sha256 前 16 位):967a242161c5593e —— 下载解压后可用 shasum -a 256 SKILL.md 自行核对。

策略说明

适用场景

你打算用均线决定进场与离场,希望信号是脚本算出来的、事后可以复盘,而不是每次看图形容。适合做交易计划里「触发条件」那一栏。

输入

标的代码 + 起止日期 + 均线参数(默认 5 与 20)+ 均线模式。行情数据由脚本从公开源获取。

输出

一张逐日信号表:每个交易日是否触发买入或卖出信号、触发的是哪一条规则、当时的均线值与乖离率。附信号在价格图上的标注。

核心逻辑
  1. 拉取复权日线数据,计算各周期移动平均线。
  2. 逐日判定葛兰碧八大法则的四类买点与四类卖点(突破、回踩支撑、假跌破、负乖离反弹;及其四个镜像卖点)。
  3. 判定金叉与死叉:短期均线上穿长期均线为黄金交叉,反之为死亡交叉。
  4. 标注均线排列状态(多头排列 / 空头排列 / 纠缠)与 60 日均线方向。
  5. 输出信号表与标注图。同一天触发多条规则时逐条列出,不做合并。
依赖

Python >=3.9;依赖包:akshare、pandas、numpy;数据:akshare(主)、baostock(备);baostock 仅提供日线级数据,作为主源失效时的降级方案。

文件清单
  • LICENSE 2.2 KB
  • SKILL.md 6.4 KB
  • references/sources.md 2.2 KB
  • requirements.txt 121 B
  • scripts/five_day_line_trading.py 10.5 KB

风险与局限

均线是价格历史的平滑,天然滞后,在震荡市里会反复给出互相矛盾的信号。葛兰碧原书的确切书名与年份在各来源间不一致,本站不引用任何具体版本页码。均线周期参数(5/10/20/60/120/250)是经验划分,没有任何机构给出过权威定义;「多头排列」也只是技术分析界的通行描述,不是标准。最重要的:历史信号经过事后标注总是显得准确,这不构成对未来有效性的证明。

出处

共 3 条

SKILL.md 全文

下面这段就是下载包里 SKILL.md 的完整内容,未做删减。指纹 967a242161c5593e。

5 日线买卖点

回答一个问题:按均线系统这套规则,哪个交易日触发了什么信号。

关键在于「可复算」:脚本给出的是日期、价格、均线值、乖离和触发的具体条款,事后可以逐条复盘。看图说话做不到这一点——同一张图,今天看到的是买点,明天看到的是陷阱。

适用场景

  • 你打算用均线决定进场与离场,希望触发条件是事先写好的、事后可核对的。
  • 你在写交易计划,需要把「触发条件」那一栏填上具体的数值。
  • 你想复核某个「金叉了」的说法到底对不对。

输入

输入 说明
标的代码 或一份日线 CSV
均线参数 默认 MA5 / MA20
时间区间 至少覆盖 30 个交易日以上

输出

  1. 当前状态:收盘价、两条均线的值、排列状态
  2. 信号明细:每个触发日的收盘价、均线值、乖离率、以及触发的是哪一条规则
  3. 脚本上方完整打印本次使用的全部判定参数

第 3 项不是装饰。葛兰碧八法的原文是散文式描述,落成代码必然要引入参数,换一组参数信号就会变——这是这类规则无法回避的性质,必须让使用者看见。

核心逻辑

第一步:算均线

移动平均线的含义是「一定周期内市场平均持仓成本」。短期均线代表近期交易者的平均成本,长期均线代表更长时间内的价位平衡点。

第二步:判定葛兰碧八法

# 方向 条件 脚本中的操作化
买1 买 均线由下降转平或上升,价格由下向上穿破均线 收盘上穿均线 且 均线斜率 ≥ 0
买2 买 价格在均线上方,回调未跌破均线即反弹 近 N 日最低未破均线(含容差)且收盘上行,均线上行
买3 买 价格跌破均线后随即回升站上,且均线仍上行 当日上穿 且 近 N 日内出现过下穿,均线上行
买4 买 价格急跌深离均线下方后反弹趋近均线 负乖离超过阈值 且 收盘开始回升
卖1–卖4 卖 上述四条的镜像 同上,方向取反

第三步:判定金叉死叉

  • 黄金交叉:短期均线由下往上突破长期均线,一般视为买进信号
  • 死亡交叉:短期均线由上往下跌破长期均线,一般视为卖出信号

第四步:标注排列状态

多头排列 / 空头排列 / 纠缠。注意:「多头排列」是技术分析界的通行描述,不是标准定义,具体到 5>10>20>60 这类参数组合,属经验总结,参数并非唯一标准。

第五步:逐条输出,不做合并

同一天触发多条规则时,全部列出,不合并成「买入」两个字。原因:不同规则的可靠性和适用环境不同,合并会把这个信息丢掉。

依赖与安装

pip install akshare pandas

离线模式(--csv)只需 Python 标准库。

用法

# 在线
python3 scripts/five_day_line_trading.py --code 000001 --start 20240101 --end 20251231

# 换参数
python3 scripts/five_day_line_trading.py --code 000001 --fast 10 --slow 60

# 离线
python3 scripts/five_day_line_trading.py --csv 000001.csv --last 40

出处

  • MoneyDJ 財經知識庫《葛蘭碧八大法則》 —— 逐条列出八大法则,并给出黄金交叉与死亡交叉的定义。本脚本的八条判据以此为准。
  • 百度百科《葛兰威尔法则》 —— 标注为 20 世纪 60 年代由 Joseph E. Granville 提出,四大买入法则与四大卖出法则,共计八个交易信号。
  • 財訊《用移動平均線 MA 與「葛蘭碧 8 大法則」判斷買賣時機》 —— 转述葛兰碧 1960 年著作。

关于原书的诚实说明:中文圈对葛兰碧原书的确切书名有多种译法(1960 年版《A Strategy of Daily Stock Market Timing for Maximum Profit》/《股市制胜之道》/后期版本《Granville's New Strategy…》),年份与版次在各来源间不一致,未找到可直接核验的出版商书目页。因此本站不引用任何具体版本页码,只表述为「1960 年前后由 Joseph E. Granville 提出,具体版本书名各来源略有出入」。

完整清单与逐条说明见包内 references/sources.md。

风险与局限

  1. 均线天然滞后。 它是价格历史的平滑,转向确认必然晚于价格转向。
  2. 震荡市里会反复打脸。 均线策略在趋势市表现好、在震荡市表现差,这是它的固有性质,不是参数没调好。
  3. 均线周期是经验划分。 5/10/20/60/120/250 这套体系找不到任何机构级的权威定义。
  4. 多空排列不是标准定义。 它是通行描述。
  5. 本脚本的判定参数是我选的。 乖离深度阈值、回踩容差、回看窗口,这三组数字是操作化时人为引入的,换一组信号就变。脚本会把它们打印出来,请你先看这组参数,再决定要不要用结论。
  6. 最主要的一条:历史信号经过事后标注总是显得准确。这不构成对未来有效性的证明。
  7. 不构成投资建议。 触发买入信号不代表应该买入。

常见问题

为什么同一天既有买入信号又有卖出信号? 因为八条规则各有各的触发条件,它们在同一根 K 线上可以同时成立。这正是脚本不合并信号的原因——它把矛盾原样交给你,而不是替你消解。

均线参数该怎么选? 没有客观最优解。选一组,然后固定不变地用一段时间,这样你才能判断这套规则在你手上是否有效。频繁换参数等于不断重新开始。

能不能把八条规则合成一个评分? 可以,但那会引入权重,而权重同样是人为的。合成之后,你将无法知道某个信号具体来自哪一条——这在复盘时是致命的。