金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1806|回复: 0

使用DeepSeek编写金字塔Python策略教程

[复制链接]

37

主题

9994

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-26 16:58 | 显示全部楼层 |阅读模式
使用DeepSeek进行Python策略开发教程

准备工作:
      1. 如果您第一次阅读使用此教程,请务必先阅读【使用AI模型进行策略开发导读】,将有利于您更好的驾驭AI大模型工具。
      2. 使用大模型辅助策略开发之前, 请先下载金字塔的Python API文档。
         
[size=0.85em]m-ke rnels         # 基于抽象计算机开发的应用程序
[Python] 复制代码
#目录结构如下:
jzt_python_API                     # 由于DeepSeek对文档解读的大小有限制,所以我们将API说明拆分成以下两个markdown文件。 
  |-- jzt_API.md                   # 金字塔的python接口说明,包含API基本方法、交易函数、数据查询等章节
  |-- 股票财务相关.md               # 专业股票财务数据相关接口说明,(若策略中涉及相关内容时,再将其上传给DeepSeek学习使用) 


   
开始会话:      

1. 告知DeepSeek学习任务、以及工作背景。
和DeepSeek对话时,其实类似于给一个学生布置学习任务,只要任务中指明明确的目标、清晰的学习流程、提出任务的输出要求,那么它就不会有偷懒行为。例如使用如下提示词,可以让DeepSeek更深度的学习文档。
提示词模板如下:
[Python] 复制代码
你现在是一名资深策略开发工程师,专注于金字塔决策交易系统平台的量化策略开发。我已上传 jzt_API.md 文档,其中包含该平台的 Python API 详细信息。
请按照以下步骤深度学习该文档:
        1.通读文档:完整阅读 API 文档,识别核心模块,梳理函数/方法的逻辑关系;掌握所有函数、方法、类及返回值类型。
        2.逐步解析:按照文档结构,逐部分总结 API 的功能、调用方式,并列出关键参数和典型返回值。
        3.归纳总结:以 Markdown 表格或要点形式,整理 API 主要接口、用途及适用场景。
        4.代码示例:为 API 中的核心功能编写 Python 代码示例,演示典型用法,并进行代码推理。
        5. 代码验证:确保代码能够正确运行,并分析 API 的潜在错误或异常处理方法。
        6.自测应用:假设一个量化交易场景,并使用 API 设计一个解决方案,说明调用逻辑。

学习完成后,请以结构化方式汇报你的学习成果,包括:
        1.API 关键内容总结(表格或要点)
        2.核心代码示例
        3.API 在量化交易中的应用场景
        4.可能存在的使用限制或注意事项
学习完成后,直接回复“API 学习完成”,并附上总结内容。之后,我会提供策略需求,让你编写量化交易策略。

注:
    1、我们可以根据自身的实际需要调整和完善提示词。(技巧:可以将自己的使用场景、目的、要求等信息提供给DeepSeek,让它单独帮你生成针对性的提示词)
    2、若DeepSeek学习中总结反馈的内容存在错误,我们要及时纠正它;确保后续可以更精准的实现策略需求。


2. 学习完毕后,提交明确的策略逻辑、策略目标等内容给DeepSeek进行处理。
    策略需求提交可以根伟以下两种形式:
     1. 一次性提交
           定义:一次性提供完整需求,包括目标、场景、逻辑、约束等,我直接生成最终结果。
           优点
                  高效直接:一次提交即可获得完整策略,减少交互次数,适合时间紧迫的情况。
                  逻辑完整:我能基于全貌设计一致的代码和方案,避免迭代中的碎片化。
                  降低沟通成本:你只需清晰描述一次,无需多次调整。
                  适合明确需求:当你已充分思考策略细节时,能快速进入开发阶段。
            缺点
                   前期负担重:要求你一次性想清楚所有细节,可能增加准备时间。
                   修正难度大:若需求有误或 API 限制未考虑,需大幅调整,浪费初步工作。
                   灵活性低:不易适应中途发现的问题或新想法。
            适用场景
                   策略简单明确(如标准均线交叉)。
                   你已熟悉 jzt_API.md,能准确预判 API 能力。
                   追求快速交付完整代码。



提示词模板示例:
[PEL] 复制代码
任务目标:  你是一名资深量化策略开发工程师,专注于金字塔决策交易系统平台的量化策略开发。我需要你根据双均线金叉死叉逻辑开发一个趋势跟随策略,交易 RB00 螺纹钢连续,完整实现以下功能。  

策略概要:  
  - 策略类型:趋势跟随策略  
  - 交易逻辑:基于 5 周期短期均线与 20 周期长期均线的交叉,金叉买入,死叉卖出。  
  - 风险管理:止损 5%,止盈 10%,控制单笔交易风险。  
  - 数据需求:至少 60 周期的 15 分钟 K 线数据(字段:close),用于计算均线。  

数据获取与均线计算:  
  - 用 `history_bars` 获取 RB00 的 15 分钟 K 线数据(60 周期,字段 'close')。  
  - 计算并展示 5 周期和 20 周期简单均线(SMA)。  

交易信号生成:   
  - 金叉(5 上穿 20)生成买入信号,死叉(5 下穿 20)生成卖出信号。  

