ptrade之demo策略小市值,Ptrade量化交易免费开通
发布时间:4小时前阅读:51
很多小伙伴在开通了ptrade后会发现,它会贴心的赠送很多demo策略,但是这些策略具体怎么运作?每段代码在 “干些什么”?实盘能不能直接用?今天我们就来先讲一讲demo策略里面的“小市值策略”。
先搞懂核心:小市值策略到底在 “干什么”?
要学策略,先懂 “它的想法”。小市值策略的核心逻辑,其实源于市场一个常见特点:流通市值小的股票,往往弹性更大(简单说就是涨跌幅可能更明显)。但光找小市值还不够,得 “挑好的小市值”,还要 “别踩坑”,所以策略的整体逻辑分两步走:
盘前:先把 “坏股票” 筛出去,留下 “候选池”
每天开盘前,策略会先做 “筛选工作”,就像买菜前先把烂菜挑出去:
锁定范围 —— 只看 “中小板综指数”(代码 399101.XBHS)的成分股,不碰其他板块的股票,保证策略聚焦在中小盘股里;
剔除 “坑股”—— 把成分股里的 ST 股(有风险警示的)、停牌股(买了卖不了的)、退市股(即将退市的)全部去掉,避免踩雷;
缩小范围 —— 先按 “昨天收盘的流通市值” 从小到大排序,挑前 100 只(主要是为了让回测跑得更快,不用算太多股票),再从这 100 只里去掉 “坑股”,最后留下流通市值最小的 10 只,作为当天的 “备选股票池”。
盘中:只买 “最小的”,涨停的 “不动”
开盘后,策略会根据实时情况换仓,核心规则就两条:
始终持有 “当前流通市值最小的 5 只股票”(流通市值 = 昨天的流通股本 × 今天实时股价,实时算、实时排);
如果手里持有的股票当天涨停了,不管它是不是还在 “最小 5 只” 里,都不卖掉(怕卖了之后买不回来,错过后续涨幅)。
逐行拆代码:每个模块在 “做什么”?(结合 Ptrade API)
代码看着复杂,但其实是 “按步骤干活”,咱们把每个核心函数拆开对照观看:
初始化函数(initialize):给策略 “定规矩”

这部分是策略的 “基础设置”,就像给手机设初始参数:
set_benchmark("000300.XSHG"):设置 “比较基准” 为沪深 300 指数(API 文档里 “基准指数设置” 接口)。意思是:策略赚了多少钱,要跟沪深 300 比 —— 比如策略涨 5%,沪深 300 涨 2%,说明策略跑赢了;
g.index = "399101.XBHS":定好股票池的 “来源” 是中小板综指数(API 里 “指数成分股获取” 接口的前置设置),后续只从这个指数里选股票;
g.buy_stock_count = 5:规定每次最多持有 5 只股票,避免买太多分散精力;
if not is_trade(): set_backtest():判断如果不是实盘(是回测),就开启 “无限制回测模式”(API 里 “回测参数设置” 接口),让回测能更顺畅地计算。
盘前处理(before_trading_start):筛选 “候选股池”

这部分是每天开盘前的 “准备工作”,关键 API 要记牢:
get_positions().keys():获取昨天持有的股票列表(API “持仓信息查询” 接口),后续用来判断哪些股票涨停了;
get_index_stocks(g.index):根据之前定的 “中小板综指数”,拿到所有成分股(API “指数成分股获取” 接口),这是策略的 “选股范围”;
get_fundamentals(...):查询股票的 “财务估值数据”(API “基本面数据查询” 接口),这里专门查了 “流通股本(a_floats)” 和 “流通市值(float_value)”,按流通市值从小到大排,取前 100 只(为了回测快);
filter_stock_by_status(...):过滤掉 “问题股票”(API “股票状态过滤” 接口),这里明确去掉 ST、停牌、退市股,是策略的 “防坑关键”;
最后留下 10 只符合条件的小市值股,存在g.df里,供盘中选买。
盘中处理(handle_data):触发交易

这部分是 “交易开关”:每天盘中会自动调用这个函数,先通过get_trade_stocks确定 “今天该买哪些股”,再用trade函数执行买卖,还会把要买的股票记下来(log.info),后续回测时能看到当时选了啥,方便找问题。
4. 确定买入股(get_trade_stocks):涨停股不换,选最小市值

这是策略的 “选股核心”,关键在两点:
check_limit(stock):判断股票是否涨停(API “涨跌停判断” 接口),这里把昨天持仓里涨停的股票挑出来,标注为 “不卖出”;
算 “实时流通市值”:用昨天的流通股本(固定的)乘以今天的实时股价(data[x["code"]].price,API “实时行情获取” 接口),这样能实时知道哪只股票现在市值最小;
最终要买的股票 =“实时最小市值的新股票”+“昨天持仓的涨停股”,保证涨停股不被卖掉,同时始终持有最小市值的股票。
5.执行交易(trade):卖旧买新,按市值下单

这是 “实际买卖操作”,核心 API 是order_target_value:
卖出逻辑:如果手里的股票不在 “今天要买的列表” 里,就用order_target_value(stock, 0)卖光(API “目标市值下单” 接口,目标市值设为 0 就是清仓);
买入逻辑:如果手里没够 5 只股票,就把剩下的现金平均分(比如还缺 2 只,就把现金分成 2 份),用order_target_value(stock, value)买新股票(目标市值设为 “每份的钱”,保证每只股票仓位差不多);
注意:API 文档里明确说了,order_target_value在回测里能用,但实盘要谨慎 —— 回测时持仓信息是 “瞬时更新” 的,实盘要等券商柜台返回数据,可能会重复下单,这点一定要记牢!
这个策略适用人群:
适合人群:想尝试中小盘股票、能接受 “每天可能换仓”(日线周期)、喜欢 “规则明确” 策略的学员,尤其适合用回测来验证小市值逻辑在不同市场阶段的表现;
不适合人群:不想频繁换仓、偏好大盘股 / 蓝筹股、追求 “稳赚不赔” 的学员(没有任何策略能稳赚)。
感兴趣的小伙伴快去自己修改试试吧!
(我司上市券商平台,可提供QMT/PTrade量化系统,免费使用,支持提供券商VIP交易服务配合使用;现在新开户交易佣金优惠,正在进行AI投ETF/选好股/选好基金等AI投顾工具体验活动;欢迎点击文章上方“问一问”,或文章下方微信+电话,直接联系沟通需求!)
温馨提示:投资有风险,选择需谨慎。
下一篇资讯:
暂无下一篇
-
六月基金跌得心慌?国金AI选好基金,帮你筛标的、控节奏
2026-07-06 14:52
-
不想下载一堆APP,如何选券商?4类合规渠道横向对比,省心避坑!
2026-07-06 14:52
-
一文讲清:股票、基金、债券、逆回购的交易单位、数量、金额和费率
2026-07-06 14:52


问一问

+微信
分享该文章
