股票成本价计算公式

发布时间:2020-12-06   来源:文档文库   
字号:
算法相关表的主要字段说明
1)股票表算法相关字段说明( stock
字段名
STOCK_CODE CURRENT_AMOUNT 字段含义
股票代码 当前数量
SUM_BUY_AMOUNT SUM_BUY_BALANCE SUM_SELL_AMOUNT SUM_SELL_BALANCE COST_PRICE
累计买入数量 累计买入金额 累计卖出数量 累计卖出金额
成本价
2)股票变动表算法相关字段说明( stockreal
字段名
STOCK_CODE 字段含义
股票代码
ENTRUST_SELL_AMOUNT REAL_BUY_AMOUNT REAL_SELL_AMOUNT REAL_BUY_BALANCE REAL_SELL_BALANCE
委托卖出数量 回报买入数量 回报卖出数量 回报买入金额 回报卖出金额
成本和赢亏说明
成本价的算法目前共有三种,分别为买入均价、持仓成本、保本价、摊薄成 本价sp5新增,有关成本价的一些知识说明如下:
1 成本价计算模式支持到个人,即每个客户都可以通过“资金-帐户修改
-资产帐户修改”对成本价计算模式进行设置和调整
fundaccount.profit_flag)。如果客户的成本价类型(profit_flag)为空, 则取系统的成本价类型,即 1002开关设置的值。
2 后台每条股份记录(stock)都具有四个字段:sum_buy_amount累计买 入数量、
sum_buy_balance 累计买入金额、 sum_sell_amount 累计卖出数 量、
sum_sell_balance 累计卖出金额。 这四个字段对于计算累计买卖后的 成本价和盈亏金额非常有用,通常在日终清算时对这四个字段进行相关 处理。
3 当日发生交易,产生股份变动记录(stockreal),也具有四个字段:
real_buy_a mount成交买入数量、real_buy_bala nee成交买入金额、 real_sell_amount成交卖出数量、real_sell_balanee成交卖出金额。这四个 字段对寸于计算当日买卖后的成本价和盈亏金额非常有用,通常在回报成 交时对这四个字段进行相关处理。

