标签: financial

.NET的Money数据类型?

寻找支持货币汇率(包括相关行为和操作)的.NET 的良好Money数据类型.

  • 注意:我开始在作者Kent Beck 的" 测试驱动开发示例 "一书中搜索印刷中看到的源代码- 他开发了一个很好的货币概念.无法在线找到完整的来源.这本书不包含一个单一的列表 - 而是在书的持续时间内开发源代码.

虽然这本书没有深入,但我还希望Money课程支持不同的舍入机制,因为全球金融机构也有所不同.

编辑1: 澄清

"Money class"是指我可以用来支持货币及其运营的.NET数据类型,包括货币支持和汇率计算.类似的东西是更高级别的抽象,可能在内部使用原始数据类型.它也可能依赖于一堆类,如:Money,ExchangeRate,Bank等.

它可能是值类型(即结构)或引用类型(即类),但无论哪种方式它都是完整的并支持上述特征.

编辑2:Money数据类型的目标

(这也说明了原始十进制,int或其他原始类型不足以满足所有Money需求的原因)

Money数据类型的目标是:

  • 安全功能(即防止不同货币类型的算术).
  • 使用值存储货币类型(即AUD,US,DKK).
  • 存储格式详细信息(即十进制分组,货币符号等).
  • 转换提供商(例如汇率)以帮助完善解决方案.
  • 减少表达式中的多种货币以实现结果.

注意:可以从外部源加载变量数据值(如汇率)并使用.这个问题并没有推断任何动态是硬编码到Money的概念.

.net currency financial

35
推荐指数
4
解决办法
1万
查看次数

自OpenQuant消亡以来,是否有免费的实时财务数据源?

既然市场数据提供商的寡头成功杀死了OpenQuant,那么对于实时市场数据的专有和昂贵的订阅是否有任何替代方案?

理想情况下,我希望能够监控来自纽约证券交易所,纳斯达克和美国证券交易所(约6000个符号)的蜱虫证券.

大多数供应商同时限制500个符号可观察,这对我来说是不可接受的,即使可以想象500个符号之间的轮换,即.制作5秒的窗户.每个符号的每分钟有效观察.

目前我正在通过一个名为谷歌财经的Java线程池来做这件事,但由于几个原因,这是令人不满意的,其中一个原因是谷歌没有返回交易量,但主要原因是谷歌迅速杀死试图利用的机器人这项服务;-)

任何提示非常感谢,

干杯

java real-time stream feed financial

34
推荐指数
1
解决办法
5万
查看次数

在BigDecimal.divide期间抛出ArithmeticException

我认为java.math.BigDecimal应该是The Answer™需要用十进制数执行无限精度算术.

请考虑以下代码段:

import java.math.BigDecimal;
//...

final BigDecimal one = BigDecimal.ONE;
final BigDecimal three = BigDecimal.valueOf(3);
final BigDecimal third = one.divide(three);

assert third.multiply(three).equals(one); // this should pass, right?
Run Code Online (Sandbox Code Playgroud)

我希望assert通过,但事实上执行甚至没有到达那里:one.divide(three)原因ArithmeticException被抛出!

Exception in thread "main" java.lang.ArithmeticException:
Non-terminating decimal expansion; no exact representable decimal result.
    at java.math.BigDecimal.divide
Run Code Online (Sandbox Code Playgroud)

事实证明,API中明确记录了此行为:

在这种情况下divide,准确的商可能有一个无限长的十进制扩展; 例如,1除以3.如果商具有非终止十进制扩展并且指定操作以返回精确结果,ArithmeticException则抛出a.否则,返回除法的确切结果,与其他操作一样.

进一步浏览API,人们发现实际上有各种重载divide执行不精确的划分,即:

final BigDecimal third = one.divide(three, 33, RoundingMode.DOWN);
System.out.println(three.multiply(third));
// prints "0.999999999999999999999999999999999"
Run Code Online (Sandbox Code Playgroud)

当然,现在显而易见的问题是"有什么意义?".BigDecimal当我们需要 …

java precision division bigdecimal financial

33
推荐指数
4
解决办法
3万
查看次数

与Sage Financial Software集成

我最近被要求开发一个必须与Sage Line 50财务软件集成的应用程序.
我做了一些谷歌搜索,我很惊讶缺乏与Java或.Net的Sage接口的信息.Sage是否是一个黑盒子,你需要在获得任何信息之前注册Sage Developer程序?
是否有任何开源选项允许应用与Sage交谈?

任何信息赞赏.

干杯

保罗

financial sage-line-50

30
推荐指数
2
解决办法
4万
查看次数

舍入标准 - 财务计算

我很好奇在财务数据的计算方面存在任何"舍入"标准.我最初的想法是仅在数据呈现给用户(表示层)时执行舍入.

