我用DeepSeekPython零代码搞定股票回测

2023年,我炒股亏掉50%——听消息、追涨杀跌、天天盯盘…
2025年,我用这套方法逆风翻盘
✅ 5日均线策略优化3次 → 年化收益27%
✅ 回测100+次交易 → 避开90%的坑
✅ 零代码操作 → 小白1小时上手
今天,我的实战日记全公开!(文末送源码合集)


第一部分:3大颠覆认知(90%新手不知道)

❗ 真相1:官网没有回测功能?2招破解

方案一:DeepSeek生成策略+本地回测(免费)
▸ 工具:Python+Backtrader(代码自动生成)
▸ 优势:数据透明,可自定义参数
方案二:DeepSeek+QMT极速下单(机构同款)
▸ 工具:券商免费开通
▸ 优势:实盘回测一键切换

️ 对比图
[收益率曲线图] 均线策略收益120% VS 盲目交易亏损50%


❗ 真相2:5行代码抓取全A股数据

python

复制

# 小白必存!一键下载股票数据  
import akshare as ak  
# 示例:茅台后复权数据  
df = ak.stock_zh_a_hist(symbol="600519", adjust="hfq")  
df.to_excel("茅台十年数据.xlsx")  

⚠️ 避坑:一定要用后复权数据!否则K线全是坑!


❗ 真相3:回测必须加这3行代码(否则血亏)

python

复制

# 手续费+滑点设置(实盘更真实)  
cerebro.broker.setcommission(commission=0.001)  # 千1佣金  
cerebro.broker.set_slippage_perc(0.01)         # 1%滑点  

第二部分:实操教程

第一步:环境搭建

1. 安装Anaconda(数据处理核心工具)

  • Windows/Mac通用步骤
  • 访问清华镜像站 → 下载Anaconda3-2023.09-0版本
  • 双击安装包 → 全部勾选默认选项(务必勾选Add to PATH
  • 验证安装:按下 Win+R 输入 cmd → 输入 conda –version → 显示版本号即成功

2. 安装必备库(逐行执行)

bash

复制

# 打开Anaconda Prompt(Mac/Linux用终端)
pip install akshare -i https://pypi.tuna.tsinghua.edu.cn/simple/  # 数据获取
pip install backtrader -i https://pypi.tuna.tsinghua.edu.cn/simple/  # 回测框架
pip install pyfolio -i https://pypi.tuna.tsinghua.edu.cn/simple/  # 结果分析

3. 启动Jupyter Notebook(可视化编辑器)

bash

复制

# 在Anaconda Prompt输入
jupyter notebook
# 浏览器自动打开 → 点击右上角New → Python 3 新建笔记本

第二步:获取股票数据(3种方法)

方法1:AKShare直接获取(推荐)

python

复制

import akshare as ak
import pandas as pd

# 示例:获取贵州茅台后复权数据(2015-2024)
df = ak.stock_zh_a_hist(
    symbol="600519", 
    period="daily", 
    start_date="20150101", 
    end_date="20241231", 
    adjust="hfq"  # hfq=后复权,重要!
)

# 重命名列并格式化日期
df.rename(columns={'日期':'date','开盘':'open','收盘':'close','最高':'high','最低':'low','成交量':'volume'}, inplace=True)
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)

# 保存到本地(可选)
df.to_excel("茅台_十年数据.xlsx")

方法2:CSV文件导入(已有数据使用)

python

复制

import pandas as pd
# 从Excel读取(需包含date/open/high/low/close/volume列)
df = pd.read_excel("你的数据文件.xlsx", index_col='date', parse_dates=True)

方法3:DeepSeek智能生成(新手友好)

  1. 访问DeepSeek官网 → 输入:“写Python代码获取贵州茅台股票数据”
  2. 复制生成的代码 → 粘贴到Jupyter中运行

第三步:编写均线策略(逐行解析)

python

复制

# 导入库
import backtrader as bt
import pyfolio as pf

# 自定义策略类
class MaCrossStrategy(bt.Strategy):
    params = (
        ('fast_period', 5),   # 5日均线
        ('slow_period', 20),  # 20日均线
    )

    def __init__(self):
        # 定义指标
        self.fast_ma = bt.indicators.SMA(
            self.data.close, 
            period=self.params.fast_period
        )
        self.slow_ma = bt.indicators.SMA(
            self.data.close, 
            period=self.params.slow_period
        )
        self.crossover = bt.indicators.CrossOver(
            self.fast_ma, 
            self.slow_ma
        )

    def next(self):
        if not self.position:  # 没有持仓
            if self.crossover > 0:  # 金叉买入
                self.buy(size=100)  # 买入100股
        elif self.crossover < 0:    # 死叉卖出
            self.close()           # 平仓

# 注意:此策略类可直接复用!

第四步:运行回测(完整代码块)

python

复制

# 创建回测引擎
cerebro = bt.Cerebro()

# 加载数据
data = bt.feeds.PandasData(
    dataname=df,  # 使用前面获取的df
    datetime=None,  # 索引已经是日期
    open=0,         # 列位置索引
    high=1,
    low=2,
    close=3,
    volume=4,
    openinterest=-1  # 无持仓量列
)

# 设置初始资金10万
cerebro.broker.setcash(100000.0)

# 添加策略
cerebro.addstrategy(MaCrossStrategy)

# 添加分析器
cerebro.addanalyzer(bt.analyzers.PyFolio, _name='pyfolio')

# 运行回测
results = cerebro.run()

# 提取结果
strat = results[0]
portfolio_stats = strat.analyzers.getbyname('pyfolio').get_analysis()

# 可视化
pf.create_returns_tear_sheet(
    returns=portfolio_stats['returns'],
    benchmark_rets=portfolio_stats['benchmark_returns']
)

第五步:关键结果解读(附示意图)

  1. 收益曲线图
  2. 蓝色线:策略收益
  3. 灰色线:基准收益(如沪深300)
  4. 关键指标表
  5. 指标合格标准示例值年化收益率>15%22.3%最大回撤<20%18.7%夏普比率>11.5胜率>55%60.2%

常见报错解决方案

  1. ModuleNotFoundError: No module named ‘akshare’
    → 重新执行 pip install akshare
  2. 数据日期格式错误
    → 检查 df[‘date’] = pd.to_datetime(df[‘date’])
  3. 回测无交易信号
    → 检查均线周期是否过短(建议5日+20日组合)

高级技巧:策略优化模板

python

复制

# 批量测试不同均线组合
for fast in [5, 7, 10]:
    for slow in [20, 30, 50]:
        cerebro.optstrategy(
            MaCrossStrategy,
            fast_period=fast,
            slow_period=slow
        )
# 运行优化
optim_results = cerebro.run()

立即行动:复制代码到Jupyter中运行,2小时完成你的第一次专业级回测!

警告:这3类人不要继续看!

❌ 想一夜暴富的赌徒 → 量化是长跑
❌ 拒绝学习的伸手党 → 需1小时研究
❌ 迷信“圣杯策略”的懒人 → 市场永远在变


行动号召:今天你能做什么?

1️⃣ 复制代码跑通第一个策略 → 截图发微头条
2️⃣ 优化参数挑战年化30% → 7日/30日均线试试看
3️⃣谢谢您的关注

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/962894
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 1小时前
下一篇 2024 年 8 月 7 日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注