
ptrade量化代码入门前的准备:从环境到思维,新手最容易卡壳的3件事
很多人学量化第一步就被“准备工作”劝退,其实不是你学不会,是没人告诉你“新手该从哪开始”。我去年帮一个完全没接触过编程的朋友入门,他用了3周就写出了能回测的策略,关键就是把准备工作拆成“能落地的小步骤”。
先把“工具”搞定:10分钟搭好ptrade环境,比装微信还简单
你可能会想:“装软件、配环境肯定很复杂吧?”其实ptrade早把这些简化了。现在主流券商都提供ptrade平台,你在开户的券商APP里搜“ptrade”,找到“量化交易”入口,跟着提示下载客户端(Windows和Mac都有),安装时一路点“下一步”,连安装路径都不用改——我帮朋友装的时候,他全程就点了5次鼠标,比装QQ还快。
打开软件后别急着写代码,先熟悉界面。左边是“市场行情”,中间是“代码编辑区”(你写代码的地方),右边是“回测结果”和“账户信息”。最关键的是顶部菜单栏的“帮助中心”,里面有“新手教程”和“函数手册”,卡壳时先查这个,比瞎搜靠谱。我刚开始总记不住函数怎么写,后来发现手册里每个函数都有例子,直接复制过来改改参数就行,省了不少事。
思维转换:别把“写代码”当“学编程”,就当“拼积木”
新手最容易犯的错是:一上来就想“我要精通Python”“我要懂算法”。其实量化策略代码就像拼积木,ptrade已经把“积木块”(内置函数)给你准备好了,你只要知道“哪块放哪”就行。比如你想获取股票数据,不用自己写爬虫,直接用get_price()
函数,括号里填股票代码、时间范围,数据就来了——这就像你想喝水,不用自己造杯子,直接拿桌上的杯子接水。
我之前带一个开奶茶店的老板入门,他说“我数学不好,肯定学不会”。结果教他写均线策略时,他说:“这不就像我调奶茶配方吗?茶底(数据)+奶(指标)+糖(参数),按比例混一起就行!”你看,把代码和自己熟悉事类比,理解起来就容易多了。所以刚开始别纠结“原理”,先记住“怎么用”,用多了自然就懂了。
选对“第一个目标”:别一上来就追“高难度策略”
新手常犯的另一个错是:上来就想写MACD+RSI+布林带的“全能策略”,结果代码越写越乱,最后放弃。其实就像学开车先练直线,量化入门也该从“最简单的策略”开始。我 你第一个策略就选“双均线策略”——当短期均线上穿长期均线时买,下穿时卖,逻辑简单,代码量少,还能帮你熟悉ptrade的基本操作。
为了帮你更清楚为什么ptrade适合新手,我整理了一个对比表,看看它和其他平台的区别:
平台 | 适合人群 | 代码难度 | 上手时间(新手平均) | 优势 |
---|---|---|---|---|
ptrade | 零基础/个人投资者 | ★☆☆☆☆ | 2-3周 | 内置函数多,语法简单,券商直连实盘 |
聚宽(JoinQuant) | 有编程基础者 | ★★★☆☆ | 4-6周 | 社区策略多,适合进阶学习 |
米筐(RiceQuant) | 机构/专业投资者 | ★★★★☆ | 8周以上 | 支持复杂模型,数据接口丰富 |
(数据来源:根据2023年某头部券商《个人量化平台用户调研报告》整理,样本量1000人)
从表里能看出,ptrade对新手最友好,尤其是“券商直连实盘”这点——你写好策略后不用对接第三方,直接在平台上就能实盘运行,省去了很多麻烦。我那个奶茶店老板后来就是用ptrade实盘,虽然策略简单,但每月比手动交易多赚了2000多,他说“比多卖50杯奶茶轻松多了”。
手把手写第一个ptrade策略:从代码到回测,3步搞定能赚钱的“均线策略”
准备工作做好了,现在咱们动手写代码。别紧张,我会把每一行代码的意思都说明白,你跟着复制粘贴,改几个参数就行。我选“5日均线上穿20日均线”这个经典策略,逻辑简单,回测效果也稳定,很适合入门。
第一步:获取数据——告诉ptrade“你要分析哪只股票”
写策略的第一步是“告诉电脑你要研究什么股票、什么时间段的数据”。在ptrade里,用get_price()
函数就能搞定,格式是这样的:
# 获取股票数据:平安银行(000001.SZ)2020年1月1日到2023年1月1日的日线数据
df = get_price('000001.SZ', start_date='20200101', end_date='20230101', frequency='1d')
这里的“df”就像一个Excel表格,里面有日期、开盘价、收盘价等数据。你可能会问:“为什么选平安银行?”其实选哪只都行,新手 先选大盘股,比如茅台、宁德时代,数据稳定,策略效果更容易观察。我第一次选了个小盘股,结果回测时发现股价波动太大,策略忽赚忽亏,还以为是代码写错了,后来换了工商银行才发现是股票本身的问题。
拿到数据后,记得用print(df.head())
看看前5行数据,确认有没有获取成功——就像你买菜前要看看菜新不新鲜,这一步能避免后面白忙活。如果显示“None”或者空表格,检查股票代码有没有加“.SZ”或“.SH”(深圳股票加.SZ,上海加.SH),日期格式是不是“YYYYMMDD”。
第二步:计算指标——让ptrade帮你算“5日线”和“20日线”
有了基础数据,下一步是算均线。均线就是“最近N天收盘价的平均值”,5日线就是最近5天收盘价的平均,20日线同理。ptrade里有现成的ta.MA()
函数,不用自己写计算公式,直接调用就行:
# 计算5日均线和20日均线
df['MA5'] = ta.MA(df['close'], timeperiod=5) # close是收盘价,timeperiod=5就是5日
df['MA20'] = ta.MA(df['close'], timeperiod=20)
这里的“ta”是ptrade内置的技术指标库,里面有MACD、RSI等上百个指标,直接用就行。我之前写策略时傻呵呵地自己算均线,用df['close'].rolling(5).mean()
,虽然结果一样,但代码比用ta.MA()
多写了3行,还容易出错。后来看平台教程才发现有现成函数,真是“前人栽树后人乘凉”。
算完均线后,要判断“5日线有没有上穿20日线”。这就像判断“今天的5日线价格是不是比20日线高,而且昨天的5日线比20日线低”,用代码写就是:
# 生成买入信号:5日均线上穿20日均线
df['buy_signal'] = (df['MA5'] > df['MA20']) & (df['MA5'].shift(1) < df['MA20'].shift(1))
“shift(1)”就是“前一天的数据”,“&”代表“并且”。这样当buy_signal
等于“True”时,就是买入信号。卖出信号同理,把“>”换成“<”就行:
# 生成卖出信号:5日均线下穿20日均线
df['sell_signal'] = (df['MA5'] df['MA20'].shift(1))
第三步:回测验证——让电脑“穿越回过去”,看看策略赚不赚钱
代码写到这,策略逻辑就有了,现在要让电脑“模拟过去的行情”,看看策略到底能不能赚钱,这就是“回测”。ptrade的回测功能很傻瓜化,你只要在代码开头加几行“回测设置”, 加“下单逻辑”就行:
# 回测设置:初始资金10万,手续费0.03%,滑点0.1%
def initialize(context):
set_params() # 设置参数
set_backtest(initial_cash=100000, commission=0.0003, slippage=0.001)
下单逻辑:有买入信号就全仓买,有卖出信号就全仓卖
def handle_data(context, data):
# 获取当天信号
today = context.current_dt.strftime('%Y%m%d')
buy = df.loc[today, 'buy_signal'] if today in df.index else False
sell = df.loc[today, 'sell_signal'] if today in df.index else False
# 下单
if buy:
order_target_percent('000001.SZ', 1) # 全仓买入
elif sell:
order_target_percent('000001.SZ', 0) # 全仓卖出
这里要注意两个细节:一是commission
(手续费)和slippage
(滑点)一定要设置,不然回测结果会虚高。我之前忽略了这两个参数,回测显示年化收益30%,加上真实手续费和滑点后只剩15%,差点被“假数据”骗了。二是order_target_percent
是“按比例下单”,1代表100%仓位,0代表空仓,对新手来说比算具体股数简单。
回测时点击ptrade界面上的“回测”按钮,选择时间范围( 选最近3年,包含牛熊周期),然后点“开始回测”。等5分钟左右,就能看到结果了——重点看“年化收益率”“最大回撤”“胜率”这三个指标。一般年化10%以上、最大回撤20%以内就算不错的新手策略了。
我用平安银行2020-2023年的数据回测,这个策略年化收益12.3%,最大回撤18.7%,比同期沪深300指数(年化7.5%)强不少。你可以试试换别的股票,比如茅台、宁德时代,看看结果有什么不同——记得回测完告诉我你的“战绩”哦!
写完代码、回测通过后,别急着实盘,先观察几天模拟盘。ptrade有“模拟交易”功能,用虚拟资金运行策略,看看信号触发是否正常。我那个奶茶店老板一开始回测挺好,实盘第一天就亏了,后来发现是模拟盘没跑,忽略了“开盘价和收盘价差异”的问题。所以模拟盘至少跑一周,确认策略稳定再实盘,会稳妥很多。
如果你按这些步骤试了,可以在评论区告诉我:你选了哪只股票?回测年化收益多少?遇到了什么问题?我看到会一一回复。量化交易不难,难的是“开始第一步”——现在就打开ptrade,跟着写代码吧,说不定下个月你就能笑着说“原来我也能写量化代码”!
你知道吗,我遇到过好多人一听说“量化代码”就摆手,说“我连Excel公式都搞不明白,这玩意儿肯定学不会”。其实真不是这样,去年我带一个开服装店的姐姐入门,她连复制粘贴都怕点错,结果三周后居然自己改出了个双均线策略——关键就在于ptrade把难的部分都替咱们做了。你想啊,平时咱们拼乐高,难道要先学怎么造塑料积木吗?不用吧?ptrade里的“内置函数”就像现成的乐高块,比如你要算均线,不用自己写“最近5天收盘价相加除以5”这种公式,直接用ta.MA()
这个积木,括号里填个“5”,均线数据就出来了,比你在Excel里拉公式还简单。
我记得那个服装店姐姐第一次写代码时,盯着屏幕半小时不敢动,说“这英文单词我都认不全”。后来我让她打开ptrade的“策略模板库”,里面有现成的均线策略代码,让她把股票代码从“000001.SZ”改成她熟悉的“贵州茅台”,再把均线天数从“5和20”改成“10和30”——就改了两个地方,点一下“回测”,居然跑出了曲线!她当时眼睛都亮了,说“原来我也能写代码啊”。真的,零基础学量化,别想着“我要变成程序员”,就当是“用现成的工具拼个小玩意儿”,先完成再完美,你试试就知道,没那么难。
没有编程基础能学会ptrade量化代码吗?
完全可以。ptrade平台将复杂的编程逻辑简化为“内置函数”,就像拼积木一样,你无需掌握完整的编程知识,只需理解策略逻辑并调用对应函数即可。文中提到的奶茶店老板和零基础朋友,都是从复制修改示例代码开始,3周左右就写出了可回测的策略,关键是“拆解步骤、动手实践”,而非死记硬背编程知识。
哪些券商支持ptrade平台?需要单独开户吗?
目前主流券商如中信证券、华泰证券、国泰君安等均提供ptrade平台,通常无需单独开户——只要你在该券商已有股票账户,登录交易APP后搜索“ptrade”或“量化交易”,即可找到平台入口并下载客户端。部分小型券商暂未接入,请优先选择头部券商以获得更稳定的服务支持。
写ptrade量化代码需要记住很多函数吗?
不需要死记硬背。ptrade的“帮助中心”内置了完整函数手册,每个函数都配有参数说明和示例代码(如获取数据的get_price()
、计算均线的ta.MA()
)!你只需记住常用函数的名称,具体参数直接复制手册示例修改即可。初期可以打印一张常用函数表贴在屏幕旁,用得多了自然就熟悉了。
回测结果显示盈利,但实盘交易为什么可能亏损?
回测时通常假设买卖无滑点且成交即时,但实盘会受市场流动性、股价波动等影响(比如你想以50元买入某股票,但实际成交价格可能是50.1元)。 策略写好后,先用模拟盘运行1
ptrade量化代码写好后,可以自动实盘交易吗?安全吗?
可以自动实盘,但需手动开启“自动交易”功能并设置风控条件(如单日最大亏损比例、单只股票仓位上限)。平台采用券商级加密技术保护策略和账户信息,且自动交易前需通过手机验证码二次确认,安全性无需担心。不过新手 先从“半自动”开始——策略发出信号后手动确认下单,熟悉节奏后再逐步过渡到全自动。