大家好,我是fairyran

前两篇我们完成了量化环境搭建 + 量化专属数据类型,现在你已经可以用Python存储股票代码、股价、均线、持仓状态等数据了。

但是!只会“存数据”还做不了量化策略

量化交易的核心是什么?让程序代替人做判断、做筛选、做循环监控

比如:

  • 股价站上5日均线要不要买入?

  • 多只股票批量筛选强势标的?

  • 跌破均线是否触发止损?

  • 遍历持仓列表判断每只股票的交易信号?

想要实现以上所有功能,必须掌握 Python 两大核心:条件判断(if-elif-else) + 循环语句(for/while)

本篇不讲废话、全部量化实战场景,学完你可以直接写出:单标的信号判断 + 多标的批量选股脚本,完全衔接后续策略回测内容。


一、为什么量化必须学流程控制?

直白说:没有流程控制,就没有量化策略

所有量化策略的底层逻辑都是三段式:

  1. 获取数据(股价、均线、成交量)

  2. 条件判断(是否满足买卖条件)

  3. 循环执行(批量选股、持续监控)

本篇全程使用股票均线策略逻辑(最经典、最适合新手入门),通俗易懂、可落地、可复用。


二、条件判断 if-elif-else:量化策略的“大脑”

1. 基础语法(量化简化版)

if 条件:满足条件执行(买入/持有)

elif 其他条件:满足该条件执行

else:都不满足执行(观望/空仓)

⚠️ 量化新手第一大坑:Python严格依赖缩进,缩进不对直接报错、逻辑错乱!


2. 量化实战:单只股票均线信号判断

策略逻辑(新手万能入门策略):

  • 收盘价 > 5日均线 → 多头趋势:持有/买入

  • 收盘价 < 5日均线 → 空头趋势:卖出/观望

# 量化场景:单股票均线判断
close = 18.6   # 当前收盘价
ma5 = 18.2     # 5日均线价格

if close > ma5:
    print("✅ 信号:多头趋势,可持有或买入")
elif close < ma5:
    print("❌ 信号:空头趋势,建议减仓或观望")
else:
    print("⚖️ 信号:价格贴合均线,方向不明,观望")

3. 进阶:结合持仓状态的完整交易逻辑

真实量化不会只看价格,必须结合当前持仓状态,避免重复开仓、重复卖出。

# 真实量化交易逻辑
close = 18.6
ma5 = 18.2
is_hold = False  # 当前是否持仓

if close > ma5 and not is_hold:
    print("🟢 最终信号:空仓 + 站上均线 → 执行买入")
elif close < ma5 and is_hold:
    print("🔴 最终信号:持仓 + 跌破均线 → 执行卖出")
else:
    print("⚪ 最终信号:无操作,继续观望")

这就是最基础、最标准的量化交易逻辑结构,未来所有复杂策略(MACD、KDJ、趋势突破、网格交易)全部都是在这个结构上叠加条件。


三、for循环:批量选股、多标的遍历神器

if 判断只能处理单只股票

做量化我们需要批量监控几十只、上百只股票,这就必须用for循环

核心用途:遍历股票列表,批量判断交易信号、批量选股

量化实战:多股票批量选股系统

# 多只股票数据(列表嵌套字典,量化标准存储格式)
stock_list = [
    {"code": "sh000001", "name": "上证指数", "close": 3200, "ma5": 3180},
    {"code": "sz000001", "name": "平安银行", "close": 12.5, "ma5": 12.8},
    {"code": "sh600036", "name": "招商银行", "close": 35.6, "ma5": 35.2},
    {"code": "sz002594", "name": "比亚迪", "close": 265, "ma5": 268}
]

# 批量遍历选股
print("===== 每日量化选股结果 =====")
for stock in stock_list:
    code = stock["code"]
    name = stock["name"]
    close = stock["close"]
    ma5 = stock["ma5"]

    if close > ma5:
        print(f"✅【强势标的】{code} {name}:收盘价站上5日线,可关注")
    else:
        print(f"❌【弱势标的】{code} {name}:跌破5日线,规避")

