【问题标题】:compute daily log returns for a [saddle] Series[DateTime, Double]计算 [saddle] Series[DateTime, Double] 的每日日志回报
【发布时间】:2026-02-01 16:25:01
【问题描述】:

给定一系列价格数据(使用 scala 的鞍库),有没有一种简单的方法来计算对数收益?

type DtPxSeries = Series[DateTime, Double]

def pxDifs(series, DtPxSeries) : DtPxSeries = {
    (series / series.shift(-1)).dropNA
}

// px_data is a `Series[DateTime, Double]`
val px_difs = pxDifs(px_data)

我可以将一个系列(px_data,它使用 joda DataTimes 作为索引)传递给 pxDifs,它会返回一系列每日比率:到目前为止一切都很好......

但是我现在如何计算px_difs 中每个元素的 log()?

import breeze.numerics._
// fugly
log(px_difs.values.toSeq.toArray)

使用上述方法,我可以使用微风进行计算,但(理想情况下)我希望能够获得一个新的 saddle.Series -- 使用原始的 DateTime 索引

我错过了什么吗??

感谢您的帮助...

【问题讨论】:

    标签: scala saddle


    【解决方案1】:

    应该这样做:

    px_difs.mapValues(v => Math.log(v))
    

    【讨论】: