
股票Python脚本到底能做什么
很多人听说用Python能炒股,脑子里冒出的第一个画面是:电脑自动买卖,躺着收钱。现实没这么魔幻,但确实能帮你做三件实在事。
第一件,把每天看盘的时间省下来。你不需要盯着分时图来回切换,脚本帮你监控几十只股票的价格、成交量、均线位置,到了条件就弹提醒。
第二件,把“感觉”变成“规则”。你觉得“跌多了该反弹”,脚本会告诉你:过去五年里,某只股票日线RSI低于30之后,未来五天上涨的概率是54%还是61%。数据说话,不靠拍脑袋。

第三件,把重复动作自动化。收盘后自动下载数据、计算指标、生成第二天的交易计划表,这些活儿以前要花一小时,脚本三秒钟跑完。
一个最简单的股票Python脚本长什么样
先别想着写一个能实盘赚钱的全自动系统。从“能跑通”开始,就像学做菜先学会煎鸡蛋。
下面这段代码不依赖任何付费接口,用免费的yfinance库拉取数据,计算5日和20日两条均线,并输出金叉死叉信号。
import yfinance as yf
import pandas as pd
# 下载股票数据
df = yf.download('AAPL', start='2023-01-01', end='2024-01-01')
# 计算均线
df['MA5'] = df['Close'].rolling(window=5).mean()
df['MA20'] = df['Close'].rolling(window=20).mean()
# 生成信号
df['Signal'] = 0
df.loc[df['MA5'] > df['MA20'], 'Signal'] = 1
df.loc[df['MA5'] < df['MA20'], 'Signal'] = -1
# 找出金叉和死叉的日期
df['Position'] = df['Signal'].diff()
buy_dates = df[df['Position'] == 2].index
sell_dates = df[df['Position'] == -2].index
print('买入信号日期:', buy_dates)
print('卖出信号日期:', sell_dates)
这段代码干了三件事:拿数据、算均线、标记买卖点。你把它复制到本地Python环境里,把股票代码换成茅台、宁德时代、腾讯,都能跑。
为什么双均线策略是新手的第一课
均线策略的逻辑特别朴素:短期均线代表最近的情绪,长期均线代表更长时间的平均成本。短期均线从下往上穿过长期均线,说明近期买盘力量在增强,市场情绪转暖。反过来,短期均线下穿长期均线,说明抛压开始占上风。
这个策略不神奇,甚至在震荡市里会反复打脸。但它有个巨大好处:强迫你接受“信号出现才行动”的纪律。大部分散户亏钱不是选错股票,是盘中临时起意追涨杀跌。均线策略用代码把纪律固定下来,你只负责执行。
回测才是股票Python脚本的照妖镜
上面那段代码只是告诉你历史上哪些天出现了信号,它没有回答最关键的问题:按这个信号买卖,到底赚不赚钱?
回测就是拿历史数据模拟交易。你需要考虑几个现实因素:手续费、滑点、仓位大小。很多人写回测只看收益率曲线,忘了算交易成本,结果模拟盘年化30%,实盘跑下来15%都不到。
用backtrader或者自己写一个简单循环,把买入价加上0.1%的滑点,卖出价减去0.1%的滑点,每笔交易扣掉万分之三的佣金。你会发现双均线策略在趋势明显的年份表现不错,在横盘年份频繁止损,一年下来给券商打工。
股票Python脚本和期货脚本的区别在哪
期货和股票的交易规则不一样,脚本逻辑也要跟着变。
股票是全额交易,买一万块钱的股票需要账户里有至少一万块。期货是保证金交易,买一手螺纹钢可能只需要几千块保证金,撬动的是十万级别的合约价值。这意味着期货脚本的风控模块必须更严格,止损线要卡得更死。
股票没有到期日,被套了可以装死。期货合约有交割月,临近交割要么平仓要么移仓,脚本必须处理换月逻辑。
股票只能做多,期货可以做空。均线策略在期货上要增加做空信号:短期均线下穿长期均线时开空单,而不是简单地清仓。
写股票Python脚本必须绕开的三个坑
第一个坑,用未来数据。有的人写回测时不小心用了当天的收盘价去决定当天的买卖,这在现实中做不到。你今天收盘才知道收盘价,怎么可能用这个价格成交?信号应该基于昨天收盘或者今天开盘。
第二个坑,过度拟合。你调参数调到年化收益50%,夏普比率3.0,一上实盘就亏。因为你的参数是专门为这段历史行情量身定做的,换一段数据就失效。参数越少越稳健,均线策略就用5和20,别去优化成7和23。
第三个坑,忽略流动性。小盘股每天成交额只有几千万,你的脚本发出买入信号,实盘可能根本买不到足够的量,或者一买就把价格推上去了。脚本选股要加一个过滤条件:日均成交额低于一个亿的直接跳过。
从脚本到实盘还差什么
能回测的脚本和能实盘的脚本是两码事。实盘要对接券商接口,处理网络断线、订单被拒、部分成交这些破事。国内普通散户用Python做全自动交易,接口门槛不低。
更现实的路径是半自动:脚本每天收盘后跑一遍,生成第二天的交易计划,包含股票代码、买入价格区间、止损位、仓位比例。第二天你手动挂单。这样既享受了程序化的纪律,又避开了接口和合规的麻烦。
股票Python脚本不是圣杯,它是一把锤子。你得先知道要钉什么钉子,锤子才有用。