Flask + Pandas 写了一个 TradingView 回测数据深度分析工具

1 天前
 chacores

V2EX 的朋友们。

最近在使用 tradingview ,发现 TradingView 自带的“策略测试器”虽然方便,但导出的报告在很多关键指标上还是不够细致。

特别是对于股票市场,我需要更关注持仓周期的风险。而且 TV 的报告主要基于“平均值( Mean )”,很容易被几笔极端的运气单误导,我看不到“中位数( Median )”表现,也无法直观评估策略的鲁棒性。

基于 Flask + Pandas + Pyecharts 撸了一个本地化的深度分析工具,专门用来清洗和分析 TradingView 导出的 CSV 数据。

拒绝“平均值欺骗”: 原生报告只给平均盈利,加上了中位数盈利。如果平均值远大于中位数,说明策略全靠运气单死撑,实盘风险极大。

引入蒙特卡洛模拟 (Monte Carlo Simulation) 但是现在是有 bug 的,应该是 csv 文件的局限性导致最后肯定会一样

MAE vs MFE 交易质量分析: 绘制了最大浮盈 (MFE) 和最大浮亏 (MAE) 的散点图。一眼就能看出是“卖飞了”还是“硬扛单”。

季节性/周期性效应: 按年份和月份聚合,计算月度回报的加权平均和中位数。

还有正常每次开仓的间隔,也就是两次仓位之间的中位数时间

问问论坛里的,有没有做投资的,这样的工具有用吗。 策略我是用社区的指标,用 Gemini 改的,引入 t+1 。然后 webhook 推送给我,我自己还会判断。 买了交易所的实时数据 至少我在 11 月大跌里也盈利了。 谢谢大家

下面是图片

689 次点击
所在节点    分享创造
3 条回复
Sawyerhou
1 天前
中位数几乎不看,看胜率和盈亏比。

如果盈亏比高,那么收益主要由少量大收益交易贡献;如果胜率高,那么收益主要由大量小收益交易累积得到;如果胜率、盈亏比都低,那这个策略是亏钱的无效策略。

平均收益是每笔交易的期望收益,可以跟交易成本比较,有实际含义;中位数收益是纯统计数据,实际交易中无法使用,没有实际含义。

收益由少量大收益交易贡献,不代表是运气,只是策略的特点,就像做打板的,就是三年不开张,开张吃三年。不是胜率高的策略比盈亏比高的策略好,这就是为什么平均收益更常用,只要赚钱的策略就是好策略,钱怎么赚来的并不重要。

建议先把已有的指标研究透,含义是什么,怎么用的,然后再新增自己的指标。
labubu
1 天前
这个是最好的股票组合回测网站了: https://www.portfoliovisualizer.com/backtest-portfolio#analysisResults
dominic0312
18 小时 49 分钟前
我的经验是,主观手动交易有一定的经验再来做自动化才行,把自动化交易作为辅助手段和次要仓位, 要不然会陷入无限回测的陷阱中; 当然如果你的工作就是无限回测当我没说。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1175887

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX