极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析|附代码数据

全文链接:http://tecdat.cn/?p=24182

最近我们被客户要求撰写关于极值理论的研究报告,包括一些图形和统计输出。

本文用 R 编程语言极值理论 (EVT) 以确定 10 只股票指数的风险价值(和条件 VaR)

使用 Anderson-Darling 检验对 10 只股票的组合数据进行正态性检验,并使用 Block Maxima 和 Peak-Over-Threshold 的 EVT 方法估计 VaR/CvaR。最后,使用条件异向性 (GARCH) 处理的广义自回归来预测未来 20 天后指数的未来值。本文将确定计算风险因素的不同方法对模型结果的影响。

极值理论(最初由Fisher、Tippett和Gnedenko提出)表明,独立同分布(iid)变量样本的分块最大值的分布会收敛到三个极值分布之一。

最近,统计学家对极端值建模的兴趣又有了新的变化。极限值分析已被证明在各种风险因素的案例中很有用。在1999年至2008年的金融市场动荡之后,极值分析获得了有效性,与之前的风险价值分析不同。极限值代表一个系统的极端波动。极限值分析提供了对极端事件的概率、规模和保护成本的关系进行建模的能力。

参考

https://arxiv.org/pdf/1310.3222.pdf https://www.ma.utexas.edu/mp_arc/c/11/11-33.pdf http://evt2013.weebly.com/uploads/1/2/6/9/12699923/penalva.pdf Risk Measurement in Commodities Markets Using Conditional Extreme Value Theory

第 1a 节 - 工作目录、所需的包和会话信息

为了开始分析,工作目录被设置为包含股票行情的文件夹。然后,安装所需的 R 编程语言包并包含在包库中。R 包包括极值理论函数、VaR 函数、时间序列分析、定量交易分析、回归分析、绘图和 html 格式的包。

library(ggplot2)
library(tseries)
library(vars)
library(evd)
library(POT)
library(rugarch)

第 1b 节 - 格式化专有数据

用于此分析的第一个文件是“Data_CSV.csv”。该文件包含在 DAX 证券交易所上市的 15 家公司的股票代码数据,以及 DAX 交易所的市场投资组合数据。从这个数据文件中选出了 10 家公司,这些公司最近十年的股价信息是从谷歌财经下载的。

第 1c 节 - 下载股票代码数据

股票价格数据下载并读入 R 编程环境。收益率是用“开盘价/收盘价 ”计算的,十家公司的数据合并在一个数据框中,(每家公司一列)。

结果数据帧的每一行代表记录股价的 10 年中的一个工作日。然后计算数据帧中每一行的均值。一列 10 年的日期被附加到数据框。还创建了仅包含行均值和日期信息的第二个数据框。

alDat <- cbind(retursDaa, returnDta_A,
                 retrnsata_Ss, reunsataDB,
                 retunsDta_H, reurnsDta_S, rtunsDaaA,
                 retrnsaa_senus,reursDtaAlnz,
                 reurnsData_ailer)

第 2a 节 - 探索性数据分析

创建一个数据框统计表,其中包含每列(或公司)的最小值、中值、平均值、最大值、标准偏差、1% 分位数、5% 分位数、95% 分位数、99% 分位数。分位数百分比适用于极值。还创建了所有收益率均值的时间序列图表。

  taeSs<- c(min(x), medan(x), man(x),
                    max(x), sd(x), quntile(x, .01),
                    quanile(x, .05), qunile(x, .95),
                    quatile(x, .99), lngth(x))

第 2b 节 - 10 只股票指数的 VaR 估计

all_va.2 <- VAR(lDvarts, p = 2, tpe= "cnst")

# 预测未来125天、250天和500天
aDFva100 <- pdc(alDva.c, n.aea = 100, ci = 0.9)

为了开始估算数据所隐含的未来事件,我们进行了初步的风险值估算。首先,所有行的平均值和日期信息的数据框架被转换为时间序列格式,然后从这个时间序列中计算出风险值。根据VaR计算对未来100天和500天的价值进行预测。在随后的预测图中,蓝色圆圈代表未来100天的数值,红色圆圈代表500天的回报值。

plot(ap0$t$Tme[1:1200],
     alF_ar.d.$fst[1:1200])

第 2c 节 - 估计期望_shortfall_(ES),条件VAR_(CvaR)_ 10 股票指数

为便于比较,计算了10只股票指数数据的条件风险值(CvaR或估计亏损)。首先,利用数据的时间序列,找到最差的0.95%的跌幅的最大值。然后,通过 "高斯 "方法计算出估计亏损,这两种计算的结果都以表格形式呈现。

