问题标签 [quantitative-finance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
192 浏览

r - 基于向量 a 的值对向量 b 中除第一个相同/重复值之外的所有值进行向量化更改

我正在尝试找到基于向量 a 的值更新向量 b 值的向量化解决方案。我遇到的问题是:

任何有关如何以矢量化方式执行此操作的帮助/提示都非常感谢。

我尝试了使用 rle、cumsum、diff、...的“标准”方法

编辑:根据大卫要求更清楚地了解我想要做什么,我将详细解释这个问题。

我正在构建简化的交易回测功能(因为 quantstrat 对于我的需要来说太复杂且速度太慢了)。

当我在上面得到一个值为 1(做多)或 -1(做空)的进入信号向量 a 时,就会出现上面的问题(在消息的顶部)。在进入信号之后,可能会发生三件事(保存在向量 b 中):
- 达到时间止损(在一天结束时退出,如果多头,则 b==-1,如果空头,则 b==1),
- 达到利润目标(再次 b==-1, b==1) 或
- 触发止损 (再次 b==-1, b==1)。

所以向量 b 代表每次入场后可能的事件/退出(没有重叠的交易 - 一个在进入另一个之前关闭)。有时交易直接对我有利,我们立即达到了利润目标。伟大的。有时我们在达到利润目标之前就停止了。有时既没有达到止损,我们也没有在一天结束时达到利润目标,所以,我们只剩下一天结束。

我需要在进入后删除除第一个退出事件之外的所有事件(a==1 或 a==-1)。由于并非所有都可以/将会发生,所以只有第一个(从时间角度来看)应该保留,我应该删除后续的。

让我举个例子。我们在 9:31 进入多头交易(在第一分钟常规交易时间栏收盘时)。所以 a 变成:

我们总是在最后一分钟柱(时间停止)结束时退出,因此我们将最后可能的退出添加到 b:

我们还知道(在回测中)我们的利润目标在 9:35 柱收盘时已经达到,所以我们将此事实添加到 b (b[5] <- -1):

而且,我们还知道(在回测中)停止将在 9:33 触发,因此我们将其添加到 b (b[3] <- -1) 现在变为:

因此,由于我的利润目标永远不会达到(之前已达到止损)并且我们不会在收市时进行交易,我应该设置 b[5] <- 0 和 b[length(b)] <- 0 。因此,在进入 (a==1) 后删除 b 中除第一个退出触发器之外的所有触发器。b 应该变成:

我需要在过去的几千天里处理这个......

我希望这能澄清我正在尝试做的事情。

0 投票
1 回答
512 浏览

options - 布莱克斯科尔斯期权定价

我正在研究如何创建一个非常简单的期权交易平台(不是为了盈利,而是为了学习)。有人可以解释一下如何在交易平台中使用 Black Scholes 期权定价的流程,以下是我的理解,如果我弄错了,请纠正我:

1) 根据 Black Scholes 公式导出的期权的记忆价格。

2) FIX 协议格式的期权的传入买单。

3) 交易平台将买入订单的价格与Black Scholes得出的价格进行比较,并据此决定买入。

如果我在任何地方弄错了,请纠正我提前谢谢

0 投票
1 回答
169 浏览

python - 计算当前记录之前 15 条记录的平均值作为新列

我有 1 分钟的股权数据如下;

我想添加一个额外的列。本专栏将:

  • 从此时起取 15 条记录(包括当前时间)
  • 从这 15 条记录中得到最大bidhigh和最小bidlow
  • 计算高低之差并在新列中使用该值

我尝试了以下。首先,我读入了数据。

定义一个函数:

然后

这个错误。我很确定地图中的 'df[:15]' 是问题所在,因为我不知道如何将当前和未来记录的一部分传递给函数

基本上我要做的是确定在 15 分钟的移动窗口内价格移动了多少,如下所示:

所以之间;16:00 - 16:15 - 价格变动了多少?将此放在 16:00 记录的列中

16:01 - 16:16 - 价格变动了多少?把它放在 16:01 记录的列中

16:02 - 16:17 - 价格变动了多少?将此放在 16:02 记录的列中

16:03 - 16:18 - 价格变动了多少?将此放在 16:03 记录的列中

16:04 - 16:19 - 价格变动了多少?把它放在 16:04 记录的列中

16:05 - 16:20 - 价格变动了多少?把它放在 16:05 记录的栏中


附加信息:

我正在为 Mac 使用 Enthought Canopy 版本 1.1.0(64 位)。Pandas 版本:版本:0.12.0-1(包含 numpy 1.7.1)

源数据样本:

