草庐IT

期权量化

全部标签

python - 矢量化代码与 numpy 中标准循环的不同结果

我有以下两个功能:defloop(x):a=np.zeros(10)fori1inrange(10):fori2inrange(10):a[i1]+=np.sin(x[i2]-x[i1])returna和defvectorized(x):b=np.zeros(10)fori1inrange(10):b+=np.sin(np.roll(x,i1)-x)returnb但是,当我运行两者时,我发现它们的结果略有不同:x=np.arange(10)a,b=loop(x),vectorized(x)printb-a我得到:[2.22044605e-160.00000000e+000.000000

python - 有没有一种矢量化的方法来计算 sympy 中的梯度?

如何在sympy中计算多元函数的(符号)梯度?显然我可以分别计算每个变量的导数,但是是否有矢量化运算可以做到这一点?例如m=sympy.Matrix(sympy.symbols('abcd'))现在对于i=0..3我可以这样做:sympy.diff(np.sum(m*m.T),m[i])这会起作用,但我宁愿做类似的事情:sympy.diff(np.sum(m*m.T),m)这不起作用(“AttributeError:ImmutableMatrix没有属性_diff_wrt”)。 最佳答案 只需对m使用列表理解:[sympy.diff

python - 如何向量化包含 if 语句的函数?

假设我们有以下函数:deff(x,y):ify==0:return0returnx/y这适用于标量值。不幸的是,当我尝试对x和y使用numpy数组时,比较y==0被视为导致错误的数组操作:---------------------------------------------------------------------------ValueErrorTraceback(mostrecentcalllast)in()---->1f(np.arange(1,10),np.arange(10,20))inf(x,y)1deff(x,y):---->2ify==0:3return04re

python - 量化随机性

我想出了2种方法来生成相对较短的随机字符串-一种更快更简单,另一种更慢,但我认为更随机。是否有一种不太复杂的方法或方式来衡量每种方法的数据如何可能是随机的?我已经尝试压缩输出字符串(通过zlib),发现数据越真正随机,压缩的就越少,但这并没有证明什么。 最佳答案 您正在使用标准压缩作为无法计算的代理KolmogorovComplexity,这是量化随机性的“正确”数学框架(但不幸的是,它不可计算)。您也可以尝试使用entropy的一些方法如果您愿意对字符串进行某种分布。 关于python

python - 如何找到系列中的异常值,矢量化?

我有一个pandas.Series的正数。我需要找到“异常值”的索引,其值与之前的“规范”相差3或更多。如何向量化这个函数:defbaseline(s):values=[]indexes=[]last_valid=s.iloc[0]foridx,valins.iteritems():ifabs(val-last_valid)>=3:values.append(val)indexes.append(idx)else:last_valid=valreturnpd.Series(values,index=indexes)例如,如果输入是:importpandasaspds=pd.Series

python - numpy 中二维数组上的矢量化移动窗口

我正在对二维数组中大小不变的移动窗口应用操作。是否有一种有效的类似矢量化的操作,我可以实现它而无需在Python中循环?我当前的结构看起来像这样foriinrange(1,xmax-1):forjinrange(1,ymax-1):out[i][j]=f(in[i][j],in[i+1][j],in[i-1][j],in[i][j+1],in[i][j-1],...)eat在这个问题中留下的评论暗示了将此操作向量化的可能性,但没有进一步的细节vectorizedindexing/slicinginnumpy/scipy? 最佳答案

多种期权知识点介绍与损益结构模拟

多种期权知识点介绍与损益结构模拟前言一:期权基础知识介绍二:期权定价理论简介期权定价要素三:普通香草期权的payoff组合四:障碍奇异期权的payoff五:总结前言期权是人们为了规避市场风险而创造出来的一种金融衍生工具(属于衍生品投资),理论和实践辨明,只要投资者合理地选择其手中证券和相应的衍生物比例,就可以获得无风险收益。期权这一类衍生品定价规则从上世纪70年代诞生出,为金融衍生市场提供了更大的繁荣与保证。本篇文章将先介绍些期权的各种基本知识,剩下主要是学习下多种期权的payoff知识以及模拟它们的过程。一:期权基础知识介绍期权定义1:买入期权:又称看涨期权(敲入期权),它是赋予期权持有者在

【从零开始玩量化11】夏普比率(与信息比率的区别)

上篇文章写了信息比率,这篇文章解释下夏普比率。定义这次不用聚宽的定义了,用维基百科的更加精准。先回顾一下,信息比率的定义:在看一下夏普比率的定义:细心的朋友们可能已经发现了,感觉没啥区别啊!对,计算方法其实没区别,那区别是啥,区别就是Rb。我们再来回顾下符号的定义信息比率公式中IR:信息比率的符号E:均值符号Rp:资产组合收益率(一个变量,每天会出现不同的值)Rb:基准的收益率(一个变量,每天会出现不同的值,A股通常用沪深300)σ:Rp-Rb的标准差var:方差符号(方法开根号就是标准差)再看夏普比率的公式,只有细微区别1、用Ra代替Rp表示资产组合的收益率(这里并不一定非是资产组合,单一资

python - 通过用向量化替换 lambda x 来增强排序函数的性能

我有一个排名函数,我将它应用于需要几分钟才能运行的数百万行的大量列。通过删除为.rank(的应用程序准备数据的所有逻辑方法,即通过这样做:ranked=df[['period_id','sector_name']+to_rank].groupby(['period_id','sector_name']).transform(lambdax:(x.rank(ascending=True)-1)*100/len(x))我设法将其缩短到几秒钟。但是,我需要保留我的逻辑,并且正在努力重组我的代码:最终,最大的瓶颈是我对lambdax:的双重使用,但显然其他方面正在减慢速度(见下文)。我提供了一

python - 使用 python 中的矢量化解决方案计算最大绘制

MaximumDrawdown是量化金融中常用的风险指标,用于评估所经历的最大负返回。最近,我对使用循环方法计算最大回撤的时间变得不耐烦了。defmax_dd_loop(returns):"""returnsisassumedtobeapandasseries"""max_so_far=Nonestart,end=None,Noner=returns.add(1).cumprod()forr_startinr.index:forr_endinr.index:ifr_start我熟悉矢量化解决方案会更好的普遍看法。问题是:我可以向量化这个问题吗?这个解决方案是什么样的?它有多大好处?编辑