ES(s(lD1:2528, 2, rp=FAE]),p=0.95, mho="gausn")

第 2d 节 - 10 只股票指数的希尔Hill估计

由于假设10股指数数据为重尾分布,数据极少变化,所以采用Hill Estimation对尾指数进行参数估计。目的是验证 10 只股票数据是否为极值分布。Hill Estimation 生成的图证实了。

hil(orvtis, otio="x", trt=15, nd=45)

点击标题查阅往期内容

R语言POT超阈值模型和极值理论EVT分析

01

02

03

04

第 2e 节 - 正态分布的 Anderson-Darling 检验

Anderson-Darling 检验主要用于分布族,是分布非正态性的决定因素。在样本量较大的情况下(如在 10 股指数中),小于 0.05 的 P 值表明分布与正态性不同。这是极值分布的预期。使用 Anderson-Darling 检验发现的概率值为 3.7^-24,因此证实了非正态性。

第 2f 节 - 结果表

最后,给出了10个股票指数未来价值的估计结果表。3 个 VaR 估计值(和估计差额)的点估计值和范围被制成表格以比较。

VaRES[3,] <- c("ES", etFbl[1], 4)
                        eSFbe[2], estFtbl[3],
                        rond(eSab[4], 4))

第 3a 节 - 10 个股票指数的 EVT 分块最大值估计

极值理论中的 Block Maxima 方法是 EVT 分析的最基本方法。Block Maxima 包括将观察期划分为相同大小的不重叠的时期,并将注意力限制在每个时期的最大观察值上。创建的观察遵循吸引条件的域,近似于极值分布。然后将极值分布的参数统计方法应用于这些观察。

极值理论家开发了广义极值分布。GEV 包含一系列连续概率分布,即 Gumbel、Frechet 和 Weibull 分布(也称为 I、II 和 III 型极值分布)。

在以下 EVT Block Maxima 分析中,10 股指数数据拟合 GEV。绘制得到的分布。创建时间序列图以定位时间轴上的极端事件,从 2006 年到 2016 年。然后创建四个按 Block Maxima 数据顺序排列的图。最后,根据 gev() 函数创建 Block Maxima 分析参数表。

gev(ltMeans, x=0.8, m=0)


plt(alVF)

第 3b 节 - 分块最大值的 VaR 预测

为了从 Block Maxima 数据中创建风险价值 (VaR) 估计,将 10 股指数 GEV 数据转换为时间序列。VaR 估计是根据 GEV 时间序列数据进行的。未来值的预测(未来 100 天和 500 天)是从 VaR 数据推断出来的。在结果图中,蓝色圆圈表示未来 100 天的值,红色圆圈表示 500 天的收益率值。

# 预测未来500天
aGE500<- preit(aG_va.c, n.ad = 500, ci = 0.9)

plot(aGE500pd.500)

第 3c 节 - 分块最大值的期望损失ES (CvaR)

10只股票指数GEV数据的条件风险值("CvaR "或 "期望损失")被计算。首先,利用数据的时间序列,找到最差的0.95%的缩水的最大值。然后,通过极端分布的 "修正 "方法来计算 "估计亏损",这两种计算的结果都以表格形式呈现。

# 条件缩减是最差的0.95%缩减的平均值
ddGV <- xdrow(aEVts[,2])
# CvaR(预期亏损)估计值
CvaR(ts(alE), p=0.95, meho="miie")

第 3d 节 - 分块极大值的 Hill 估计

希尔估计(用于尾部指数的参数估计)验证 10 只股票的 GEV 数据是极值分布。

第 3e 节 - 正态分布的 Anderson-Darling 检验

Anderson-Darling 检验是确定大样本数量分布的非正态性的有力决定因素。如果 P 值小于 0.05,则分布与正态性不同。通过该测试发现了一个微小的概率值 3.7^-24。

第 3f 节 - 结果表

最后,给出了对 10 股指数 GEV 未来价值的估计结果表。3 个 GEV VaR 估计值(和 GEV 期望损失)的点估计值和范围制成表格比较。

G_t[3,] <- c("GEV ES",sFale[1],
                     sStble[2], SEble[3],
                     "NA")
GRst

第 3g 节 - 分块极大值的 100 天 GARCH 预测

通过将 Block Maxima GEV 分布(10 只股票的指数)拟合到 GARCH(1,1)(广义自回归条件异型)模型,对 Block Maxima EVT 数据进行预测。显示预测公式参数表。创建一个“自相关函数”(ACF) 图,显示随时间变化的重要事件。然后,显示拟合模型结果的一组图。创建对未来 20 天(股票指数表现)的预测。最后,20 天的预测显示在 2 个图中。

