标签: quantitative-finance

如何在自定义zipline包中使用自定义日历?

我的viacsv.py文件中有以下代码,旨在允许自定义捆绑包被摄取:

#
# Ingest stock csv files to create a zipline data bundle

import os

import numpy  as np
import pandas as pd
import datetime

boDebug=True # Set True to get trace messages

from zipline.utils.cli import maybe_show_progress

def viacsv(symbols,start=None,end=None):

    # strict this in memory so that we can reiterate over it.
    # (Because it could be a generator and they live only once)
    tuSymbols = tuple(symbols)

    if boDebug:
        print "entering viacsv.  tuSymbols=",tuSymbols

    # Define our custom ingest function
    def ingest(environ, …
Run Code Online (Sandbox Code Playgroud)

python calendar quantitative-finance zipline

3
推荐指数
1
解决办法
1612
查看次数

计算红宝石的IRR

任何人都可以帮我一个计算一系列股票交易的内部收益率的方法吗?

让我们说场景是:

$10,000 of stock #1 purchased 1/1 and sold 1/7 for $11,000 (+10%)
$20,000 of stock #2 purchased 1/1 and sold 1/20 for $21,000 (+5%)
$15,000 of stock #3 purchased on 1/5 and sold 1/18 for $14,000 (-6.7%)
Run Code Online (Sandbox Code Playgroud)

这应该是有用的:http://www.rubyquiz.com/quiz156.html

但我无法弄清楚如何调整任何解决方案,因为他们假设每次回报的时间段都是一致的时期(1年).

ruby finance stocks quantitative-finance

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

如何回顾Pandas数据帧函数调用中的前几行?

我正在研究/回测交易系统.

我有一个包含OHLC数据的Pandas数据框,并添加了几个计算列,用于识别我将用作启动头寸信号的价格模式.

我现在想添加一个能够跟踪当前净头寸的列.我已经尝试使用df.apply(),但是将数据帧本身作为参数而不是行对象传递,因为后者我似乎无法回顾之前的行以确定它们是否导致任何价格模式:

open_campaigns = []
Campaign = namedtuple('Campaign', 'open position stop')

def calc_position(df):
  # sum of current positions + any new positions

  if entered_long(df):
    open_campaigns.add(
        Campaign(
            calc_long_open(df.High.shift(1)), 
            calc_position_size(df), 
            calc_long_isl(df)
        )
    )

  return sum(campaign.position for campaign in open_campaigns)

def entered_long(df):
  return buy_pattern(df) & (df.High > df.High.shift(1))

df["Position"] = df.apply(lambda row: calc_position(df), axis=1)
Run Code Online (Sandbox Code Playgroud)

但是,这会返回以下错误:

ValueError: ('The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()', u'occurred at index 1997-07-16 08:00:00')
Run Code Online (Sandbox Code Playgroud)

滚动窗口函数似乎很自然,但据我所知,它们只作用于单个时间序列或列,因此无法工作,因为我需要在多个时间点访问多列的值.

我该怎么做呢?

python algorithmic-trading quantitative-finance dataframe pandas

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

对于给定的收益分布,计算风险价值或"最可能的损失"

鉴于历史日收益率,我如何计算单个股票头寸的投资组合分配,基于21天内不会损失超过起始投资组合价值的10%?(95%的信心.)

基于例如的一些起始代码

import numpy as np
from scipy.stats import norm

returns = [-0.01, -0.02, -0.01, 0.04, 0.02, 0.01, -0.03]
mu = np.mean(returns)
std = np.std(returns)
valueAtRisk = norm.ppf(0.05, mu, sigma)
Run Code Online (Sandbox Code Playgroud)

但是,以上仅告诉我1天的风险.我的问题是另一个方向; 假设我不想在21天内损失超过10%,我可以根据回报的分配分配什么.

我更喜欢可以直接计算的答案,但蒙特卡罗的答案是可以接受的.

感谢您的帮助.

python statistics scipy quantitative-finance pandas

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

有可能在python中获得月度历史股票价格吗?

我知道使用熊猫这是你通常获得每日股票报价的方式.但我想知道是否有可能获得每月或每周报价,是否可能有一个参数我可以通过获得月度报价?

    from pandas.io.data import DataReader
    from datetime import datetime

    ibm = DataReader('IBM',  'yahoo', datetime(2000,1,1), datetime(2012,1,1))
    print(ibm['Adj Close'])
Run Code Online (Sandbox Code Playgroud)

python quantitative-finance pandas

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

计算朱莉娅的内部收益率

我可以使用计算NPV

tvmnpv(i,cfo,cfall)=begin
n=collect(1:length(cfall));
cfo + sum(cfall./(1+i).^n)
end
Run Code Online (Sandbox Code Playgroud)

cfot = 0时的初始现金流量在哪里,cfall表示以下现金流量,i是使用的贴现率.

但是,鉴于现金流量,我无法找到计算内部收益率的方法.我相信excel使用一个滚动可能值的函数,直到找到cfo加上折扣后的现金流等于零的值.谁能指出我正确的方向?

期望输出的示例如下:

cfo=[-100];cfall=[30,30,30,30]

Out: 0.07713847

因此,内部收益率为7.713847%.

谢谢您的帮助.

quantitative-finance julia

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

在JavaScript中将数据转换为OHLC(开放,高,低,关闭)?

类似于使用C#从日期,时间,价格创建OHLC数据,如何将基本贸易数据转换为OHLC(或开放,高,低,关闭)并将其应用于此独特案例?

var data = [{
    "tid": 283945,
    "date": 1384934366,
    "amount": "0.08180000",
    "price": "501.30"
}, {
    "tid": 283947,
    "date": 1384934066,
    "amount": "0.06110000",
    "price": "490.66"
},
...
];

function convertToOHLC(data) {
    // What goes here?
}
convertToOHLC(data);
Run Code Online (Sandbox Code Playgroud)

这是小提琴:https://jsfiddle.net/5dfjhnLw/

javascript charts finance quantitative-finance d3.js

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

将html表转换为pandas数据帧

我一直在尝试从网站导入一个html表并将其转换为熊猫DataFrame.这是我的代码:

import pandas as pd
table = pd.read_html("http://www.sharesansar.com/c/today-share-price.html")
dfs = pd.DataFrame(data = table)
print dfs 
Run Code Online (Sandbox Code Playgroud)

它只显示这个:

0       S.No                                     ...
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做;

for df in dfs:
    print df
Run Code Online (Sandbox Code Playgroud)

它输出表..

我怎样才能使用pd.Dataframe刮表?

python quantitative-finance pandas

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

如何在 Python 中使用 Returns 计算 MaximumDrawdown

我有 DataFramefinal与我的投资组合的回报。我正在尝试使用回报来计算 MaxDrawdown。我已经尝试了下面的代码,确实看到了很多 stackexchange 问题。但无法解决这个问题。有没有办法使用投资组合的回报来计算最大回撤。

              Returns
1/2/2009     0.030483579
1/5/2009     0.002872092
1/6/2009     0.01461333
1/7/2009    -0.032431836
1/8/2009     0.0055774
1/9/2009    -0.019844336
1/12/2009   -0.019705618
1/13/2009    0.001093185
1/14/2009   -0.032726765
1/15/2009    0.013635182
1/16/2009    0.009807648
1/20/2009   -0.044440252
1/21/2009    0.035156229
1/22/2009   -0.01460641
1/23/2009    0.007399468
1/26/2009    0.007910521
1/27/2009    0.007848472
1/28/2009    0.028944903
1/29/2009   -0.023816962
1/30/2009   -0.02550717
2/2/2009    -0.000292223
2/3/2009     0.020191091
2/4/2009    -7.93651E-06
2/5/2009     0.020070065
2/6/2009     0.026235957
2/9/2009    -0.001606124
2/10/2009   -0.03629415
2/11/2009    0.00248416
2/12/2009    0.001925152
2/13/2009   -0.00441840
Run Code Online (Sandbox Code Playgroud)

代码:

cum_returns = (1 + final).cumprod()
drawdown =  1 - final.div(final.cummax())
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题。谢谢!

python finance quantitative-finance pandas

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

如何计算 Pandas 中滚动窗口的累积乘积?

我有一个 DataFrame,df每日股票收益如下:

Date         Stock A    Stock B     Stock C
2018-12-26  -0.018207   0.083554   -0.006546
2018-12-27   0.004223   0.000698    0.003806
2018-12-28   0.024847  -0.008717    0.028399
2018-12-31   0.000000   0.010904    0.000000
2019-01-02   0.036554   0.002436    0.035557
2019-01-03   0.043541  -0.028462    0.006065
2019-01-04  -0.036207   0.070025    0.003025
2019-01-07  -0.005367   0.046411   -0.001546
2019-01-08   0.002878   0.014678    0.003631
2019-01-09   0.004663   0.014151    0.017179
2019-01-10   0.009282   0.026047    0.002062
2019-01-11   0.021224  -0.006649   -0.001578
2019-01-14   0.022168  -0.015211    0.008713
2019-01-15  -0.009827   0.020080   -0.004424
2019-01-16   0.021561  -0.016657    0.003583
2019-01-17   0.005025   0.011703    0.010149
2019-01-18   0.013333   0.012785    0.007824
2019-01-21 …
Run Code Online (Sandbox Code Playgroud)

python quantitative-finance pandas

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