Giter VIP home page Giter VIP logo

Comments (9)

onion1003 avatar onion1003 commented on May 14, 2024 2

@refraction-ray
我写了代码试过,这样算出来和支付宝上的持有成本是一样的。您在xalpha中实现的持有成本计算方法会导致经常成本就变为了负值,在画 “持仓成本折线图” 的时候经常会出现非常大的突变,导致 “持仓成本” 和 “基金净值” 这两者因为坐标轴的比例不一致没法很好的显示在一张图上。
比如下图就没有办法正常显示:
异常

去掉 “持仓成本” 就能正常显示啦:
正常

修改成支付宝的持仓成本计算方法后:
修改后持仓成本

from xalpha.

refraction-ray avatar refraction-ray commented on May 14, 2024

我不太确定支付宝是怎么计算的,xalpha 的话最准的还是用 xirr 直接计算年化收益率。事实上没有一个可以定义的收益率指标,因为分子分母没办法定义,特别是在不断申购赎回的情况下。这也是为什么大多数金融 app 显示的持有收益率可能很奇怪的原因。 xalpha 收益率分子是全部盈利,分母是历史最大占用,这只是可能的收益率定义之一了。但收益率年化由于可以用 xirr,是具有良好定义的。也就是说,收益,收益率,收益率年化三个指标中,收益率其实没有定义,是一个伪概念。但用户都很喜欢用这个概念,因此就能看到不同 app 给出的持有收益率的乱象。我最初写 xalpha 的目的,就是先算清楚自己操作的收益率年化,那些 app 的收益数据,持仓成本之类的大多不怎么靠谱。

from xalpha.

kaharjan avatar kaharjan commented on May 14, 2024

哦,哦,明白,谢谢!

from xalpha.

kaharjan avatar kaharjan commented on May 14, 2024

对了,我在问一下,支付宝里面的持仓成本怎么计算知道吗?还是答案是和上述一样?谢谢!

from xalpha.

refraction-ray avatar refraction-ray commented on May 14, 2024

持仓成本根据我的经验也是和 xalpha 不一样的。xalpha 的处理是把利润全部扣除算的成本,也就是说只有标的价格跌到你的持仓成本,你就恰好不赚不亏(时间损失和成本不考虑)。感觉上支付宝的持仓成本好像是你买入价格的平均,卖出是不影响成本的。也就是 xalpha 持仓成本:(买入总额-卖出总额)/ 现在持有份额,支付宝持仓成本:买入总额/当时买入份额。

from xalpha.

onion1003 avatar onion1003 commented on May 14, 2024

支付宝的持仓成本其实并不是 “买入总额/当时买入份额”,而且持仓成本会受到卖出份额的影响。
举个例子:
净值:1 元,买入:100 元,份额:100 份,成本:100/100 = 1元。持有份额:100 份。
净值:1.5 元,卖出:100 份。持有份额:0 份
净值:2 元,买入 :100 元,份额:50 份,成本 :100/50 = 2 元,并不是 (100+100)/(100+50) = 1.33 元。

from xalpha.

refraction-ray avatar refraction-ray commented on May 14, 2024

@onion1003 感谢回复。不知道您举的例子是有实际验证还是支付宝哪里阐述了他们的计算方法。不过按您的描述也是没啥问题的。相当于第二次的卖出操作已经把这个标的清仓了。之后的买入计算就和历史完全无关了,很多券商软件也是这么算的。虽然我不太喜欢这种算法,xalpha 实现的则是永远考虑历史交易数据,即使中间清仓过。

from xalpha.

refraction-ray avatar refraction-ray commented on May 14, 2024

@onion1003 , 我没太懂上边这个例子里,为啥现在的算法会有 1000 多的成本值,有负数的成本我是清楚的,也符合我想表达的预期。但是这个 1000 多的成本是什么原因呢,是因为亏损的状态卖出了极大部分份额导致的情况吗?

xalpha 这种卖出(非清仓)操作会影响成本计算的方法,可能确实波动会比较大,有可能的话我们也可以在代码里考虑实现多种成本计算方案,就像你上边展示的这样。

from xalpha.

onion1003 avatar onion1003 commented on May 14, 2024

@refraction-ray 1000多成本的出现,确实是像你说的这种情况。我把账单贴在这里,可以用来复现。

date,720001
20181225,500
20190118,-342.42
20190225,1000
20190329,-518.43
20190506,2000
20190725,-651.47
20190731,-260.59
20190803,-250
20190822,1000
20190822,1000
20190905,-454
20191009,250
20191014,250
20191021,100
20191112,300
20191126,200
20200203,500
20200204,300
20200227,1000
20200228,1000
20200317,500
20200603,-396.85
20200612,-595.27
20200716,-297.63
20210210,-60

支付宝的持仓成本计算方法,我也贴在这里啦。

def calculate_today_unitcost(df):
    cash = df['cash'].values
    share = df['share'].values
    unitcost = [None for i in range(len(cash))]
    for i, (c, s) in enumerate(zip(cash, share)):
        if i == 0:
            unitcost[i] = -cash[i]/share[i]
        else:
            previous_holding_share = df.iloc[:i,:]['share'].sum()
            holding_share = df.iloc[:i+1,:]['share'].sum()

            if share[i] < 0:
                unitcost[i] = unitcost[i-1]
            else:
                unitcost[i] = round((previous_holding_share*unitcost[i-1]-cash[i])/holding_share,4)

    df['unitcost'] = unitcost
    return df

from xalpha.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.