4 每天股份记录同时还有一个成本价字段 cost_price,是日终清算时自动根
据买入均价计算得到的,对于成本类型为 0的客户,成本价直接取自该 字段。
5 系统后台本身不记录股份盈亏金额,查询的时候通过同一个算法(不论
当前客户是哪种成本价计算模式)计算出股份盈亏金额
in come_bala nee 6 当费用比率通过前台程序进行进行修改时,as上缓存的费用(支持设置
在内存数据库的那些表)会自动进行同步,不需要重启 置需要重启AS
AS。目前基准费
用设7 3107开关设置的多冻结的值,会对计算当天买入卖出的费用计算和盈亏
中的费用部分产生一定的但较小的影响。
成本价算法
类型0买入均价
成本价由日终来计算,白天实时成交买入和卖出不影响成本价,不考虑卖 出费用;
200708基线即是200709推出的sp6升级包前,cost_price 包含了买 入费用,以后不再包含买入费用。 【公 式】 后台
成本价I日终后处理时对成本价字段进行自动设置。 前台显示
成本价=后台股票表的成本价
cost_price = stock.cost_price 类型1持仓成本
成本价实时计算,考虑白天实时成交买入,但不考虑白天实时成交卖出; 该成本价包含了买入费用,但不考虑卖出费用。 【公 式】 后台
成本价I日终后处理时对成本价相关字段进行自动设置。 前台显示
成本价 =(累计买入金额+回报买入金额/ (累计买入数量+回报买入 数量
=(sum_buy_bala nee + real_buy_bala nee / (sum_buy_a moun t+ real_buy_a mount
类型2保本价
成本价实时计算,考虑白天实时成交买入和卖出,所以白天买入卖出均影 响成本价,同时该成本价包含了买入卖出费用;且采用步进算法,计算时 步长以1厘为单位。
【公 式】 后台
成本价 日终后处理时对成本价相关字段进行自动设置。
前台显示
1 成本价需要分步进行步进计算,首先得到一个不包含卖出费用的
成本价的起始值cost_price =(累计买入金额+回报买入金额一累计卖出金额一回报卖出金 / (累计买入数量+回报买入数量一累计卖出数量一回报卖出数
=(sum_buy_bala nce+real_buy_bala nce-sum_sell_bala nce-real_ sell_bala nee/ (sum_buy_a moun t+real_buy_a moun t-sum_sell_amou nt- real_sell_a moun t; 2计算卖出费用temp_fare,需根据4125配置不同进行计算: 41251,则为估算方式,费用比例取 4126设置 temp_fare = (curre nt_amount + real_buy_amou nt - real_sell_amount * last_price * 0.00000001 * 4126 的配置值 - cost_price= (sum_buy_bala nce+real_buy_bala nce-sum_s ell_bala nce-real_sell_bala nce/(1-0.00000001*4126 的配置值/(curre nt_amoun t+real_buy_a moun t- real_sell_am ount 4125 2,U为预算方式,费用比例取自后台设置的标准费用类别
计算得至U temp_fare
4125 0,则为实算方式,菽用比例取自后台设置的客户实际费用
类别计算得到temp_fare
3 按步长单位进行计算
女口果 temp_mis= (current_amount + real_buy_amount - real_sell_amount
* cost_price- (sum_buy_bala nce+real_buy_bala nce-sum_sell_bal an ce-real_sell_bala nee- temp_fare < 0 则按成本价步长1厘进行逼近计算,直到temp_mis>= 0.0000000000001,算结束,此时 cost_price 即为保本价。
类型3摊薄成本价sp5新增
成本价,考虑实时计算考虑白天实时成交买入和卖出,所以白天买入卖出
均影响成本价,与保本价区别在于不计算卖出费用。
成本价=(累计买入金额+回报买入金额一累计卖出金额一回报卖出金 额)/ (累计买入数量+回报买入数量一累计卖出数量一回报卖 出数量)
sum_buy_bala nce+real_buy_bala nce-sum_sell_bala nce-real_ sell_bala
nee/ sum_buy_a moun t+real_buy_a moun t-sum_sell_amou nt- real_sell_am ount
盈亏算法
无论选择何种成本价类型,盈亏算法一样,区别在于卖出费用计算部分(针 不同的4125设置),其中标准券888886200000不计盈亏: 盈亏金额I =证券市值-累计买入金额-回报买入金额+累计卖出金额+ 回报卖出金额一卖出费用
=market_value-sum_buy_bala nce+real_buy_bala nce-sum - temp_fare 其中temp_fare的计算按price 表的最新价(last_price )计算且依赖于
开关_sell_balance-real_sell_balanee
4125: 开关41252,卖出费用进行预算则按标准费用类别(bfare0 )计算后 台计算得到temp_fare开关41250,1则为实算方式,费用比例取自 后台设置的客户实际费用类别计算得到 temp_fare
成本赢亏的举例
1)某个客户某天买入000008, 10000股,成交价格10元,假设客户对应
费用类别的费用比例为0.004,预算费用比例4126设置为0.005,标准费
用比例为0.006此费用不是9999的费用),目前行情最新价已为11, 则白天成交后,后台stockstockreal表中和成本盈亏相关的字段情况。 白天成交后的stockstockreal表中和成本盈亏相关的字段情况如下: Stock: Curre nt Sum_buy _amount _bala nee Sum_bu y_am ount Sum_sell_ amount Sum_s ell_bala nee Cost_pri ce
0 0 0 0 0 0 Stockreal: Real_buy_bala n ce 100400 real_buy_amo unt 10000 real_sell_amo unt 0 real_sell_bala n ce 0 则选择不同成本类型时的成本价如下:
0成交均价:成本价= cost_price = 0 1 持仓成本: 成本价=( sum_buy_bala nee + real_buy_bala nee / (sum_buy_am ount+ real_buy_amou nt = 100400/10000=10.040 2保本价: 4125=1,则成本价= (sum_buy_bala nce+real_buy_bala nce-sum_sell_bala nce-real_sell_bala n ce/(1-0.005/(curre nt_am oun t+real_buy_am oun t-real_sell_am oun t= 100400/(1-0.005/10000=10.090
4125=2,成本价在初始的10.040基础上,按步长进行步进计算,直到
temp_mis= (curre nt_am ount + real_buy_amou nt - real_sell_am ount
* cost_price- (sum_buy_bala nce+real_buy_bala nce-sum_sell_bala nce-re al_sell_balanee- temp_fare 0.006=0为止,得到成本价= = 10000 x 成本价一100400 110000 x
10.101 盈亏:=
market_value-(sum_buy_bala nce+real_buy_bala nce-sum_sell_bal ance -real_sell_balanee -emp_fare 4125= 2,盈亏=10000X 11 100400 10000X 11X 0.006 = 8940 4125 = 0 1,盈亏=10000X 11 100400 10000X 11X 0.004= 9160 日终清算后的stockstockreal表中和成本盈亏相关的字段情况如下: Stock: Curre
Sum_bu Sum_buy_ amount Sum_sel l amount
Sum_sel

Cost_price n t amou y bala nee l bala nee


nt

10000
100400 10000 0 0 10 Stockreal: Real_buy_bala nee 0 real_buy_amou nt 0 real_sell_amo unt 0 e real_sell_bala nc 0 0成交均价:成本价= cost_price = 10 1持仓均价:成本价= 10.040 2保本价:4125=1则成本价=10.090 4125=2 则成本价=10.101 盈亏:4125= 2, 4125
盈亏=8940 = 0 1,盈亏=9160 2假如第二天客户以12元的价格卖出了 5000000008,假设客户对应费
用类别的费用比例为0.004,预算费用比例4126设置为0.005,标准费用比 例为0.006 (此费用不是9999的费用,目前行情最新价已为12元,则白 天成交后,后台stockstockreal表中和成本盈亏相关的字段情况如下:
Stock: Curre nt_am ount

Sum_buy bala nee
100400 Sum_bu y amount
10000 Sum_sel l am ount 0 Sum_sell_ bala nee 0 Cost_ price 10 10000 Stockreal: Real_buy_bala n ce 0 real_buy_amo unt 0 real_sell_amo unt 5000 real_sell_bala nee 59760 则选择不同成本类型时的成本价如下: 0成交均价:成本价= cost_price= 10 1持仓均价:成本价= 2保本价:

10.040
4125=1 则成本价=(100400-59760
/(1-0.005/5000=8.169 4125=2,成本价在初始的8.128基础上,按步长进行步进计算, 直到temp_mis= (curre nt_am ount + real_buy_amou nt - real_sell_am ount cost_price- (sum_buy_bala nce+real_buy_bala nce-sum_sell_bala nce-real_sell_balanee- temp_fare 8.178
=0 为止,得至y成本价=
盈亏:=
market_value-(sum_buy_bala nce+real_buy_bala nce-sum_sell_ bala nee -real_sell_bala nee -emp_fare 4125= 2, 盈亏=5000*12- (100400-59760
5000X 12X 0.006 =19000
4125 = 0 1, 盈亏=5000*12 (100400-59760
5000X 12X 0.004 =19120 日终清算后的stockstockreal表中和成本盈亏相关的字段情况如下: Stock: Curre nt amount
Sum_bu Sum_buy_a Sum_sel l am ount 5000 Sum_sel l bala nee 59760 Cost_pri ce 10 y bala nee mount 100400 10000 5000 Stockreal: Real_buy_bala n ce 0 0成交均价:成本价= 1 持仓均价:成本价= 2保本价:
4125=1 real_buy_amo unt 0 real_sell_amo unt 0 real_sell_bala nee 0 cost_price= 10 10.040 则成本价=(100400-59760
/(1-0.005/5000=8.169 4125=2,成本价在初始的8.128基础上,按步长进行步进计算, 直到temp_mis= (curre nt_am ount + real_buy_amou nt - real_sell_am ount
* cost_price- (sum_buy_bala nce+real_buy_bala nce-sum_sell_bala nce-real_sell_balanee- temp_fare 8.178 =0 为止,得至y成本价= 盈亏:= market_value-(sum_buy_bala nce+real_buy_bala nce-sum_sell_ bala nee -real_sell_bala nee -emp_fare 4125= 2, =5000*12 (100400-59760
5000X 12X
0.006 =19000 4125 = 0 1, 盈亏=5000*12 (100400-59760
5000X 12X 0.004 =19120 日终业务对成本的影响
日终系统根据不同的业务计算 sum_buy_amount sum_sell_amount
sum_buy_balanee sum_sell_balanee cost_price值,并更新 stock表。
a 证券买卖等:

' O', 的业务,如果 OcDdrJbalanee > 0.0 U sum_sell_balanee增力卩 occur_balanee 否则,sum_buy_balanee增力卩
abs (occur_balanee ; 如果 occur_amount > 0,U sum_buy_amount增力卩 occur_amoun,U sum_sell_amount增力卩 abs(occur_amount
business_type in ( b 申购中签 、配售确认等:
bus in ess_type in ( 1,业务 E' sum_Oijy_bala nee增加
abs (occur_balance> , sum_buy_amount增力卩 abs (occur_amoun
c 红股入帐:
bus in ess_type =业务3' sum_buy_a mount 增力卩 abs (occur_am oun d 新股入帐和配股入帐:
business_type in ( ,业务,,其中对 lof 上市 stock_type='除外,其他 sum_buy_bala nee增力卩 occur_am ountx bus in ess_price sum_buy_a mount occur_amount e 股息入帐:
bus in ess_type =,业务,sum_sell_bala nee增力卩 abs(occur_bala nee f 证券托管、转托和余额入帐:
7业务8' p'ricB'的收盘价 asset_price作为成交
business_price计算成本,如果 occur_amount > 0,U sum_buy_balanee 增力卩 bus in ess_price< occur_am oun,贝 U sum_buy_a mount增力卩 occur_amoun 否贝 U sum_sell_bala nee增力卩 bus in ess_pric» abs (occur_a mount sum_sell_amount增加 abs(occur_amount
business_type in ( g
指定交易:
business_type = 75111(不是上海新接口则置 sum_buy_balanee = 0, sum_sell_balance = 0,sum_buy_amount = 0,sum_sell_amount =0cost_price = 0
如为上海新接口,则成本字段不作变化
h
开基申赎:
bus in ess_flag = 4073业务,sum_buy_bala nee增力卩 abs (occur_bala nee , sum_buy_am ount 增力卩 abs (occur_am oun bus in ess_flag = 4074业务, sum_sell_balanee增力卩 abs(business_balanee sum_sell_amount增力卩 abs(occur_amount i 置买入均价:

根据上面的结算结果,对于 sum_buy_balanee的增加量》0,如果证券后余 post_amount 0 的,置
cost_price = 0.0, 否贝U, cost_price=( post_amount - _occur_amoun x cost_price+ sum_buy_balanee的增加量】/post_amoun

本文来源:https://www.2haoxitong.net/k/doc/199150a1f38583d049649b6648d7c1c709a10b07.html

《股票成本价计算公式.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式