作为旁注 - 记录的显示有些奇怪(我正在使用 ipython notebook )。即使我忽略了该'currencypair'列,它也奇怪地显示为列标题。(我将其包括在内,因为我不知道它是否与其他无法正常工作的事情有关。

导入数据(使用上面的 csv_read)(注意没有'currencypair'命名列)

然后做

显示:(请注意,它显示'currencypair'为列标题,但在df.info()下方仅显示为'index'

df.info()显示:

以另一种方式导入数据

导入然后移除货币对列;(注意添加'currencypair'然后删除列之后)

显示:

df.info()显示:(注意索引现在显示为'DatetimeIndex'

0 投票
1 回答
250 浏览

r - 从因子分析中导出/解释因子载荷

第一次尝试因子分析。我有一组数据代表标准普尔指数和其他 10 只股票的收盘价。当我对数据集(11 个变量)进行碎石测试时,我得到的特征值为 2,所以我运行因子数 =2 的事实p值非常低。所以我将因子的数量增加到 6,之后我遇到了数值问题。所以我认为我不应该拒绝因子数为 6 的假设。

现在假设我上面描述的是正确的方法,我如何推导出 6 个因子的因子载荷?感谢评论,我能够弄清楚因子载荷,但如何解释它们?

如您所见,由于某些因素,住宿是空的。

这些是值:

0 投票
1 回答
3095 浏览

python - Python Networkx:向树/图中添加重复或相等的节点?

我正在使用 Networkx 中的有向图,我需要将其“拆分”为两部分。该图表示一个重组三叉树,在构建它之后,我需要对节点上的值进行一些计算。

我的问题是我正在开发一个应用程序,需要我检查一个节点并“拆分”树。我需要有重复的节点值,因为它们在图表上的位置对我来说很重要,而不是节点本身的值。注意:重命名节点(即,将节点 10 更改为 10a)是不可行的,因为我必须稍后使用这些数字进行计算。

举个例子:

我需要结束:

有没有办法在不重命名节点的情况下做到这一点???谢谢!

0 投票
1 回答
13569 浏览

r - 在 R 中应用 sigma 函数

我正在尝试在非人寿保险数学文本中使用的丹麦数据集的示例上复制图表。

我想从我的数据集中创建以下新变量,以便绘制图表。我最大的挑战是如何对 w 和 j 求和(sigma),因为我必须从两个值的最大值开始到两个值的最小值。我不知道如何在 R 中做到这一点。我想我还有很多东西要学习如何在 R 中进行操作。

如果一些方法能给我关于如何去做的有用提示,我将不胜感激。

下面是有问题的等式,我无法替换 sigma 符号,所以我使用了字面解释(总和)

0 投票
1 回答
670 浏览

r - 计算带有交易信号的金融时间序列的收益

我有一个财务时间序列data,我想根据一个序列计算Returns等。我的实际时间序列很大。我在这里给出一个玩具示例,以便我可以说出我需要的东西。这里是信号,是信号。我发起并持有交易头寸,直到收到相反的信号,然后反转头寸,依此类推。应该为每个数据点计算,以便可以绘制。Maximum Draw downsignal1buy-1sellReturnsEquity Curve

为此QuantmodPerformanceAnalytics我想到了。

任何帮助表示赞赏。

0 投票
3 回答
2738 浏览

r - R中的性能集群图

我发现这张来自《华尔街日报》的关于标准普尔 500 指数表现的图表非常吸引人:

http://s.wsj.net/public/resources/images/MI-CA398B_STOCK_G_20131230184809.jpg

我正在尝试在 R 中重新创建它,但我不知道如何最好地绘制数据,例如

有没有人知道如何重新创建它(例如使用ggplot2?)或者有没有人做过类似的情节?提前谢谢。

0 投票
1 回答
833 浏览

r - 混淆矩阵太大,其他解释 SVM 结果的方法?

我试图看看 R 和 SVM(e1071)有什么可能。但是混淆矩阵的结果太大而无法显示。

出于测试目的,我使用来自 Yahoo Finance 的Yahoo 股票数据集。
我的 R 命令集如下所示:

我的 SVM 模型的总结和预测是:

最后我想得到一个混淆矩阵来查看我的结果,但是矩阵太大了,我无法从中获取任何信息:

除了混淆矩阵之外,还有另一种查看预测值的方法吗?或者另一种缩小混淆矩阵以获得结果的方法?

0 投票
2 回答
707 浏览

python - 解决 PV 和“求和”FV 之间的复利?

给定输入:

我如何解决一个链的速率,它会创建一个总和为 FV 的链?这与仅求解 11 到 126 之间的回报率不同。这是求解允许总和为 126 的回报率。我一直在尝试不同的想法并查找 IRR 和 NPV 函数,但求和方面让我很困惑.

如果求和方面不清楚,如果我假设比率为 1.1,那会将 PV = 11 变成这样的列表(加起来几乎是 FV 126),我如何只知道 n 来求解 r,总和 fv 和 pv?:

总计 = 125.7947691

谢谢你。

编辑:我试图创建一种迭代器,但它在第一个循环之后挂起......

编辑2:

我收到一个 ValueError,我的字符串“1.10044876702”无法转换为浮点数。有任何想法吗?

已解决:i.real 得到了它的真实部分。无需拆分或字符串转换,即: