我在一家专门从事金融业的精品店工作.
我们考虑设计一种语言来描述与金融市场相关的金融实体.
这将主要用作某种脚本语言来替换电子表格和VBA宏中的许多进程.
它必须简单,事实上,它在幕后调用各种C++和C#库.它必须让用户处理抽象的对象,这些对象可以表示时间序列(日内和日常).
它必须是完全可调试的,当用户遇到问题时,我们必须能够介入C++/C#代码并重现错误.理想情况下,它必须能够通过Excel中的某种机制启动并在Excel中返回结果.(不幸的是,几乎每个在财务部门工作的人都在使用Excel)
如果你不得不做这个任务,你会怎么做呢?
你会选择功能语法吗?
你会开发一些可以解释的脚本语言吗?或者你会用另一种语言编译它(比如用C++或C#转换脚本)?
我没有找到任何这种开发的开源项目,但有没有使用这种语法的商业产品?
编辑:我读了你所有的答案,但我会等待更多的时间才能找到答案.虽然它们都是非常有用的意见!
EDIT2:我将High-Performance Mark标记为解决方案.您的所有回复都非常有用,我已将其全部修改完毕.他是最早的答案之一,他的回答对我们非常有见地.
finance computational-finance quantitative quantitative-finance
例如,假设您xts从上午9:30到下午4:30 ,每天1分钟的仪器x数据的数据为10年,如下(格式):
Date.Time Volume
2001-01-01 09:30:00 1200
2001-01-01 09:31:00 1110
2001-01-01 09:32:00 1303
Run Code Online (Sandbox Code Playgroud)
一直到:
2010-12-20 16:28:00 3200
2010-12-20 16:29:00 4210
2010-12-20 16:30:00 8303
Run Code Online (Sandbox Code Playgroud)
我想要:
我该怎么做才能最好:
我有一个很好的戳周围aggregate,sapply,period.apply功能等,但只是似乎无法"bin"的数据正确.
用循环解决这个问题很容易,但速度很慢.我宁愿避免使用程序化解决方案并使用利用C++架构的功能(即xts基于解决方案)
有人可以提供一些建议/解决方案吗?
非常感谢提前.
A)我正在使用 Highstock图表库来进行我的金融项目.但是,我陷入了性能问题的困境.我在Highstock的工作实现有 i)图表中的5个图表 ii)图表中的多行(和行类型) iii)应用于图表上的点的标签 iv)每秒一次到达的新数据,添加点和动画向左图.但是,我在使用此设置时遇到了一些关键问题:

B)我已经检查了其他这些SO问题( Highstock Performance Issue,Highcharts Performance Enhancement Method?),并尝试了他们的解决方案,但改进非常有限:
:turboThreshold 50 ;; tick-list length will be a max of 100
:shadow false
:marker {:enabled false}
:plotOptions{:series {:enableMouseTracking false}}
Run Code Online (Sandbox Code Playgroud)
C)我没有看到这些Highstock问题的简单解决方案.这是一个很棒的图书馆.但我正在查看谷歌图表API,看看它是否能满足这些要点.
D)有没有人经历过类似的事情?还有其他方法可以改善我的高品质性能吗?Google Charts可以在这里做得更好吗?
谢谢
PS.我的highcharts调用看起来像这样(Clojurescript代码):
(defn chart-fill [selector dataList signal-map strategy-map label]
(-> ($ selector)
(.highcharts "StockChart" (clj->js …Run Code Online (Sandbox Code Playgroud) performance google-finance highcharts quantitative-finance highstock
是否有任何函数/包可以计算年份分数(两个日期之间的差异)与不同的日计数约定,如matlab中的yearfrac()?我需要使用Actual/365约定.
使用pandas/python,我想计算每组元组的最长递增子序列DTE,但有效地使用13M行。现在,使用 apply/iteration 大约需要 10 个小时。
这大概是我的问题:
| DTE | 罢工 | 出价 | 问 |
|---|---|---|---|
| 1 | 100 | 10 | 11 |
| 1 | 200 | 16 | 17 |
| 1 | 300 | 17 | 18 |
| 1 | 400 | 11 | 12 |
| 1 | 500 | 12 | 13 |
| 1 | 600 | 13 | 14 |
| 2 | 100 | 10 | 30 |
| 2 | 200 | 15 | 20 |
| 2 | 300 | 16 | 21 |
import pandas as pd
pd.DataFrame({
'DTE': [1,1,1,1,1,1,2,2,2],
'Strike': [100,200,300,400,500,600,100,200,300],
'Bid': [10,16,17,11,12,13,10,15,16],
'Ask': [11,17,18,12,13,14,30,20,21],
})
Run Code Online (Sandbox Code Playgroud)
我想要:
DTE。这里我们有两个组(DTE 1 和 DTE 2)。然后在每个组内...Strike,它对于每个 DTE 组都是唯一的。所以 200 Strike 是在 100 …python vectorization quantitative-finance pandas subsequence
reqMktData(tws,twsOPT("AAPL 110820C00390000"))
Run Code Online (Sandbox Code Playgroud)
要么
reqMktData(tws,twsOPT("AAPL110820C00390000"))
Run Code Online (Sandbox Code Playgroud)
结果:TWS消息:2 1 200未找到请求的安全定义
为什么?
reqMktData(tws,twsSTK("AAPL"))
Run Code Online (Sandbox Code Playgroud)
工作良好.
该联机帮助页说:
twsOption(local,
expiry="",
strike="",
right="",
exch="SMART",
primary="",
currency='USD',
symbol='',
multiplier="100",
include_expired='0',
conId=0)
Run Code Online (Sandbox Code Playgroud)
TWS上的期权合约具有与标准数据请求不同的某些规则.
需要本地符号.这可以在合约详细信息的主要交易平台屏幕上找到,也可以通过网站www.interactivebrokers.com找到
由于需要本地符号,因此所有其他值都是多余的.最好只需指定本地名称,让TWS管理查找.
这段代码,从谷歌金融获取直线的 2 个坐标,并将第三个点放置在同一条线上一定距离处。
import datetime as dt
from datetime import timedelta as td
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
import numpy as np
start = dt.datetime(2017, 7, 1)
end = dt.datetime(2017, 3, 1)
# retrieving data from google
df = web.DataReader('TSLA', 'google', start, )
Dates = df.index
Highs = df['High'] # Getting only the values from the 'High' Column.
Highest_high = np.amax(Highs) # returns the Highest value
for i, h …Run Code Online (Sandbox Code Playgroud) 直到昨天,以下网址(Google财经API)
https://www.google.com/finance/getprices?q=TSLA&x=NASDAQ&i=3600&p=5d&f=d,o,h,l,c,v
将导致一个漂亮的逗号分隔数据表与TSLA股票数据.从昨天起,同一个电话被重定向到TSLA https://www.google.com/search?q=TSLA&tbm=fin的标准谷歌财经网站.有人可能知道新的API地址或有关于Google财经API状态的任何信息吗?将URL更改为
https://finance.google.com/finance/getprices?q=TSLA&x=NASDAQ&i=3600&p=5d&f=d,o,h,l,c,v
没有帮助,因为它也重定向到正常的网站.
I am trying to create my own function in R based on black scholes variables and solve "backwards" i suppose for sigma.
I have created a function to find the call price; however, now I have to find the sigma (implied volatility) estimates in R and then test my function to see if it works... I have tried different functions but I can not seem to figure out what I am doing wrong, part of me thinks I need to …
r ×4
finance ×3
python ×3
pandas ×2
dataframe ×1
highcharts ×1
highstock ×1
ibrokers ×1
matplotlib ×1
performance ×1
quantitative ×1
subsequence ×1
time-series ×1
xts ×1
zoo ×1