标签: computational-finance

计算金融所需的数学?

我没有很强的数学背景,但我很乐意研究一些计算金融问题.我得到了Peter Forsyth的"计算金融简介而没有痛苦的痛苦",但我仍然很难按照他的说法去做.

本课程所需的数学先决条件是什么?

我想弄清楚这些论文.

math computer-science finance computational-finance

11
推荐指数
4
解决办法
4478
查看次数

超出样本定义

谁能解释"样本内"和"样本外"预测之间的区别?

statistics machine-learning computational-finance forecasting

11
推荐指数
2
解决办法
3万
查看次数

如何优化此Haskell限制订单(包含代码,报告,图表)?

我写了一个限制订单簿的haskell版本,引用用C编写的这个版本:

https://github.com/jordanbaucke/Limit-Order-Book/blob/master/Others/C%2B%2B/engine.c

限价订单簿是许多股票和货币交易所用于计算货币和股票交易的机制.

此haskell版本(源代码进一步向下)向订单簿提交2000个随机限价订单,并计算平均执行价格.

main = do
  orders <- randomOrders
  let (orderBook, events) = foldr (\order (book, ev) -> let (b, e) = processOrder order book in (b, ev++e)) (empty, []) 
                            (take 2000 orders) 
  let (total, count) = ((fromIntegral $ sum $ map executePrice events), fromIntegral $ length events)
  print $ "Average execution price: " ++ show (total / count) ++ ", " ++ (show count) ++ " executions"
Run Code Online (Sandbox Code Playgroud)

我用-O2编译它,并且在没有分析的情况下运行程序需要将近10秒.

time ./main                                                           
"Average execution price: 15137.667036215817, 2706.0 executions"
./main  9.90s …
Run Code Online (Sandbox Code Playgroud)

optimization haskell functional-programming compiler-optimization computational-finance

11
推荐指数
1
解决办法
1076
查看次数

如何设计适合金融工具的编程语言?

我在一家专门从事金融业的精品店工作.

我们考虑设计一种语言来描述与金融市场相关的金融实体.

这将主要用作某种脚本语言来替换电子表格和VBA宏中的许多进程.

它必须简单,事实上,它在幕后调用各种C++和C#库.它必须让用户处理抽象的对象,这些对象可以表示时间序列(日内和日常).

它必须是完全可调试的,当用户遇到问题时,我们必须能够介入C++/C#代码并重现错误.理想情况下,它必须能够通过Excel中的某种机制启动并在Excel中返回结果.(不幸的是,几乎每个在财务部门工作的人都在使用Excel)

如果你不得不做这个任务,你会怎么做呢?

你会选择功能语法吗?

你会开发一些可以解释的脚本语言吗?或者你会用另一种语言编译它(比如用C++或C#转换脚本)?

我没有找到任何这种开发的开源项目,但有没有使用这种语法的商业产品?

编辑:我读了你所有的答案,但我会等待更多的时间才能找到答案.虽然它们都是非常有用的意见!

EDIT2:我将High-Performance Mark标记为解决方案.您的所有回复都非常有用,我已将其全部修改完毕.他是最早的答案之一,他的回答对我们非常有见地.

finance computational-finance quantitative quantitative-finance

6
推荐指数
2
解决办法
2020
查看次数

使用R估计风险滚动值(VaR)

我需要对每日股票收益进行滚动VaR估计.起初我做了以下事情:

library(PerformanceAnalytics)
data(edhec)
sample<-edhec[,1:5]
var605<-rollapply(as.zoo(sample),width=60,FUN=function(x) VaR(R=x,p=.95,method="modified",invert=T),by.column=TRUE,fill=NA)
Run Code Online (Sandbox Code Playgroud)

它执行计算并返回一个zoo对象,但给出了一系列警告,如下所示:

VaR calculation produces unreliable result (inverse risk) for column: 1 : -0.00030977098532231 
Run Code Online (Sandbox Code Playgroud)

然后,我尝试了同样的数据样本,如下所示:

library(foreign)
sample2 <- read.dta("sample2.dta")
sample2.xts <- xts(sample2[,-1],order.by=as.Date(sample2$datadate,format= "%Y-%m-%d"))
any(is.na(sample2.xts))
var605<-rollapply(as.zoo(sample2.xts),width=60,FUN=function(x) VaR(R=x,p=.95,method="modified",invert=T),by.column=TRUE,fill=NA)
Run Code Online (Sandbox Code Playgroud)

但是不会返回任何动物园对象并给出以下警告和错误:

VaR calculation produces unreliable result (inverse risk) for column: 1 : -0.0077322590200255
Error in if (eval(tmp < 0)) { : missing value where TRUE/FALSE needed
Called from: top level
Run Code Online (Sandbox Code Playgroud)

从之前的文章(使用rollapply函数进行使用R的VaR计算)我理解,如果缺少完整的滚动窗口,则无法执行滚动估计,但在我的数据(sample2.dta)中没有缺失值.

sample2.dta可以从https://drive.google.com/file/d/0B8usDJAPeV85WDdDQTFEbGQwaUU/edit?usp=sharing下载

有谁可以帮我解决和理解这个问题?

r computational-finance performanceanalytics rollapply

6
推荐指数
1
解决办法
2702
查看次数