运行结果直接帮你自动筛选强势股、弱势股,这就是量化自动化的魅力。


四、while循环:实现持续监控(模拟实时盯盘)

for循环适合一次性批量处理

while循环适合持续循环、实时监控

量化场景:模拟实时盯盘、循环监控价格、定时检测信号。

量化实战:实时价格监控脚本

# while循环模拟实时盯盘
import time

price = 18.0
ma5 = 17.5
count = 0

# 模拟循环监控3次
while count < 3:
    # 模拟价格小幅波动
    price += 0.1
    count += 1

    if price > ma5:
        print(f"第{count}次监控:当前价格{price:.2f},多头正常")
    else:
        print(f"第{count}次监控:价格回落,注意风险")
    
    time.sleep(1)  # 暂停1秒,模拟行情刷新

后续我们做实时行情监控、自动交易,全部依赖 while 循环结构。


五、break & continue:量化策略精细化控制

两个关键字,极大提升策略专业性:

  • break:满足条件直接终止循环(找到目标股票就停止遍历)

  • continue:跳过当前标的,继续下一个(剔除ST股、次新股)

实战:筛选到第一只强势股立即停止遍历

stock_list = [
    {"code": "sh000001", "close": 3200, "ma5": 3180},
    {"code": "sz000001", "close": 12.5, "ma5": 12.8},
    {"code": "sh600036", "close": 35.6, "ma5": 35.2}
]

for stock in stock_list:
    if stock["close"] > stock["ma5"]:
        print(f"找到强势标的:{stock['code']}")
        break  # 找到后直接终止循环
    else:
        continue  # 不满足则跳过

六、新手高频踩坑总结(量化专属)

整理90%新手都会犯的错误,一次性避坑:

  1. 缩进错误:if/for/while下方代码必须缩进,否则直接报错或逻辑错乱

  2. 条件写反:把“大于均线写成小于均线”,直接导致策略完全反向

  3. 死循环:while循环忘记设置终止条件,程序卡死

  4. 重复交易:判断条件不结合持仓状态,导致一直触发买入信号

  5. 遍历索引混乱:for循环遍历列表时不要手动写索引,直接遍历元素最稳


七、本篇综合大案例:完整简易选股策略

结合:数据类型 + if判断 + for循环,写出一个可直接使用的极简量化选股脚本

# 完整量化选股小策略
stock_pool = [
    {"code":"sh600036","name":"招商银行","close":35.5,"ma5":35.1,"hold":False},
    {"code":"sz002594","name":"比亚迪","close":264,"ma5":266,"hold":True},
    {"code":"sh601318","name":"中国平安","close":42.3,"ma5":42.0,"hold":False}
]

print("===== 批量策略信号输出 =====")
for s in stock_pool:
    if s["close"] > s["ma5"] and not s["hold"]:
        print(f"【买入信号】{s['code']} {s['name']}:站上均线,空仓可介入")
    elif s["close"] < s["ma5"] and s["hold"]:
        print(f"【卖出信号】{s['code']} {s['name']}:跌破均线,持仓需止盈止损")
    else:
        print(f"【观望】{s['code']} {s['name']}:无交易信号")

到这里,你已经具备了编写量化策略逻辑的底层能力


下期预告 & 追更引导

本篇我们搞定了量化逻辑判断 + 批量选股

下一篇是【第四篇】:Python函数封装

你将学会:

  • 把选股逻辑封装成专属量化工具函数

  • 告别重复代码,让你的策略更专业、可复用

  • 为后续回测框架搭建做铺垫

代码领取:全文完整源码,评论区回复【量化流程】即可获取!

有问题欢迎评论区交流,持续更新Python量化零基础实战系列,带你从零搭建完整量化体系!

更多推荐