货币汇率换算公式表(人民币与全球汇率)
时间:2023-12-06 01:38:53 | 分类: 基金知识 | 作者:admin| 点击: 59次
人民币与全球汇率
想查人民币对世界主要货币的汇率,可参照以下网址:http://forex.eastmoney.com/ForexPrice.html希望对你有帮助。
从汇率转换通用解决方案到可复用设计思想
汇率转换中,有很多问题,当然这个场景基本发生在有国际化运营情况的企业中。
大家好,我是BI佐罗,这里和大家一起探讨这个问题的通用解决方案。
先来抽象出该场景的通用结构。大致如下:
汇率每天都在变化,因此,会有一个随日期变化的汇率表。
交易表则整合来含有不同汇率的交易值。
从本质上来说,交易值的问题在于:
值
单位
问题就是值的单位是不统一的。
这在业务上带来的问题就是:
日本市场和欧洲市场的总交易是1.2亿,什么,单位是什么,如果不对单位做处理,那单位相当于是混合的,也就失去了意义。
因此,汇率转换的基本业务意义和核心业务意义在于:
将值的单位统一在一个单位。
另一方面,随着看报告的角色不同,可能是不同国家的有权限的人,可能会存在用不同单位视角来看结果的诉求,例如:
分别按RMB或USD来看结果。
综上,汇率转换的本质在于统一单位,实现:
业务逻辑上的值的单位统一
查看报告时的单位可变
相通了这些问题,再来看看其中的难点。
由于结算发生在交易时,因此,随着汇率的时效性,在统一单位时,与K,M,B的不同在于,这种统合单位是随着时间而变化的。
某天的交易额要按当天(或业务上合规的结算汇率)来统一到统一单位尺度。
根据以上分析,可知必须具备涵盖以上信息的相关表,如下:
汇率表
交易表
以及以上两表涉及的规范化形态。具体数据模型大致如下:
这个数据模型的搭建,非常有学问。这里先知道用到的表,后续再来进一步解释这个设计。
汇率表的最小通用结构,如下:
这里强调了一种演示,具体汇率值可能并不真实(例如:JPY日元对人民币RMB的汇率),但并不影响对解决方案的理解。
为了表示更复杂的场景以及更清晰的逻辑,该表所在案例的业务含义如下:
汇率表示从A到B的转换系数,例如:交易了1美元,则可以直接匹配From端后,再乘以To端即可得目标值。
汇率并不是每天都记录的,在业务上要求计算时需要匹配最后一个可用的汇率作为结算汇率。
这样的处理使得该案例有更一般的假设,可以满足任何场景。
交易表的最小通用结构,如下:
其中,CurrencyId表示汇率的Id,可与汇率定义进行匹配。
汇率定义表的最小通用结构,如下:
这里将RMB作为统一的基准,并称为Normal,而其他的货币都称为Extend,以便于操作。
表示交易的基础指标,定义为:
其中,.Base后缀暗示了该指标的基础性,且不能直接使用,并需要进一步改进,以便可以计算。
有过“面向对象设计”程序设计基础的伙伴可以理解一个概念,在面向对象设计的语言中,有三个特性:
封装
继承
多态
DAX与面向对象设计的机制是毫无关系的,但并不影响我们借用某些思想来设计和思考问题,以便让解决方案具有:
更好的通用性
更强的扩展性
更易的理解性
?提示
这里首次提出:利用DAX的基本特性,可以完全按照封装,继承,多态的思想来设计解决方案。这为学习,体验DAX的美以及用于实际工程项目具有重要意义。
DAX的封装,通过度量值完成。度量值依赖于数据模型,或者准确的说,是某个必然存在的数据模型中的字段,以确保某度量值是密闭的,不会发生变化的。同时,由于PowerBIDesktop的软件特性,当度量值依赖的字段名称变化时,度量值会自动更新,用户无需维护。从这个意义上来说:
度量值可以设计成封闭的,以封装逻辑。
度量值一旦封闭,永久不变。其依赖发生变化后,对度量值的维护由系统自动完成。
因此,DAX的度量值支持用封装的思想进行设计。
例如:
这里定义的度量值KPI.Value.Base就是一种封装,它不会发生改变。
DAX的继承,通过度量值完成。例如:
可以看到,度量值支持链式计算,从某种角度来说,如果遵循一定的设计原则,那么,下游度量值可以继承上游(依赖的)度量值的计算逻辑。
也就是说,DAX的继承,更强调了一种业务逻辑的继承,这也是自然的,合理的。
不难想象,可以设计这样一个业务逻辑继承链路,如下:
基本指标值,如:求和。
继承后汇率转换,如:RMB,USD。
继承后单位转换,如:K,M,B。
继承后按时间计算,如:按MTD,按YTD选项计算。
当用户在使用KPI.Value.MTD这个度量值的时候,其本质上,正在使用:
按MTD筛选出的交易按汇率转换后并以K做为单位计算后的结果。
以上这句话说得相当拗口,但它应该让你感受到这种设计的魅力所在。
?提示
小白进入到以PowerBI作为泛型的自助商业智能分析领域,对技术的初步不适就是来自于这种逻辑的强大统一和输出,因为,这种逻辑是内涵式的,在Excel中,往往每一步就显性化地摆在那里,用户的大脑和眼睛可以看到每一步的结果;而在DAX中的计算,是被强大而清晰又优美的逻辑链条设计出来的,这种结合算力,逻辑,脑力为一体的全新体验,要真正感受到它的魅力后,就再也回不去了。
多态性,是实现可复用以及动态执行的最关键特性。
先不去纠结其技术含义,来看这样一个例子:
问:KPI.Value表示什么?
答:表示,啊,,,,没有说表示什么啊,,,
对了,就是这种感觉,可以看出:
KPI.Value是一种抽象的字面含义,Value既不是销售额,也不是销量,但它既可以是销售额,也可以是销量,但到底是什么呢?
如果给用户提供一个切片器,用户选了“销售额”,则计算出销售额;用户选了“销量”,则计算出销量。
因此,我们可以感受到:
KPI.Value具有可变的多种含义,这种可变的含义,取决于用户的选择,这种计算并不发生在定义它的时候,而是发生在用户选择以后。这种随着环境动态可变而又可以被提前设计出来的机制,就是:多态性(Polymorphism)。
?插曲
多态性,是出现在计算机专业,编程中的专业术语,大概在科班中的大学二年级会学到,但在那时可以准确理解这个概念的学生并不多。直到大家未来从事了编程开发的工作,才能真正理解。但在这里,你已经理解了这个问题的内涵。
从这个意义上说,很多小伙伴问,DAX到底强在什么地方,那么,你现在就可以感受到DAX可以支持设计出一种:
提前设计但又不运行
用户做了选择
根据选择再执行
这是一种倒置的结构。
还记得这个场景吗:
IT:你要什么?
业务:我要看销售额。
IT:什么的销售额。
业务:嗯,,,都有可能。
IT:那不行,你必须先说要看什么,才可能帮你查什么
业务:也有道理啊,但的确什么都有可能啊。
IT:那做不了的啊。
业务:那就看XXXXX吧。
如果你是业务,你现在就可以明白,你要的东西的确可以根据未来的可能而动态给出的。不能实现这种业务的诉求的IT,实则是没有选择带有多态性机制的商业智能工具;
如果你是IT,你现在就可以明白,并非现有需求,才有答案;需求是可以在可变的空间内,全部准备好的,等需求变了,结果自然改变。
多态性,如此重要,在数据分析中,你可能接触过很多技术工具,但能在这一层面轻松设计出动态可变具有多态性的技术解决方案的机制,DAX天生如此。
从这个意义上来说,我们选择支持多形性的自助商业智能分析工具,DAX具备这个特点,其他的,可以自行评估。
再来看这个经典场景,如下:
设计这样一个业务逻辑继承链路,如下:
封装:基本指标值,如:求和。
继承:继承后汇率转换,如:RMB,USD。
继承:继承后单位转换,如:K,M,B。
多态:继承后按时间计算,如:按MTD,按YTD选项计算。
可见,在实际中,不是一个个特性单独使用,而往往是一连串一起用,这种优美,你体会到了吗?
有了封装继承多态,我们就可以更好更本质地思考和进行设计了。以汇率转换为例,可以做出这样的设计:
KPI.Value.ByCurrency封装了一种不变的逻辑结构,就是:
交易转换为统一货币再转出为目标货币。
仔细思考,由于每天的汇率是不同的,在考虑汇率计算的时候,具体逻辑应该是:
先计算某天的统一值,再对所有日期的值求和。
按当日的不同汇率分别计算统一值,再求和。
为了计算某天的统一值,就需要:
不难看出,这里出现了一个二重循环迭代的逻辑。
这说明两件事:
第一,并不能直接适配[KPI.Value.Base]*[Currency.To.Normal]*[Currency.To.Extend]这样的计算框架。
要考虑更内部的迭代。
第二,需要构建二重迭代结构来适配计算。
为此,将上述设计调整为:
其中,两个嵌套的SUMX实现了二重迭代。
在最内层的迭代,计算基本聚合转为通用货币再转为目标货币的过程。
具体的实现,后文再做介绍。
数据模型的设计,就像一种棋*,如何搭建数据模型,会都后续设计产生影响,主要包括:
应对不断变化的需求
提供高性能的支持
本案例中的数据模型采用了如下设计:
具备这样的好处:
只看右边,相当于没有汇率的干扰,与普通数据模型一致。
只看左边,反映了汇率以及随日期变化的记录。
汇率表具有的结构如下:
从某种角度来看,汇率每天都需要进行记录,所以是汇率的记录,这符合事实表的定义,因此,是事实表。但另一方面,除非用户去分析汇率的走势,否则,在没有分析意图下,汇率是一种参考查找的作用。
从使用的目的去界定事实表,维度表,可以启发设计师看到某表时应该怎样思考,具有很好的作用。在这里,汇率的目的不是事实,而是参考,因此,不作为事实表看待。将其命名为:Ref_Currency可以体现使用它的目的。
观察这里的数据模型,可以看出,汇率定义维度,并未与交易事实表连接,实际的设计,也可以进行连接。这里不进行连接的设计思路是:
使用汇率的场景是很单一的,因此,尽量将这个部分隔离在主体数据模型之外,以凸显要分析的主体部分,而弱化辅助部分对主体部分的侵入。
这是:非侵入式设计的典型思维。(《PBI-高级》课程中详细讲解了非侵入式设计,这里就不再重复)
再来观赏这个结构设计,如下:
汇率完全被边缘化到主体数据模型之外,仅仅复用主体数据模型的时间维度,这是合理的。
这样,设计师就是不受汇率的干扰,聚精会神继续考虑如何设计交易的相关分析。
?提示
数据模型的设计不是唯一的,但好的数据模型,可以极度降低后续思考设计的难度,这是数据建模的精妙和魅力所在。从一定意义上来看,如果设计师在后续的工作中,得益于一开始有意义的数据模型设计,会有一种显著的成就感,因为这种预判就是下棋的布*,虽然未见胜负,但整个棋*却了然于胸。
既然汇率维度没有侵入到主体数据模型,那么,对于每笔交易级别的汇率,必然要查找对应的汇率。设计如下:
查找汇率采用度量值给出,基于考虑如下:
选定汇率维度的某个值,查找汇率。
度量值可以复用。
业务逻辑是:查找与汇率维度选择一致且小于等于该日期的最后可用汇率。
考虑到汇率转换设计模式,如下:
为此,将上述设计调整为:
考虑到在最内层迭代已经存在:
具体的日期
具体的汇率货币
查找汇率计算方法
则以上模式可以具体化为:
这里使用的技巧是:
将某日某货币的值
乘以转换系数转为统一货币
再除以转换系数转为目标货币
其中,用到了一个新的参数表:Option_Currency。它是用户的选择,如果用户选择了目标货币,则转出;如果用户没有选择,则保持统一货币。
这里的命名RawToNormalToExtend启发含义为原始值转为统一货币值再转为目标货币值。
其中,DAX函数COALESCE实现查找不到汇率时,默认返回1以表示这是不需要找转换汇率的本币。
按照这些的设计,实现了通用的计算效果,如下:
其含义为:
汇率记录:不同日期的汇率记录,可能有缺失日期,也需要满足。
汇率查找:在任何日期查找不同货币对本币(RMB)的汇率。
汇率计算:按照用户选择的输出型货币,在不同日期计算原始值(无意义),统一为本币(RMB)的值以及转出货币的值。
关于什么时候使用度量值和计算列有很多争论,然而,理论上是不需要计算列的。计算列存在的一个真正重要意义,就是预计算。预计算,就是预先进行计算,将计算的结果存放起来,以便后续使用。
很多人不曾理解预计算的意义,但现在理解了。
很多人曾理解预计算的意义,但现在将更加透彻。
前文内容讲述了“多态性”。可以发现:
预计算与多态性,就是天平的两端。
从多态性的角度:
度量值,保存最完整的多态性,但性能降低。
预计算,保存最快的聚合速度,但失去多态。
因此,
倾向于多态性,则应该使用度量值。
倾向于高性能,则应该尽量预计算。
但需要注意的是:
某些需求由于必须借助度量值的链式传导来描述其计算逻辑,是无法预计算的。
也就是说,
在某些场景下,同一问题,可以用度量值或计算列解决,没有什么差别。
在某些场景下,必须用度量值,是因为必须要保证多态性。
在某些场景下,由于性能极度降低,需要牺牲多态性来预计算。
具体的例子就不列举了,随着对数据模型使用的深入,会体会到上述三点是一种平衡,权衡,以及深度实践。
由于在汇率计算场景下,任何一笔交易,都已经成为历史,在交易表中,是可以通过计算列先来将交易值参考汇率表,转换到统一货币的。如下:
在交易表中新建计算列,并定义以上逻辑,即可完成预计算。
?提示
在计算列中使用度量值或CALCULATE应该注意防止上下文转换的副作用。这里运用了这个技巧。
这样就可以得到一个更加快速的度量值,如下:
原有汇率计算的公式可以优化如下:
这里借助了已经预计算的值,再计算转出结果,减少了一个步骤,理论上会提升性能。
实际上,经过测试,这样的设计带来的性能优化是显著的。
考虑到用户的选择以及度量值的有效性,用户可能选择,也可能不选择,综上,可以封装出一个度量值,如下:
这样就得到了一个通用的度量值,可以适配于任何场景。
使用日期或更高粒度的计算时,这个模式也可以确保正确的计算。如下:
可以看出,选择了不同的日期,在不同时间的粒度,都可以确保计算正确。
上述具备了多态性的度量值KPI.Value.ByCurrency可以自动适配这些变化。
同理可以推测,在施加了各种时间维度计算后,仍然有效。
本文给出了汇率转换的通用方案。该通用方案,已经几乎考虑了最基本的抽象,并可以适配几乎任何情况。同时,给出了性能优化后的版本。
更重要的是,本文解释了高级设计背后的思想,这些思想是自然和简单的。如果技巧让人不断的记忆,那么思想则让人不断的享受。因为,每次设计都是同一思想的不断使用,重复。
本文同时揭示和抽象了DAX以及数据模型设计中蕴含的封装,继承,多态性质以及如何将这些性质用于设计的实际案例。
直播讲解,精彩不断
PowerBI终极系列课程《BI真经》
BI真经-让数据真正成为你的力量
扫码与精英一起讨论PowerBI,验证码:data2022
↙
人民币汇率是怎么算的?
我们平时从报纸上读到的都是名义汇率-E.名义汇率是一国货币跟另一国货币的价格之比.比如美元对德国马克是1.43DM/$或0.70$/DM.简单地说,就是一个美元可以换算成多少个马克.我们平时到银行去兑换就是按照名义汇率折算.在本节及以后的章节中,我们通常以一单位外国货币换多少本国货币的形式来表示名义汇率.比如8.26Yuan/$等.这样的话,如果E上升,也就意味着一单位外国货币可以兑换更多本国货币,那么我们说本国货币贬值;反之如果E下降,本国货币升值.名义汇率是我们日常生活中最常见的,但是这里我们想讨论的是汇率跟宏观经济之间的互动关系,从名义汇率里我们看不到什么关系,所以对于宏观经济学学生而言,名义汇率并不是我们特别关心的.国家之间发生贸易的时候进出口商关心的不仅仅是我的钱能换成国外多少钱,更在于我的钱能从你那儿买多少东西.如果我1块钱可以兑换成你100个外币,但是你国内的东西价格比我国内贵200倍,那我还是不能从你那儿进口东西.所以国内国外的价格在这里必须考虑进去.怎么考虑?假如我现在手里有1块钱人民币,国内价格是P,那么我可以买1/P个单位的中国货物.如果我兑换成美元,那么我可以得到1/E美元.国外价格是P*,那么我可以买1/EP*个单位的美国货物.换句话说,中国1/P单位的货物可以换得1/EP*个单位的美国货物.那也就是说,1个单位的美国货物可以换成EP*/P个单位的中国货物.这个概念就是十分重要的实际汇率RER.另一个角度看实际汇率:同样一件货物,中国卖P/单位,美国卖P*/单位,换算**民币就是EP*/单位.那么实际汇率其实就是同一件货物外国用本国货币衡量的价格与本国价格之比.这样进出口商就容易比较了:比如,汽车进口商需要决定是否进口汽车.他先看本国汽车市场价格P,然后看美国汽车市场价格P*,并将之换成EP*人民币,与本国价格P对比,如果高于本国价格,那么就不进口.如果实际汇率上升,意味着1单位外国货物换的本国货物多了,那么自然本国汇率贬值;反之RER下降本国汇率升值.这个跟名义汇率一样.用我们的第二个角度考虑,如果实际汇率上升,那么同一样东西外国卖得价格更高了,进口商利润空间减小,从而进口数量减少,所以对本国进口商来说实际汇率贬值有害,而反之对本国出口商有利.注意:1.我们讨论汇率对进出口的影响,都是谈的实际汇率,而不是名义汇率,理由开篇已经说过;2.虽然实际汇率贬值使进口数量Q(m)减少,但反映在国际收支平衡表中经常项目下的进口总额V(m)=Q(m)EP*=Q(m)*RER*P.现在Q下降,但RER上升,所以难以判断进口总额的变化方向.事实上是,很多发展中国家在本国货币贬值期间,出口总额固然上升,但与之同时进口总额也有所上升.这就是因为Q(m)并没有减少太多,由于这些发展中国家对发达国家的进口依赖度很高.以上的实际汇率是两国之间的汇率,我们称之为"BilateralRealExchangeRate".但是我们知道,客观世界中一个国家在跟许许多多国家进行贸易,那就有许许多多个双边实际汇率.这对我们的经济分析是十分麻烦的.能不能建立一个综合性的多边实际汇率MuitilateralRealExchangeRate呢?我们说可以.比方说建立一个中国跟其贸易伙伴之间的多边实际汇率.中国跟美国之间有一个双边实际汇率可以根据RER(US)=EP*/P计算得到,同样中国跟英国之间的双边实际汇率RER(ENG)也可以计算出来,跟印度RER(IND),跟韩国RER(KOR),跟伊拉克RER(IRA)等等都可以计算.中国出口到美国的货物占中国向世界总出口的a%,出口到英国的占总出口b%,出口到印度的占c%,韩国的d%,伊拉克的e%.那么中国对世界的双边实际汇率(其实就是中国的多边实际汇率MRER,衡量的是一个单位世界货物可以换成多少单位的中国同样的货物)就是加权平均:MRER=RER(US)a%+RER(ENG)b%+RER(IND)c%+RER(KORE)d%+RER(IRA)e%这样算出的是出口方面的多边实际汇率,进口同样可以算出.为了方便起见,经济学家取进口多边实际汇率和出口多边实际汇率的平均作为最终一个国家的多边实际汇率.总结:实际汇率上升,说明国外货物贵了,本国汇率贬值,对出口有利,对进口有损;实际汇率下降,说明本国货物相对贵了,本国汇率升值,对进口有利,对出口有损.最后,我们来看一个将名义汇率E跟宏观经济参数之一利率联系起来的模型.这是名义汇率跟宏观经济分析之间的一个桥梁,没有它,我们将无法具体分析名义汇率对宏观经济的影响.假设你现在有1美元,你可以有两个选择如何投资这个1美元.第一,你可以购买美国债券,这样你一年可以获得(1+i(t))美元;第二,你可以先换成1/E(t)马克,然后购买德国债券,这样一年后可以获得(1+i*(t))/E(t)马克,然后换成美金,你期望得到Ee(t+1)(1+i*(t))/E(t)的美元.其中Ee(t+1)是对时间段(t+1)汇率的预期.根据无投机市场条件,你在美国的投资回报应该等于你在德国的投资回报.所以,我们有这样的公式:1+i(t)=Ee(t+1)(1+i*(t))/E(t),由数学估算我们可以近似得到:i(t)=i*(t)+(Ee-E)/E这就是著名的UIP条件等式(uncoveredinterestparitycondition).虽然简单,却十分重要.比如,它可以解释金融危机的发生.如果人们对一个国家预期货币将会贬值,那么Ee上升,要保持这个等式,要么本国利率i(t)提高,要么现在的汇率E也要上升,也就是贬值.这正是我们在97年亚洲金融危机中所看到的.该等式另一个意思是,如果两国汇率采用的是盯牢制,比如人民币盯住美元维持汇率在一稳定范围,那么E不变,同时如果人们相信中国能够盯牢美元,那么人们的汇率预期Ee也变化不大,这样的话,我们从等式中可以判断,两国的利率走向应该大致一样.这在实际生活中是被验证了的.
汇率换算公式
1人民币元=1.1682港币1港币=0.8560人民币元2500港币=2140.0445人民币元
美元与各币种的汇率?
1美元=8.26人民币1美元=0.35英镑1美元=0.74欧元1美元=1.13瑞士法郎1美元=1.19加拿大元1美元=1.32奥大利亚元1美元=1.38新西兰元1美元=1.63新加坡元1美元=5.52丹麦克朗1美元=6.07挪威克朗1美元=6.8瑞典克朗1美元=7.77港币1美元=8.01澳门元
汇率计算公式详解?
汇率是指一国货币与另一国货币的比率或比价,或者说是用一国货币表示的另一国货币的价格。汇率计算:
1. 直接标价法:
汇率升贬值率=(旧汇率/新汇率-1)*100
2. 间接标价法:
汇率升贬值率=(新汇率/旧汇率-1)*100
结果是正值表示本币升值,负值表示本币贬值
要注意的是,汇率是不断波动的。
汇率公式:1/实时汇率。
1/6.6974≈0.1493。所以,需要0.1493美元就能购买1人民币。这就是人民币/美元货币对,货币位置就要反过来了。
【1美元可换人民币6.6974元】 也就是说1美元约等于7元人民币
汇率怎么换算出来的(汇率的计算公式是什么)
年度结束后申办年度汇算清缴的,对早就按月、按季或者按次预缴税款的人民币以外贷币个人所得,不容易再再度转换。对理当补缴税费的个人所得一部分,按照上一缴税年度最后一日人民币汇率中间价,折算成人民币计算应纳税额。如...
汇率换算公式?
当你出国兑换货币时,你肯定会使用汇率转换计算。不同国家之间的金币转换需要一个公式。汇率是指一种货币兑换成另一种货币的比率,通常也称为汇率。汇率转换公式有两种,即直接定价法和间接定价法。让我们带您学习这两个转换公式。
详细说明汇率转换公式
1.直接定价法:不适用于美国、英国等国家,可用于其他大多数国家。他的计算标准是:汇率上升和贬值=(旧汇率/新汇率-1)×100.如果结果为负值,则表示货币贬值,如果结果为正值,则表示货币升值;
2.间接定价法:是美国和英国流行的算法。他的汇率转换公式是:汇率上升和贬值=(新汇率/旧汇率-1)×100.结果为负值为贬值,正值为升值。
以上是汇率转换公式的两种详细计算方法。
汇率是如何计算的。计算公式
汇率公式:1/实时汇率。1/6.6974≈0.1493。所以,需要0.1493美元就能购买1人民币。这就是人民币/美元货币对,货币位置就要反过来了。【1美元可换人民币6.6974元】也就是说1美元约等于7元人民币...
汇率换算公式汇率换算公式介绍
1、汇率换算公式:汇率升贬值率=(旧汇率/新汇率-1)*100。2、外汇汇率是用一个国家的货币折算成另一个国家的货币的比率、比价或价格;也可以说,是以本国货币表示的外国货币的价格。3、由于国际间的贸易与非贸易往来,...