如果"舍入"数据然后用于进一步计算,应该使用"圆形"数字还是"原始"数字?有人有建议吗?

请注意,我知道不同的舍入方法,即银行家舍入等.

rounding-error bankers-rounding rounding financial

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

如何在财务Matplotlib Python图中跳过空日期(周末)?

ax.plot_date((dates, dates), (highs, lows), '-')
Run Code Online (Sandbox Code Playgroud)

我目前正在使用此命令使用Matplotlib绘制金融高点和低点.它工作得很好,但是如何在没有市场数据的情况下删除x轴上的空白区域,例如周末和假日?

我有日期,高点,低点,关闭和打开的列表.我找不到任何创建带有x轴的图表的示例,该图表显示日期但不强制执行常量比例.

python graph matplotlib financial

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

设计金融交易系统数据库架构的原则?

我想设计一个数据库,它将记录金融交易.我想将它设计为产品,以便它可以用于任何类型的金融交易.有一些特定于金融交易数据库设计的设计原则可以帮助我使数据库在长期内更耐用,同时最小化架构级别.一些很好的例子也将是一个很大的帮助.

谢谢

sql-server database-design financial sql-server-2008

16
推荐指数
1
解决办法
8044
查看次数

如何在C#中更快地计算出简单的移动平均线?

用于计算简单移动平均值的最快库/算法是什么?我写了自己的,但是在33万项十进制数据集上花了太长时间.

  • 期间/时间(ms)
  • 20/300;
  • 60/1500;
  • 120/3500.

这是我的方法的代码:

public decimal MA_Simple(int period, int ii) {
    if (period != 0 && ii > period) {
        //stp.Start();
        decimal summ = 0;
        for (int i = ii; i > ii - period; i--) {
            summ = summ + Data.Close[i];
        }
        summ = summ / period;
        //stp.Stop();
        //if (ii == 1500) System.Windows.Forms.MessageBox.Show((stp.ElapsedTicks * 1000.0) / Stopwatch.Frequency + " ms");
        return summ;
    } else return -1;
}
Run Code Online (Sandbox Code Playgroud)

Data.Close[]是一个固定大小(1 000 000)的十进制数组.

c# algorithm financial moving-average

15
推荐指数
4
解决办法
6万
查看次数

FigureCanvasAgg'对象没有属性'invalidate'?python密谋

我一直在关注'python进行数据分析'.在pg.345,你得到这个代码来绘制各种股票的回报.但是,绘图功能对我不起作用.我得到了FigureCanvasAgg'对象没有属性'invalidate'?

names = ['AAPL','MSFT', 'DELL', 'MS', 'BAC', 'C'] #goog and SF did not work
def get_px(stock, start, end):
    return web.get_data_yahoo(stock, start, end)['Adj Close']
px = pd.DataFrame({n: get_px(n, '1/1/2009', '6/1/2012') for n in names})

#fillna method pad uses last valid observation to fill
px = px.asfreq('B').fillna(method='pad')
rets = px.pct_change()
df2 = ((1 + rets).cumprod() - 1)

df2.ix[0] = 1

df2.plot()
Run Code Online (Sandbox Code Playgroud)

更新:完全追溯

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-122-df192c0432be> in <module>()
      6 df2.ix[0] = 1
      7 
----> 8 df2.plot()

//anaconda/lib/python2.7/site-packages/pandas/tools/plotting.pyc in …
Run Code Online (Sandbox Code Playgroud)

python matplotlib financial pandas

15
推荐指数
2
解决办法
9171
查看次数

FIX消息分隔符

我对FIX-Protocol比较新.

FIX协议消息的分隔符有时会显示^和其他时间.维基百科的FIX协议说[SOH](< 十六进制的开头 >十六进制为0x01)是该字符.

请解释一下这个含义.

例如,FIX协议消息可以在视觉上表示为

8=FIX.4.4^9=122^35=D^34=215^49=CLIENT12^52=20100225-19:41:57.316^56=B^1=Marcel^11=13346^21=1^40=2^44=5^54=1^59=0^60=20100225-19:39:52.020^10=072^
Run Code Online (Sandbox Code Playgroud)

要么

8=FIX.4.4|9=122|35=D|34=215|49=CLIENT12|52=20100225-19:41:57.316|56=B|1=Marcel|11=13346|21=1|40=2|44=5|54=1|59=0|60=20100225-19:39:52.020|10=072|
Run Code Online (Sandbox Code Playgroud)

那么使用^ over |的确切区别是什么?

是否还使用了其他分隔符.不清楚为什么[SOH](0x01)适合^或|

它可能是数字之一.

financial fix-protocol quantitative-finance

14
推荐指数
2
解决办法
1万
查看次数