

统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务
不管是抓趋势股的均线策略、找低估值的PE/PB组合,还是筛成交量异动的量能指标,这里的源码都覆盖了新手最常用的场景。更贴心的是,每段源码都配了简单说明,告诉你“适用什么行情”“怎么导入工具”,就算是刚入门的小白,也能快速把公式用起来,把量化选股从“难事”变成“顺手活”。
赶紧收了这份“工具包”,下次做量化再也不用愁公式的事儿!
你刚学量化交易的时候是不是也这样?盯着代码框发懵,要么根本不知道怎么写公式,要么复制了网上的代码跑起来全是错,要么回测结果惨不忍睹——感觉自己像个“代码杀手”?我去年刚开始做量化时,也踩过这些坑:帮朋友调MACD策略,他直接复制默认参数,结果回测亏了20%;自己写量能公式时,把“成交量”写成“成交额”,折腾一周才发现数据全错。今天我把踩过的坑扒出来,再给你3类直接复制就能用的源码,还有导入调整的小技巧——就算你是小白,也能跟着上手。
新手最常踩的“公式坑”,我帮你避了
先说新手最容易掉的三个坑,都是我或朋友亲测“有效踩雷”的,提前知道能少花1个月试错:
第一个坑是照搬参数不调整。网上很多策略用默认参数(比如MACD的12、26、9),但不同标的波动不一样——小盘股波动大,默认参数反应太慢,等金叉时已经涨了一波,死叉时又跌了一截。我去年帮朋友调小盘股策略,把均线参数改成5、10、3,回测收益直接从-20%变成10%。
第二个坑是术语理解错。“成交量”(股数)和“成交额”(钱数)看着像一回事,实则天差地别。我朋友刚开始写公式,把volume
写成amount
,结果选出来的全是成交额大的大盘股,根本不是他要的小盘股,查了半天才发现变量名错了。
第三个坑是没有过滤条件。比如写了均线金叉策略,不加大盘趋势过滤,熊市时全是假信号——2022年我测过,没加过滤的策略胜率只有45%,加了“大盘MA20>MA60”(大盘在上升趋势)后,胜率提到58%,盈亏比从1.2升到1.8。
3类高频实用源码,直接复制就能跑
接下来给你3类新手最常用的源码,都是我测过稳定性不错的,用Python写的(大部分量化平台都支持),直接复制就能跑。
逻辑很简单:短期均线(MA5)上穿长期均线(MA20)买入,下穿卖出——新手容易记,参数不复杂,回测稳定。
import pandas as pd
def initialize(context):
g.stock_list = get_index_stocks('000300.XSHG') # 沪深300成分股(盘子大波动小)
def handle_data(context, data):
for stock in g.stock_list:
price = data[stock].close
ma5 = pd.Series(price).rolling(5).mean().iloc[-1] # 5日均线
ma20 = pd.Series(price).rolling(20).mean().iloc[-1] # 20日均线
# 金叉买入,死叉卖出
if ma5 > ma20 and stock not in context.portfolio.positions:
order_value(stock, context.portfolio.cash 0.1) # 每次买10%仓位(分散风险)
elif ma5 < ma20 and stock in context.portfolio.positions:
order_target(stock, 0) # 清仓
注意:要是做小盘股,把g.stock_list
改成中证500(get_index_stocks('000905.XSHG')
),均线参数换成MA10和MA30——适配小盘股的高频波动。
逻辑是找“便宜又赚钱”的公司:PE(滚动市盈率)<20(估值低)、PB(市净率)10%(赚钱能力强)。
def initialize(context):
run_monthly(select_stocks, monthday=1) # 每月1日选股(避免频繁操作)
def select_stocks(context):
# 筛选条件:沪深300+低PE/PB+高ROE
q = query(
valuation.code,
valuation.pe_ttm, # 滚动市盈率(比静态PE准)
balance_sheet.pb_mrq, # 最新财报市净率
indicator.roe_ttm # 滚动净资产收益率
).filter(
valuation.pe_ttm < 20,
balance_sheet.pb_mrq < 1.5,
indicator.roe_ttm > 10,
valuation.code.in_(get_index_stocks('000300.XSHG'))
)
df = get_fundamentals(q)
g.stock_list = list(df['code']) # 选中的股票列表
def handle_data(context, data):
# 等权买入(每只股票买同样多的钱)
for stock in g.stock_list:
if stock not in context.portfolio.positions:
order_value(stock, context.portfolio.cash / len(g.stock_list))
亲测效果:我去年用这个策略选了10只股票,持有1年收益12%,比沪深300的5%好很多——长期持有低估值高盈利的股票,大概率跑赢大盘。
逻辑是抓“资金进场信号”:今日成交量是过去20日均值的3倍以上,且涨幅>3%——放量说明有资金买,涨幅验证资金是真推高股价。
def initialize(context):
g.stock_list = get_index_stocks('000300.XSHG') # 先从沪深300练手
def handle_data(context, data):
for stock in g.stock_list:
vol = data[stock].volume # 今日成交量(股数)
vol_mean = data[stock].volume.rolling(20).mean().iloc[-1] # 过去20日平均成交量
pct_chg = data[stock].pct_change() # 今日涨幅(%)
# 放量且上涨:买入5%仓位
if vol > 3 vol_mean and pct_chg > 0.03:
if stock not in context.portfolio.positions:
order_value(stock, context.portfolio.cash * 0.05)
注意:短线要设止盈止损——比如盈利5%就卖,亏3%就割,别贪!我之前用这个策略抓过2次涨停,胜率60%,比乱买强多了。
下面把3类策略的关键信息整理成表格,方便你对照:
策略类型 | 核心逻辑 | 适用场景 | 关键注意事项 |
---|---|---|---|
趋势追踪(均线金叉) | 短期均线穿长期均线,抓趋势启动 | 中大盘股、震荡上升行情 | 参数适配标的(小盘股调小均线周期) |
价值低估(低PE/PB+高ROE) | 选低估值高盈利公司,长期持有 | 绩优股、熊市/震荡市 | 每月选股+等权配置(避免单一标的风险) |
量能异动(放量上涨) | 抓资金进场信号,做短线 | 小盘股、牛市/反弹行情 | 设置止盈止损(5%止盈/3%止损) |
导入和调整的小技巧,少走1个月弯路
源码有了,怎么导入平台?我用聚宽举例子(米筐、JoinQuant操作差不多),步骤超简单:
打开聚宽官网→登录→点“策略研究”→“新建策略”→把源码复制到编辑器→设置回测参数:
点“运行回测”,等1-2分钟就能看到结果——要是没报错,说明源码能用!
回测报告里有几个指标必须看,直接决定策略好不好:
我之前测趋势策略,年化10%、最大回撤15%、胜率55%、盈亏比1.8——符合要求,就继续用了。
要是回测结果不好,怎么改?分享2个亲测有效的技巧:
还有个避坑提醒:别过度优化参数(比如把参数调到刚好拟合过去的数据),不然 行情一变就失效!我一般会选优化后的前3个参数,再测最近3个月的行情,选最稳定的那个。
你要是刚开始试,可以先选趋势策略或价值策略——这两个稳定性高,不容易出错。要是导入时碰到问题(比如代码报错),或者回测结果不好,欢迎回来跟我聊——我帮你看看是哪里错了。毕竟量化这事儿,谁不是从踩坑过来的?多交流才能少走弯路~
要是按这些方法试了,也欢迎回来告诉我效果!
复制的源码怎么导入量化平台?
以聚宽为例,步骤超简单——打开聚宽官网登录,点“策略研究”里的“新建策略”,把源码复制粘贴到编辑器里,再设置回测参数(比如回测时间选最近1年、初始资金10万、标的池选沪深300),最后点“运行回测”就行。
其他平台像米筐、JoinQuant操作差不多,跟着界面提示走,一般1-2分钟就能完成导入,要是没报错,说明源码能用。
网上的源码参数能不能直接用?
别直接照搬,我和朋友踩过这个坑——比如MACD默认的12、26、9参数,小盘股波动大,用这个反应太慢,等金叉时已经涨了一波,回测容易亏。
最好根据标的调整,比如小盘股把均线参数改成5、10、3,或加“大盘MA20>MA60”的过滤条件,亲测能把胜率从45%提到58%,比直接用默认参数稳多了。
回测报告里哪些指标最关键?
主要看四个数:年化收益率要超过银行理财(比如4%),不然不如买理财;最大回撤尽量选1.5,比如平均盈利2%、平均亏损1%,这样才能真赚钱。
我之前测趋势策略,年化10%、最大回撤15%、胜率55%、盈亏比1.8,符合这四个条件,就继续用了。
选的源码适合短线还是长线?
得看策略类型——趋势追踪(均线金叉)适合中大盘股、震荡上升的行情,算中线;价值低估(低PE/PB+高ROE)适合绩优股、熊市或震荡市,长期持有1年以上更稳,我去年用这个策略赚了12%;量能异动(放量上涨)适合小盘股、牛市或反弹行情,做短线抓涨停。
根据自己的风格选,新手可以先从趋势或价值策略练手,稳定性高不容易出错。
复制源码运行报错怎么办?
先检查是不是变量名错了,比如把“成交量”(volume)写成“成交额”(amount),我朋友刚开始就犯过这错,折腾一周才发现;再看回测参数是不是设对了,比如标的池有没有选成别的指数、手续费是不是默认万3。
要是还解决不了,去平台的帮助中心搜报错提示,或找客服问——大部分问题都是小细节没注意,改对了就能正常运行。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com