spec(aanc.ol = list(mel = 'eGARCH',
                                        garer= c(1, 1)),
                  dirion = 'sd')

# 用广义自回归条件异质性拟合模型
alimol = ugct(pec,allV, sovr = 'ybi')

cofale <- dtafe(cof(litol))
oeBal

plt(l.itodl)

第 4a 节 - 峰值超过阈值估计 - 10 个股票指数

在 EVT 中的峰值超过阈值方法中,选择超过某个高阈值的初始观测值。这些选定观测值的概率分布近似为广义帕累托分布。通过拟合广义帕累托分布来创建最大似然估计 (mle)。MLE 统计数据以表格形式呈现。然后通过 MLE 绘图以图形方式诊断所得估计值。

plot(Dseans, u.rg=c(0.3, 0.35))

第 4b 节 - POT 的 VaR 预测

POT 数据的风险价值 (VaR) 估计是通过将 10 个股票指数 MLE 数据转换为时间序列来创建的。VaR 估计是根据 MLE 时间序列数据进行的。未来值的预测(未来 100 天和 500 天)是从 MLE VaR 数据推断出来的。在结果图中,蓝色圆圈表示未来 100 天的值,红色圆圈表示 500 天的收益值。

VAR(merts, p = 2, tp = "cost")

# 预测未来125天、250天和500天
mle_r.pd <- prect(e.ar, n.ahad = 100, ci = 0.9)


plot(mea.prd)

第 4c 节 - POT 的期望损失ES (CvaR) 预测

然后计算10只股票指数MLE数据的条件风险值("CvaR "或 "期望损失ES")。数据的时间序列被用来寻找最差的0.95%的跌幅的最大值。通过极端分布的 "修正 "方法,计算出 "期望损失ES",两种计算的结果都以表格形式呈现。

# 最差的0.95%最大回撤的平均值
mdM <- maxdadw(mlvs[,2])

CvaR(ldaa), p=0.95, meto="mdii",
               pimeod = "comnen", weghts)

第 4d 节 - 峰值超过阈值的 Hill 估计

Hill 估计(用于尾部指数的参数估计)验证 10 只股票的 MLE 数据是一个极值分布。

第 4e 节 - 正态分布的 Anderson-Darling 检验

Anderson-Darling 检验是确定大样本数量分布的非正态性的有力决定因素。如果 P 值小于 0.05,则分布与正态性不同。此测试的结果 P 值为 3.7^-24。

第 4f 节 - 结果表

最后,给出了 10 个股票指数 MLE 未来价值的估计结果表。3 个 MLE VaR 估计值(和 MLE 期望损失ES)的点估计值和范围被制成表格来比较。

第 4g 节 - 峰值超过阈值的100天 GARCH 预测

通过将 MLE(10 只股票指数的最大似然估计)拟合到 GARCH(1,1)(广义自回归条件异型性)模型,对峰值超过阈值 EVT 数据进行预测。显示预测公式参数表。创建了一个“自相关函数”(ACF)图,显示了随时间变化的重要事件。然后,显示拟合模型结果的一组图。然后创建对接下来 20 天(股票指数表现)的预测。最后,20 天的预测(来自峰值超过阈值 EVT extimation)显示在 2 个图中。

fit(ec,ta, slvr = 'hybrid')



plot(pot.fite.ol)

第 5a 节 - 估计方法影响表

下表汇总了检验 极值分布的 10 个股票的四种方法的结果。第一列包含四种估计方法的名称。提供了 VaR、ES、mu统计量和 Anderson-Darling P 值的统计量。

c("VaR",
                     round(mean(cofets),4),
                     "NA", "NA", p.vau)
c("Block Maxm", round(mean(coffies),4),
                     MES, pr.ss[3],.vle)

c("POT", 
                     round(mean(cofies), 4),
                     MES, fitdaes, p.ale)

第 5b 节 - 结论

在对10家公司(在证券交易所上市)10年的股票收益率进行检查后,证实了将收益率变化定性为极值分布的有效性。对四种分析方法的拟合值进行的所有安德森-达林测试显示,分布具有正态性或所有非极值的概率不大。这些方法在收益数据的风险值方面是一致的。分块最大值方法产生了一个风险值估计的偏差。传统的VaR估计和POT估计产生相同的风险值。相对于传统的股票收益率数据的CvaR估计,两种EVT方法预测的期望损失较低。标准Q-Q图表明,在10只股票的指数中,Peaks-Over-Threshold是最可靠的估计方法。

本文摘选 R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

本文转载于网络 如有侵权请联系删除

