图片股票交流平台在线
大开当天头条稽查图片细目
人人好我是花姐,今天给人人共享一个回测速率超快的量化库——vectorbt
什么是 vectorbt?说白了,vectorbt 即是一个干量化的“加快神器”。你拿它来写战术回测,恶果高得吓东谈主,重心是它不整事儿,不跟你搞什么面向对象那套绕来绕去的把戏,而是把整个战术、整个信号、所稀奇据,皆备塞进 NumPy 和 pandas 这些数组对象里,一语气跑完——像是开了氮气加快。
它背后的操作很刚——NumPy 适应矢量化(即是同期对数不胜数条数据沿途脱手),Numba 适应把 Python 的慢轮回编译成机器码,快得跟 C 说话一个德行。当其它量化框架还在 for i in range(1000) 的技巧,东谈主家仍是全局扫射干完毕。
况兼它还极端符合 Python 生态下的东谈主——你若是爱用 pandas、可爱写 Jupyter Notebook,那你会以为 vectorbt 跟你险些是天生一双。
你用它不错:
几行代码处置一套竣工回测;用 NumPy 的速率配 Python 的优雅;参数调优险些不要太爽,一滑代码跑完上百组组合;可视化?自带 Plotly 交互图表;能分析战术、调模子、聚首 Telegram,致使还能自动换取——险些像个“懒东谈主器具箱”。而它最狠恶的场合是啥?用“向量想维”干掉了 OOP 情景在量化中的低效。
传统回测器像 backtrader,写起来“像模像样”,可一朝你要相比多个战术,大概作念参数调优?抱歉,嵌套轮回、类的汲取、数据结构耦合,一顿 debug 脑子嗡嗡的。
而 vectorbt 的理念极端浅易暴力:
“战术是数据,就应该数组化。”
于是它就把整个参数组合都塞成了多维数组,在数据层面平直处理相比。啥预料?你不需要写一个战术跑一次,而是“一次性跑完一群战术”,爽不爽?
怎么装配 vectorbt?极端浅易,一条号令:
pip install vectorbt牢记装配akshare库
pip install akshare
但清闲:
提议用编造环境装,否则容易和其他库打架。有些系统可能需要先装依赖,比如 Windows 下得提前装好 numpy 和 wheel。vectorbt 会自动装 numba、plotly、ipywidgets 等一些依赖。实战:用 vectorbt + AKShare 竣事一个双均线战术接下来花姐用 vectorbt 来跑个经典的双均线战术——短期均线上穿弥远就买,下穿就卖。示例股票用沪深300ETF,行情咱们用 AKShare 库。
* **成熟的运营模式:** 该服务商拥有完善的运营体系,包括风控体系、客户服务体系、财务管理体系等,经过市场验证, 在线配资平台能够但是控制不确定性,股票配资网址提升客户满意度,并实现盈利。
专业配资端口,顾名思义,是指专门为投资者提供借资服务的平台。它通过将用户的自有本金与平台提供的资金进行组合,放大投资者的可用资金,从而使其能够参与更大规模的投资项目,获得更高的收益。简单来说,融资端口就像一个资金放大器,让投资者以较小的本金,控制更大的资金量。
先贴代码:
import akshare as akimport vectorbt as vbtimport pandas as pd# 得回沪深300指数的历史数据df = ak.stock_zh_a_hist(symbol='600519', period='daily',start_date='20200101',adjust='qfq')print(df)# 将日历列调动为 datetime 类型,并建筑为索引df['日历'] = pd.to_datetime(df['日历'])df.set_index('日历', inplace=True)# 得回收盘价close = df['收盘']# 筹画短期和弥远迁徙平均线fast_ma = vbt.MA.run(close, window=5)slow_ma = vbt.MA.run(close, window=20)# 生成买入和卖出信号entries = fast_ma.ma_crossed_above(slow_ma)exits = fast_ma.ma_crossed_below(slow_ma)# 创建投资组合pf = vbt.Portfolio.from_signals(close, entries, exits, init_cash=100000)# 输出投资组合的统计信息print(pf.stats())# 绘画投资组合的进展图# pf.plot().show()pf.plot().write_html('backtest_result.html')你会发现回测速率贼快,基本上1分钟处置,况兼上手书单。
领导:如果使用pf.plot().show()无法大开网页不错使用pf.plot().write_html('backtest_result.html')生资土产货回测网页然后再大开
以下是回测罢了:
Start 2020-01-02 00:00:00End 2025-05-12 00:00:00Period 1295Start Value 100000.0End Value 151556.13048Total Return [%] 51.55613Benchmark Return [%] 68.691599Max Gross Exposure [%] 100.0Total Fees Paid 0.0Max Drawdown [%] 39.790511Max Drawdown Duration 557.0Total Trades 40Total Closed Trades 39Total Open Trades 1Open Trade PnL 2355.907437Win Rate [%] 38.461538Best Trade [%] 56.150292Worst Trade [%] -8.830222Avg Winning Trade [%] 9.999109Avg Losing Trade [%] -3.767649Avg Winning Trade Duration 29.533333Avg Losing Trade Duration 7.958333Profit Factor 1.322108Expectancy 1261.544181
图片
大开当天头条稽查图片细目
到这里,你可能会问:“为啥用 vectorbt,这些我用 pandas 也能写”。
是啊,的确你也能写,但你得我方轮回、经管仓位、筹画手续费、处理跳空、图表还得我方画。重要你写完一个战术,再想调个参数……那是恶梦。
而用 vectorbt 呢?你独一换个参数列表,它能自动帮你把整个组合都跑一遍:
# 多窗口组合参数调优fast_windows = [5, 10, 15]slow_windows = [20, 50, 100]# 使用 run_combs 方法筹画整个窗口组合的均线fast_ma, slow_ma = vbt.MA.run_combs( close, window=fast_windows + slow_windows, r=2, short_names=['fast', 'slow'])# 生成买入和卖出信号entries = fast_ma.ma_crossed_above(slow_ma)exits = fast_ma.ma_crossed_below(slow_ma)# 创建投资组合pf = vbt.Portfolio.from_signals(close, entries, exits, init_cash=100000)# 遍历整个组合,一一保存图表for idx in pf.wrapper.columns: print(pf[idx].stats()) fig = pf[idx].plot(title=f'组合 {idx} 的战术进展') fig.write_html(f'combo_{idx}_result.html')不到1分钟就不错看到各个均线组合的回测细目了
图片
大开当天头条稽查图片细目
还不错:
# 找到收益率最高的参数组合best = pf.total_return().idxmax()print('最强组合:', best) # 最强组合: (15, 50)几行代码,扫一遍整个这个词参数空间。
容易踩坑的几个点(花姐亲踩)AKShare 的日历是字符串,要用 pd.to_datetime 转一下,要不 vectorbt 图表会飘遭受停牌日会导致数据不一语气,提议用 .fillna(method='ffill') 补皆缺失值有技巧 AKShare 会抽风,提议土产货保存一份数据别被“接口失联”给噎住vectorbt 默许不研究手续费、滑点,你要我方加进去,别光看收益乐得太早写在终末不是你写得不够接力,而是你用错了器具。
双均线战术能不成赢利另说,但如果你能用 vectorbt 跑出漂亮的数据分析图、调出一堆参数组合、瞻念察一条潜在规章——那你仍是比大多量入门者走得远了。
OK,今天先讲这样多。
你要想我连接深化讲 vectorbt 的“参数调优玩法”大概“多战术组合框架”股票交流平台在线,你尽管吱声,我平直给你安排得清澄澈爽~
本站仅提供存储处事,整个实质均由用户发布,如发现存害或侵权实质,请点击举报。泓川证券--河北省线上配资投资开户流程提示:文章来自网络,不代表本站观点。