2015-04-30 64 views
1

我登錄股價在F#數組創建股票收益從價格在F#

let stockprice= Array.zip D12 index |> Array.map (fun (a,b) -> a+b) |> Array.map(fun x -> log(x)) 

但是,我無法弄清楚如何把股票價格收益,除以鉑由PT-1。以下代碼無效:

let myreturn= stockprice.diff(1) 

有沒有人有任何建議?

+1

我對這個問題有點不清楚,但我猜你是在'array |> Seq.ofArray |> Seq.pairwise |> Seq.map(fun(f,s) - > s/f)''之後。至少在F#4.0發佈之前,所有集合都有統一的API,那麼*可能會*爲'Array.pairwise'。 :) –

+0

@İremErten,我不明白你的問題,但也許你重寫這段代碼:let stockprice = Array.map2(fun ab - > log(a + b))D12 index –

+3

看看Deedle時間序列庫:http://bluemountaincapital.github.io/Deedle/series.html#Shifting-and-differences –

回答

2

爲了擴大我的評論--Deedle圖書館的設計目的是爲了做到這一點,時間系列文檔中的Shifting and differences部分幾乎是你所需要的。

如果您有一系列ts,您可以通過減去移位系列(這是什麼Series.diff那樣),然後除以計算回報:

(ts - Series.shift 1 ts)/ts // Subtracting & dividing 
(Series.diff 1 ts)/ts   // Even nicer :-)