止盈止损逻辑:    
  - 实现止损 5%(最新价下跌 5% 时触发卖出)和止盈 10%(最新价上涨 10% 时触发卖出)。 



     2.迭代式提交
          定义:分阶段提供需求,例如先给核心逻辑,再补充约束或优化要求,每次基于我的反馈调整。
          优点
                  灵活调整:可以在开发过程中根据我的输出(代码、分析)动态修正方向,避免一开始锁定不合理的需求。
                  逐步完善:适合复杂策略,允许从简单原型开始,逐步添加细节(如风控、优化),降低初期复杂度。
                  交互性强:每次迭代都能验证我的理解是否正确,减少误解风险。
                  适应性好:若 jzt_API.md 有未预见的限制,我可及时提醒,你再调整需求。
          缺点
                  时间成本:多次交互可能拉长总周期,尤其是简单策略。
                  连贯性挑战:若每次需求不明确,可能导致策略逻辑前后不一致。
                  依赖反馈:需要你频繁检查我的输出并提供清晰的下一步指引。
           适用场景
                  策略复杂或探索性强(如多指标组合、新颖逻辑)。
                 你对最终目标有大致想法,但细节需边试边定。
                 希望逐步验证 API 的适用性。

  接下来我们采用迭代提交需求的形式演示策略的编写过程,通过这种方式即符合策略开发的过程、又可以帮助我们平缓的掌握金字塔的API接口内容。我们以实现双均线交易系统为例:
第一次迭代提示词如下
[PEL] 复制代码
任务目标:  你是一名资深量化策略开发工程师,专注于金字塔决策交易系统平台的量化策略开发。我需要你根据双均线金叉死叉逻辑开发一个趋势跟随策略,交易 RB00 螺纹钢连续,按照以下步骤进行迭代开发。  

策略概要:  
  - 策略类型:趋势跟随策略  
  - 交易逻辑:基于 5 周期短期均线与 20 周期长期均线的交叉,金叉买入,死叉卖出。  
  - 风险管理:止损 5%,止盈 10%,控制单笔交易风险。  
  - 数据需求:至少 60 周期的 15 分钟 K 线数据(字段:open, high, low, close),用于计算均线。  

迭代 1:数据获取与均线计算:  
- 任务:实现 RB00 的 K 线数据获取并计算 5 周期和 20 周期均线。  
- 输入内容:  
  - 请用 `history_bars` 获取 RB00 的 15 分钟 K 线数据(60 周期,字段  'close')。  
  - 计算并展示 5 周期和 20 周期简单均线。  
 
生成的示例代码如下,但是示例代码并不完全符合金字塔python策略的结构,使用者只需告知DeepSeek存在的问题即可,以免影响后续的迭代。
我们将代码复制到金字塔的python编译器中,编译并执行,确保代码没有语法错误、执行错误、逻辑错误后,再迭代主干的交易逻辑部分。
注:生成的代码存在的问题不尽相同,需要我们针对报错信息、策略基本结构针对性的指明问题所在。(必要时使用者应该结合API文档的信息排查问题例如:获取历史数据的返回值类型为 ndarray,deepseek在处理时可能会默认为其他类型使用,造成运行时报错。



第二次迭代提示词如下
[PEL] 复制代码
任务:基于 5 周期与 20 周期均线交叉,生成 RB00 的买入/卖出信号。  
输入内容:  
  - 请实现 5 周期均线与 20 周期均线的交叉判断逻辑。  
  - 金叉(5 上穿 20)生成买入信号,死叉(5 下穿 20)生成卖出信号。  
输出要求:  
  - 提供生成交易信号的 Python 代码。  
 

生成的代码如下所示:
同样将代码复制到金字塔的python编译器中,编译并执行,确保代码没有语法错误、执行错误、逻辑错误后,再继续迭代需求。



第三次迭代提示词如下
[PEL] 复制代码
任务:为 RB00 双均线策略增加止盈止损逻辑,基于已有信号判断持仓后的价格波动。 

输入内容:  
  - 实现止损 5%(最新价下跌 5% 时触发卖出)和止盈 10%(最新价上涨 10% 时触发卖出)
 

对生成的代码进行验证、研读分析,让使用者和DeepSeek共同进步。及时发现并解决实现过程中的问题。

注:由于我们没有对止盈止损的算法进行规范,所以DeepSeek采取记录开仓价和最新价作为计算因子进行计算盈亏幅度。
那么我们后期可以要求其改为使用持仓均价和最新价计算盈亏。面对细节或者算法不符合需求时,只要DeepSeek多次对话指明需求即可完成调整。


我们只要根据需要,不断通过迭、调整细化的方式,一步步从基础的数据获取、均线计算到复杂的交易信号生成、执行与风险管理,最终完成了完整的策略开发流程。通过这种不断的学习与实践,你将能进一步提升量化策略的开发能力,构建更复杂、更精细的交易系统。希望这次迭代开发教程对你有所帮助,并能够为你的量化交易之路提供坚实的基础。

总结:
    迭代式开发:这种方法帮助我们将复杂的策略开发分解为多个小步骤,每个步骤都有明确的目标和输出。通过逐步验证和调整,确保策略在每个阶段都能够正确运行,避免了整体策略开发过程中可能出现的错误或遗漏。
    模块化结构:每个迭代阶段都专注于一个特定的功能模块,从数据处理到交易执行,再到回测优化,这使得整个开发流程更加高效和易于维护。
    灵活性与扩展性:你不仅学习了如何实现一个基础的双均线策略,还掌握了如何在策略开发过程中进行优化和调整,使得策略能够应对不同的市场环境和风险需求。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-17 07:14 , Processed in 0.093327 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表