相关文章

  • 详解DQN训练技巧!带你回到深度强化学习「梦开始的地方」

    【新智元导读】DeepMind开始称霸强化学习的DQN算法,都有哪些训练技巧?过去十多年里,DeepMind在人工智能的发展中绝对有着重要的地位,从AlphaGo,AlphaZero到AlphaStar,再到如今的AlphaFold2,每次DeepMind发布新产品似乎都要彻底消灭该行业。围棋界天才少年柯洁都不再下传统围棋,跑去练习云顶之弈。弈一时,悟一世,切换赛道誓在新概念围棋夺生涯第九冠(bushi)。DeepMind在围棋、星际争霸和德州扑克等取得的巨大成就,实际上都归功于DeepMind于2013年发布的DQN算法,也是深度学习和强化学习的首次成功结合。DeepQ-Networks(DQN)于2013年首次发布,仅将游戏的像素值作为网络的输入,成功在一套雅达利(Atari)游戏中超越之前的所有模型的得分,甚至有三个还超越了骨灰级玩家的得分。论文链接:https://arxiv.org/pdf/1312.5602.pdf智能体直接从经验中进行学习,并成功学习到有效的行动在当年是一项重大突破,也让通用人工智能AGI的重回大众视线:计算机在诸多任务中获得的智能,也许比人类更强!不过D

  • LED模拟与数字调光

    LED调光信号可分为:模拟调光、数字调光模拟调光根据响应载荷的变化来调制晶体管基极或MOS管栅极的偏置基准来实现晶体管或MOS导通时间的改变,从而实现开关稳压电源输出的改变,调节LED亮度数字调光以宽、窄不同的数字脉冲,反复切断、闭合LED电流,如果频率高于120Hz,人眼会均很这些脉冲,并产生可感知的平均亮度,通过调节脉冲占空比来控制输出电流,调节LED亮度,也称PWM调光模拟调光VS数字调光模拟调光在调光时不产生低噪声,因此在面对数码设备拍照摄影时不容易产生纹波及闪烁,但模拟调光方案中,LED不是在额定的电流下工作,长期工作会缩短LED使用寿命,且由于LED驱动器会随着电流减少而导致转化效率迅速降低,因此会增加电源系统的功率损耗。数字调光有极高的调光精确度,相比模拟调光其调光范围更大,且不会产生LED色谱偏移。但PWM调光在工作频率过低时人眼会感到闪烁,且调光所引起的噪声容易落在人耳听觉范围内,导致调光噪声的出现;频率过高时,虽然可以达到无频闪标准,但在调光灰度级别区间会缩减,并在低亮度时也容易出现闪烁。一款好的调光电源: 1.调光不影响LED光指数; 2.调光范围宽,调光深度低于

  • LIN网络管理

    1 唤醒(WakeUp)分为主节点的唤醒和从节点的唤醒。处于睡眠状态时,任何一个节点都可以发送唤醒信号。唤醒信号一般是在总线上发送一个持续250us~5ms显性电平。(1)从节点的唤醒从节点会检测到一个显性电平多于150us的唤醒信号,然后在100ms内完成初始化以响应总线上的命令。如果发送唤醒信号的是一个从节点,被唤醒的节点会准备好接收或者发送报文。此时主节点也会被唤醒,当从节点准备好以后,主节点开始发送头部报文(Header)来寻找唤醒源。 图1从节点接收到唤醒信号(2)主节点的唤醒主节点也会检测持续时间长于150us的唤醒信号,如果这时候主节点没有发送间隔段(一帧报文的开始)或者发送唤醒信号的节点在150ms~250ms内没有收到其他节点的唤醒信号,那么这个最初开始发送唤醒信号的节点会重新发送一个唤醒信号。 图2唤醒信号多次发送示意发送唤醒信号的节点会持续上述发送方式3次,然后会等待1.5s,之后再次发送3次唤醒信号。图3唤醒信号持续发送示意 2睡眠(GoToSleep) (1)如果准备让ECU睡下去的话,主节点会发送一个GoToSleep的命令,这个命令报文格式如下: 图4主节

  • JS库的封装之三:添加事件

    JS库的封装之三:添加事件参考jQuery,使用JavaScript实现库的封装。本文为第三部分:事件封装。 一、需求  参考jQuery中的实现逻辑,通过JavaScript代码手动实现:  ● jQuery的on方法    ৹ (selector).on(“click”,function(){})  ● jQuery的off方法    ৹ (selector).off(“click”)二、on方法  on方法用于给当前jQuery对象中的每一个DOM元素绑定事件   使用方法:$("div").on("click",function(){})   它有两个参数:事件类型(”click”等,字符串格式),回调函数。   下面我们来实现on方法,此处我们只考虑IE8以上的浏览器。jQuery.fn.extend({ on(type,callback){ //给当前jQuery对象中的每一个DOM元素绑定事件 this.each(function(index,element){ element.addEventListener(type,callb

  • 听说你Go语言学的不错,来来来,我这儿有几道小题

    闲言少叙,直奔主题。第1题packagemain import( "fmt" ) funchello()[]string{ returnnil } funcmain(){ h:=hello ifh==nil{ fmt.Println("nil") }else{ fmt.Println("notnil") } }复制选项nil notnil compilationerror复制答案notnil复制在主函数中,把hello函数赋值给了变量h。在条件判断中,h!=nil,所以会打印,notnil。第2题packagemain import( "fmt" "strconv" ) funcmain(){ i:=2 s:="1000" iflen(s)>1{ i,_:=strconv.Atoi(s) i=i+5 } fmt.Println(i) }复制选项2 1005 compilationerror复制答案2复制主要问题点集中在第12行,i,_:=strconv

  • Go 语言基础入门教程 —— 数据类型篇:数组及其使用

    数组的声明和初始化数组是所有语言编程中最常用的数据结构之一,Go语言也不例外,与PHP、JavaScript等弱类型动态语言不同,在Go语言中,数组是固定长度的、同一类型的数据集合。数组中包含的每个数据项被称为数组元素,一个数组包含的元素个数被称为数组的长度。和PHP一样,Go语言也通过[]来标识数组类型,以下是一些常见的数组声明方法:vara[8]byte//长度为8的数组,每个元素为一个字节 varb[3][3]int//二维数组(9宫格) varc[3][3][3]float64//三维数组(立体的9宫格) vard=[3]int{1,2,3}//声明时初始化 vare=new([3]string)//通过new初始化复制从以上示例可以看出,数组也可以是多维的,与PHP不同的是,Go语言中数组元素必须是同一个数据类型,并且需要在声明的时候指定元素类型和数组长度(静态语言的特征)。还可以通过:=对数组进行声明和初始化:a:=[5]int{1,2,3,4,5}复制此外,还可以通过这种语法糖省略数组长度的声明:a:=[...]int{1,2,3}复制这种情况下,Go会在编译期自动计算出

  • 抽象画你是没希望了 抽象类你还可以抢救一下

    java零基础入门-面向对象篇(十二)抽象类抽象类这个玩意,理解起来费点劲。我们从字面意思开始吧。抽象一词的本义是指人在认识思维活动中对事物表象因素的舍弃和对本质因素的抽取。说人话就是删除看的懂得,留下看不懂的。应用于美术领域,便有了抽象性艺术、抽象主义、抽象派等概念。来看一个著名的抽象派作品。罗伯特-雷曼《无题》84岁的美国艺术家罗伯特·雷曼1961年创作的油画《无题》,以折合人民币8000万至1.2亿元的价格拍卖。我感觉这画跟我家卫生间的瓷砖有点像,莫非我家的还是个抽象派卫生间不成...至于抽象类,它和抽象画还真的有点相似之处抽象画:我告诉你我画了一幅画,具体画的啥,我也不知道!抽象类:我告诉你我定义了一些方法,方法具体做什么,我也不知道!为什么要抽象类?画家分为很多流派,以我浅显的艺术知识,大概分得清楚三个流派的画家,抽象派,印象派,立体派。现在确定了父类-画家,然后三个子类抽象派画家,印象派画家,立体派画家去继承画家这个类。画家类里面有一个方法,画画,这个方法是必须有的。好了,问题出现了,当我们使用父类-画家创建对象,然后调用画画这个方法的时候,它应该画出来的是哪个流派的画?是

  • SAP Netweaver和Hybris的数据库层

    ABAPNetweaver在SAP基于Netweaver的ABAP应用里,应用开发人员用OpenSQL访问数据库,这些OpenSQL会被Databaseinterface(数据库接口)转换成各种数据库提供商支持的原生SQL语句然后执行。Netweaver支持的数据库提供商在表DBCON的DBMS字段里能看到:除了普通的ABAPOpenSQL的语句用于业务数据的增删查改之外,SAPCRM和C4C里还支持EnterpriseSearch(有时也成为simplesearch,模糊搜索),就是类似Google搜索一样,用户只需要指定待搜索值,而无需指定该搜索值对应的搜索条件。在这两个产品里的EnterpriseSearch实现原理实际上是应用程序发起一个RFC(RemoteFunctionCall)到TREX服务器上拿到查询结果。HybrisHybris里也有和CRMWebUI里的API层起同样作用的层,封装了对DB的操作。Hybris里对数据库的访问实现是封装在大量以DAO(DataAccessObject)结尾的Javaclass实现的,相当于SAPCRMAPI层的那些functionmo

  • 过往Net,皆为调参?一篇BagNet论文引发学界震动

    选自blog.evjang作者:EricJang机器之心编译近日,一篇有关BagNet的ICLR2019论文得到了机器学习社区的广泛关注,来自德国图宾根大学的研究者们发现基于小型局部图像特征分类的简单模型可以在ImageNet上实现惊人的高准确率。论文作者认为,这表明过去几年DNN的进步大部分是通过调参取得的。这篇论文真的指出了皇帝的新装?让我们来看看有关它的详细解读。论文概述深度卷积网络(CNN)通过学习卷积核权重汇集局部特征,然后进行空间上的池化就能抽取出图像的深层语义特征。而我们可以将这些卷积运算的连续使用视为抽取「层次化的特征」,每一个卷积层都在广泛的特征空间内聚集低层语义信息,并在这基础上生成更高级的信息。至于算法的最优解,关注深度学习的研究者都相信目前深度卷积网络能聚集全局信息,并最终提取出最有用的高级信息。但是有另一种观点认为,真正的智能视觉理解需要「看到森林的同时关注具体的树木」。在这篇BagNet论文中,作者发现对于ImageNet分类任务,BagNet(86%Top-5准确率)相比于传统的深度AlexNet(84.7%Top-5准确率)能获得更好的效果。BagNet

  • 币聪:Modum(MOD)有哪些优势可以让Hodling持有十年?

    加密货币为世界提供了货币分配民主化的机会。加密世界中的许多项目都显示出未来价值上升的希望。然而,一些项目在未来几年将脱颖而出,产生多重回报。很难预测这些将会是什么,但是对具有承诺的项目有很好的洞察力可以帮助更准确地预测。本文中“长期”的定义是10年甚至更长。虽然当整个加密世界仍在寻求全球验证时,价格肯定会在短期内保持波动,但未来可能会更加稳定,特别是当加密现实被机构和普通人所接受时。一个看起来很有前途的区块链项目是Modum。免责声明:此分析并非旨在提供财务建议-而是一篇旨在启发和教育的意见文章。投资前一定要做自己的研究。什么是Modum?Modum是一种供应链解决方案,它使用区块链和物联网(IoT)技术为公司提供更好,更具成本效益的方式来保证其商品的运输条件。这特别适用于必须在特定条件下运输其产品并证明这些条件未被违反的制药公司。Modum有一个硬件组件和一个软件接口。ModumIoT传感器设备称为MODsenseTM温度记录仪。它可以对大批量的药品进行可靠的温度监控。它还记录其他事件,例如运动。Modum仪表板和移动应用程序可轻松与设备进行交互,并提供温度变化的即时通知。客户仪表板

  • Less 极简教程: Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。Less 文件转换为 c

    Less文件转换为css文件Less是一门CSS预处理语言,它扩充了CSS语言,增加了诸如变量、混合(mixin)、函数等功能,让CSS更易维护、方便制作主题、扩充。本文主要介绍less文件如何转化为css文件。1.首先,你要确认你的电脑已经安装了node。2.然后,进入需要转换的less文件的目标位置。3.最后,你只需输入以下两条命令:npminstall-gless lesscless文件名.less生成的css文件名.css复制此时再看你的文件夹,是不是已经有了对应的css文件了呢~LESS语法LESS做为CSS的一种形式的扩展,它并没有阉割CSS的功能,而是在现有的CSS语法上,添加了很多额外的功能,所以学习LESS是一件轻而易举的事情,果断学习之!变量很容易理解:@nice-blue:#5B83AD; @light-blue:@nice-blue+#111; #header{color:@light-blue;}复制输出:#header{color:#6c94be;}复制甚至可以用变量名定义为变量:@fnord:"Iamfnord."; @var:&#

  • 容器技术百花齐放的时代,都有哪些标准化内容

    摘要本次演讲主要是Container标准化相关的内容,希望通过这场分享能让更多的人了解容器标准化,对容器感兴趣的话可以加入OCI的社区中。视频内容BasicKnowledge容器技术在最近几年都是一个非常热门的话题,目前越来越多的公司都提出基于容器的解决方案。我个人认为容器是一个系统级轻量化的虚拟化技术。从字面上来说,容器是提供了一个资源隔离的空间。容器技术和虚拟机技术相比,有一个很明显的天生优势,就是资源的节省。由于没有GuestOS,容器比虚拟机的启动速度更快,同时占用的资源更少。但是根据我们对容器技术的了解,它并不是一个新技术,它有一个很长的历史。如图可见,容器技术最早可以追溯到1979年很古老的chroot,但它一直没有像最近几年一样火爆起来。引领这一潮流的原因主要是2013年出现的Docker技术。 Docker为什么带动了容器技术的火爆呢?以前的容器技术并不适合在不同主机、不同平台的迁移,同时使用起来也不是那么方便,而Docker解决了这个问题。Theproblem随着越来越多的公司参与,每个厂商都提出自己的容器技术或容器解决方案,导致像热门的Docker、Rocket/r

  • 被AI改变的风投模式:数据驱动使效率提高10倍

    李杉编译自FinancialTimes 量子位出品|公众号QbitAI赶在其他人之前找到有趣的投资目标,是风险投资公司面临的最大挑战之一。好消息是,机器学习和预测分析正逐步改变投资者构建投资组合的方式。“我的工作是每周坐一次飞机去不同的欧洲城市,找到那些从事有趣事情的人。”IReachVentures联合创始人RobertoBonanzinga说,他之前曾经在英国风险投资公司BaldeertonCapital担任合伙人,主要投资早期的欧洲科技公司。△RobertoBonanzinga这种做法效率很低。“我每天看50家公司,大概每月1500家,其中100家可能进入下一阶段。我们每月会做一笔交易。”Bonanzinga表示,通常情况下,有前景的公司并不会高调寻找资金。除非创业公司的创始人人脉很广,或者身处伦敦或硅谷这样的科技中心,否则投资者几乎没有机会发现它们。如果将互联网数据和机器学习结合起来,是不是能更好地寻找好公司呢?InReachVentures花了两年时间和500万英镑开发了这款软件,可以抓取9.5万家欧洲创业公司,从中选出2000家可能感兴趣的公司。这个软件的决策依据是这些创业

  • AngularJS1学习-常用指令(三)

    1.控制器  2.$scope 3.点击事件   1<script> 2varapp=angular.module('myApp',[]);//定义了一个叫myApp的模块 3//定义控制器 4app.controller('myController',function($scope){ 5//定义了一个add方法 6$scope.add=function(){ 7//定义了一个z变量 8$scope.z=parseInt($scope.x)+parseInt($scope.y); 9} 10}) 11</script> 12 13<bodyng-app="myApp"ng-controller="myController"> 14x:<inputng-model="x"> 15y:<inputng-model="y"> 16<buttonng-click="add()">运算</button> 17结果:{{z}} 18 19</body>复制  

  • 图解简单C程序的运行时结构【转载】

    程序在内存中的存储分为三个区域,分别是动态数据区、静态数据区和代码区。函数存储在代码区,全局变量以及静态变量存储在静态数据区,而在程序执行的时候才会在动态数据区产生数据。程序执行的本质就是代码区的指令不断执行,驱使动态数据区和静态数据区产生数据变化。 代码区与动态数据区由三个寄存器控制,分别是eip、ebp和esp。eip指向代码区下一个要执行的指令,ebp与esp分别指向动态数据区的栈底和栈顶。初始情况下eip默认指向main函数的第一条指令,esp、ebp指向的位置由程序加载时内核的设置决定。 我们看一下这段代码如何执行的,在执行第一条指令时,考虑到函数调用的问题,ebp会先把当前指向的地址记录到栈中,方便以后返回来继续执行。把地址压进栈时,esp就会自动往栈顶方向移动。说到这里,为避免混淆先科普一下什么是栈顶和栈底,栈只允许在一端做插入和删除操作,这一端就叫栈顶,而另一端叫做栈底,图中下方叫栈顶,上方叫栈底。esp永远在栈顶,也就是图的最下方。 由于esp指向的地址已经被记录,那么它就被空闲出来了。现在我们开始构建main函数的栈,空闲的esp帮忙看着main函数的栈底。这

  • Xcode 插件优缺点对照(推荐 20 款插件)

    Xcode插件优缺点对照(推荐20款插件) 2016-01-2206:16 编辑: lansekuangtu 分类:iOS开发 来源:董铂然 的博客 28 13527 XCode插件 招聘信息: Android高级开发project师(中国排名第一的企业级移动互联网云计算公司和创科技 红圈营销)iOS高级开发project师(中国排名第一的企业级移动互联网云计算公司和创科技 红圈营销)iOSproject师wp开发iOS软件project师手游JAVAserver端主程cocos2dx手游client主程iOS开发project师iOS研发project师菜鸟快递员SDK岗位(iOS/Android)交互设计师(UE/产品)   作者:董铂然 授权本站转载。 本文大致整理了自己用过的一些插件的使用感想(就是好不好用)。在那之前先简单贴两条插件须知。知道的能够忽略。 1、Alcatraz 类似于管理第三方库的cocoapods,管理插件也有个Alcatraz。  安装的

  • Pyinstaller打包

    pyinstaller是一个非常简单的打包python的py文件的库, 把py文件打包成exe文件,方便给小白执行程序。   官网介绍http://www.pyinstaller.org/ 安装  pipinstallpyinstaller复制 使用PyInstaller生成exe文件 Pyinstaller-F-w-itk_down.icotest_gui.py复制 其中tk_down.ico为图标文件 -F表示生成单个可执行文件 -w表示去掉控制台窗口,这在GUI界面时非常有用。 -i表示可执行文件的图标   举例: (v1)C:\Users\spyider>Pyinstaller-F-w-itk_down.icotest_gui.py 1788INFO:PyInstaller:4.5.1 1789INFO:Python:3.6.4(conda) 1790INFO:Platform:Windows-7-6.1.7601-SP1 1792INFO:wroteC:\Users\china\pord_spyider\test_gui.spe

  • SDL

    1.SDL简介   1.1。什么是SDL? SimpleDirectMediaLayer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。视频播放软件,仿真器以及包括Valve屡获殊荣的目录和许多HumbleBundle游戏在内的流行游戏都使用它。 SDL正式支持Windows,MacOSX,Linux,iOS和Android。在源代码中可以找到对其他平台的支持。 有关受支持内容的最新信息,请参阅“安装”页面。 SDL用C编写,可与C++一起使用,并且有绑定可用于其他几种语言,包括C#和Python。 有关语言的最新列表,请参见http://www.libsdl.org/languages.php SDL2.0在zlib许可下分发。该许可证允许您在任何软件中自由使用SDL。简单DirectMedia层库(SDL)是一个通用API,可通过OpenGL和跨多个平台的2D帧缓冲区提供对音频,键盘,鼠标,操纵杆,3D硬件的低级访问。   1.2。SDL可以做什么? 预先阅读以概述SDL的功能。如果您

  • 【meet in the mid】【qbxt2019csp刷题班day1C】birthday

    Description 给定一个长度为\(n\)序列,值域为\([1,v]\),每次选择一段区间,要求在这个区间上选择一些元素加入到两个集合中,每个元素要么不选要么只能加入一个集合,要求两个集合非空且元素和相等,问能否实现。 同时要求区间修改元素为自身的立方对\(v\)取模的结果。 Limatations \(1\leqn\leq10^5\),\(1\leqv\leq1000\) Solution 考虑一段长度为\(len\)的区间,考虑每个点有选入集合和不选入集合两种可能,所以所有选择的种数一共有\(2^{len}\)种。考虑由于值域为\(v\),所以可能出现的权值和一共有\(len\timesv\)种。考虑当\(2^{len}>len\timesv\)时,一定至少有两个不同的选择得到了相同的权值。考虑这两个选择可能会选择相同的元素,那么直接将这些相同的元素都去掉,由于去掉的元素相同,最终得到的权值和依然是相同的,并且两个集合无交。因此这种情况一定能实现。 解方程 \[2^{len}>len\timesv \]两侧同时取\(\log\),整理得 \[len-\loglen

  • markdown测试

    标题1 标题2 标题3 标题4 标题5 标题6 加粗倾斜code删除\(a_i\)markdown教程[1] 无序1 无序2 无序3 有序1 有序2 有序 引用 //multilinecode importpython print('helloworld') 复制 \[e^{\pii}+1=0 \] 第一段 第二段第一行 第二段第二行 第一列 第二列 第三列 第一行 第二行 第三行 完成 没完成 https://markdown.com.cn/↩︎

  • 20181016-10 每周例行报告

    此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2253 一、本周PSP 类型 任务 开始时间 结束时间 中断时间(分钟) Delta时间(分钟) 小组会议 分配Alpha阶段任务 2018.10.17 17:01 2018.10.17 17:26 0 25 学习 学习小程序开发 2018.10.17 18:02 2018.10.17 21:11 25 164 小组会议 功能细化与数据库设计 2018.10.18 16:58 2018.10.18 17:33 0 35 学习 学习知晓云 2018.10.18 18:43 2018.10.18 20:22 13 86 小组会议 原型开发与案例学习 2018.10.19 17:01 2018.10.19 17:23 0 22 博客 Scrum立会报告+燃尽图(十月十九日总第十次) 2

相关推荐

推荐阅读