You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向量化Python Pandas中的追踪止损(trailing stoploss)函数代码?

向量化实现追踪止损(Trailing Stoploss)

你的原代码逻辑是:Long_TSL初始值等于LSL,后续每个位置的值取前一个Long_TSL与当前LSL的较大值——这本质就是对LSL序列计算从左到右的累积最大值,完全可以用pandas内置的向量化函数直接替代循环。

向量化实现代码

df['LSL'] = df.Close * 0.98
df['Long_TSL'] = df['LSL'].cummax()

逻辑说明

cummax()函数会逐行计算序列的累积最大值:

  • 第一个元素直接取LSL的第一个值,和原逻辑一致
  • 从第二个元素开始,自动取当前LSL值与之前所有LSL(及累积的Long_TSL)中的最大值,等价于原循环里"如果前一个Long_TSL更大就继承,否则用当前LSL"的判断

性能优势

这种向量化操作由pandas底层的C引擎执行,相比Python原生循环,在大数据量(比如十万+行)的情况下性能提升会非常明显,避免了循环带来的Python解释器开销。

内容的提问来源于stack exchange,提问作者Arunava Datta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:35:49