恒生30成本价算法.docx
- 文档编号:5312370
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:8
- 大小:18.76KB
恒生30成本价算法.docx
《恒生30成本价算法.docx》由会员分享,可在线阅读,更多相关《恒生30成本价算法.docx(8页珍藏版)》请在冰豆网上搜索。
恒生30成本价算法
第一章企业版三
成本价和盈亏额的计算
1相关说明
1、成本价计算模式支持到个人,即每个客户都可以通过“帐户-资金帐户-客户重要信息修改”对自己的成本价计算模式进行调整。
2、每条股份记录都具有四个字段:
sum_buy_amount累计买入数量、sum_buy_balance累计买入金额、sum_sell_amount累计卖出数量、sum_sell_balance累计卖出金额。
这四个字段对于计算累计买卖后的成本价和盈亏金额非常有用,通常在日终清算时对这四个字段进行相关处理。
3、当日发生交易,产生股份变动记录,也具有四个字段:
real_buy_amount成交买入数量、real_buy_balance成交买入金额、real_sell_amount成交卖出数量、real_sell_balance成交卖出金额。
这四个字段对于计算当日买卖后的成本价和盈亏金额非常有用,通常在回报成交时对这四个字段进行相关处理。
4、每天股份记录同时还有一个成本价字段cost_price,是日终清算时自动根据买入均价计算得到的;也可通过柜台菜单“证券-证券控制-成本价设置”和周边菜单进行设置和调整。
5、系统后台本身不记录股份盈亏金额,查询的时候通过同一个算法(不论当前客户是那种成本价计算模式)计算股份盈亏金额。
6、有些客户希望能保留他对当前某个证券的盈亏情况,即使他全部卖出了此证券,也希望能够在下次买入此证券后将前次的盈亏额累计下来。
默认情况下,由于客户卖出了证券,数量为0的股份记录自动删除,所以不可能累计,为此有些客户甚至不惜留1股。
实际上,系统支持保留上次盈亏额(其实是保留数量为0的股份记录),前提是客户具有A盈亏分析的权限。
此功能慎用,可以给部分机构客户等使用,如果使用范围扩大,数量为0的股份记录一多,就会影响系统性能。
7、转托管入和指定的股票的成本价取得是该个股票的昨收盘。
(不会判断杂项配置中的7128参数)
2成本价算法
2.1类型0买入均价
【说明】成本价由日终来计算,白天实时成交买入和卖出不影响成本价;不考虑卖出费用。
【公式】
后台
成本价日终时自动设置或者通过柜台和周边进行人工设置
盈亏金额不记录
前台显示
成本价=后台的成本价
盈亏金额=MarketValue-SumBuyBalance-RealBuyBalance+
SumSellBalance+RealSellBalance-TempFare
=市值-累计买入金额-回报买入金额+累计卖出金额+回报卖出金额-卖出费用。
其中TempFare的计算依赖于开关4125:
开关4125为0,表示盈亏不考虑扣除卖出,那么TempFare=0
开关4125为1,表示盈亏考虑扣除卖出,且卖出费用进行“估算”
证券类别为‘6’投资基金,取后台缺省费用的投资基金卖出佣金
证券类别为‘9’记帐国债等,取后台缺省费用的记帐国债卖出佣金
其他的一律取后台缺省费用的股票的卖出佣金+卖出印花税综合
取到估算费率后,TempFare=MarketValue*估算费率
开关4125为2,表示盈亏考虑扣除卖出,且卖出费用进行“精算”(暂不支持)
2.2类型1持仓成本
【说明】成本价实时计算,考虑白天实时成交买入,但不考虑白天实时成交卖出;不考虑卖出费用。
【公式】
后台
成本价日终时自动设置或者通过柜台和周边进行人工设置
盈亏金额不记录
前台显示
成本价=(SumBuyBalance+RealBuyBalance)/
((SumBuyAmount+RealBuyAmount)*StoreUnit)
=(累计买入金额+回报买入金额)/((累计买入数量+回报买入数量)*存放单位)
盈亏金额=MarketValue-SumBuyBalance-RealBuyBalance+SumSellBalance+
RealSellBalance-TempFare
=市值-累计买入金额-回报买入金额+累计卖出金额+回报卖出金额-卖出费用。
其中TempFare的计算依赖于开关4125:
开关4125为0,表示盈亏不考虑扣除卖出,那么TempFare=0
开关4125为1,表示盈亏考虑扣除卖出,且卖出费用进行“估算”
证券类别为‘6’投资基金,取后台缺省费用的投资基金卖出佣金
证券类别为‘9’记帐国债等,取后台缺省费用的记帐国债卖出佣金
其他的一律取后台缺省费用的股票的卖出佣金+卖出印花税综合
取到估算费率后,TempFare=MarketValue*估算费率
2.3类型2保本价
【说明】卖出影响成本价
【公式】
后台
成本价日终时自动设置或者通过柜台和周边进行人工设置
盈亏金额不记录
前台显示
成本价=(SumBuyBalance+RealBuyBalance-SumSellBalance-RealSellBalance+TempFare)
/((SumBuyAmount+RealBuyAmount-SumSellAmount-RealSellAmount)*StoreUnit)=(累计买入金额+回报买入金额-累计卖出金额-回报卖出金额+卖出费用)
/((累计买入数量+回报买入数量-累计卖出数量-回报卖出数量)*存放单位)
盈亏金额=MarketValue-SumBuyBalance-RealBuyBalance+SumSellBalance+
RealSellBalance-TempFare
=市值-累计买入金额-回报买入金额+累计卖出金额+回报卖出金额-卖出费用。
其中TempFare为MarketValue*0.005
其中TempFare的计算依赖于开关4125:
开关4125为0,表示盈亏不考虑扣除卖出,那么TempFare=0
开关4125为1,表示盈亏考虑扣除卖出,且卖出费用进行“估算”
证券类别为‘6’投资基金,取后台缺省费用的投资基金卖出佣金
证券类别为‘9’记帐国债等,取后台缺省费用的记帐国债卖出佣金
其他的一律取后台缺省费用的股票的卖出佣金+卖出印花税综合
取到估算费率后,TempFare=MarketValue*估算费率
3案例分析
股份600079和600833,后台情况:
cost_price
sum_buy_balance
sum_buy_amount
sum_sell_balance
sum_sell_amount
4.120
18088.07
4300
12744.12
3000
4.459
1783.78
400
0.00
0
柜台:
股份600079成本价4.111盈亏额337.05
股份600833成本价4.459盈亏额-295.78
周边:
股份600079成本价4.111盈亏额337.05
股份600833成本价4.459盈亏额-295.78
升级最新的成本价算法公式:
成本价0买入均价:
股份600079成本价4.120盈亏额337.05
股份600833成本价4.459盈亏额-295.78
成本价1持仓均价:
股份600079成本价4.207盈亏额337.05
股份600833成本价4.459盈亏额-295.78
成本价2保本价:
股份600079成本价4.111盈亏额337.05
股份600833成本价4.459盈亏额-295.78
分析结果:
1、柜台:
采用类型2保本价,但是由于4125开关未设置,因此未进行估算卖出费用。
同时没有考虑当日买卖成交。
周边:
采用类型2保本价,强行估算卖出费用,但是只影响盈亏(影响太小,没有体现出来),不影响成本价。
同时考虑了当日买卖成交。
2、对于只买入尚未卖出的人,三种成本价计算模式一致,成本价升级对其无影响。
对于买入且卖出部分的人,三种成本价计算模式显然存在较大区别,升级时需慎重考虑,建议设置为2保本价,另外建议4125开关设置为1,保留估算模式,这样柜台的成本价计算会和周边保持一致,和升级前保持一致。
3、不论采用哪种成本价计算模式,不论是否升级,盈亏还是保持一致的,问题不大。
4、对于国债按手存放的客户,比如国联和华泰的上海国债,那么目前在stock股份表里面的数量记录的都是手,包括sum_buy_amount和sum_sell_amount,金额记录的都是总金额,包括sum_buy_balance和sum_sell_balance,这样在计算成本价(包括日终计算得到stock表的cost_price和查询得到的成本价)的时候就应该考虑存放单位,只有考虑了存放单位,成本价才会正确(为100多,而不是1000多)。
第二章企业版三资金算法
涉及的表的说明
1、资金余额表说明(fund)
字段名字段含义
branch_no营业部号
fund_account资金帐号
rate_kind利率类别
money_type结算币种
begin_balance期初余额
current_balance当前余额
cash_balance现金余额
check_balance支票余额
frozen_balance冻结资金
unfrozen_balance解冻资金
uncome_buy_balance未回买入金额
uncome_sell_balance未回卖出金额
uncome_correct_balance未回买卖净额
correct_balance资产修正金额
foregift_balance禁取资金
mortgage_balance禁取资产
integral_balance利息积数
fine_integral罚息积数
interest待入帐利息
integral_update积数更改日期
check_string校验串
2、变动资金表(fundreal)
字段名字段含义
branch_no营业部号
fund_account资金帐号
money_type币种
entrust_buy_balance委托买入金额
real_buy_balance回报买入金额
real_sell_balance回报卖出金额
business_frozen_balance交易冻结金额
real_unfrozen_balance回报解冻金额
在系统中,将用到几种不同含义的资金余额:
期初余额、当前余额、可取金额、可用金额、已取金额。
期初余额
指当天初始化后的最初余额,往往等同与前一天的最终余额。
当前余额
当前余额=期初余额+存入金额-取出金额+蓝补金额-红冲金额
可用金额
可用金额=当前金额-交易冻结金额+回报卖出解冻金额
-冻结金额+解冻金额+未回卖出金额-未回买入金额
可取金额
1)可取资金=当前金额+回报买入-交易冻结-max((未回金额+回报买入-交易冻结),0)-冻结金额-未回买入资金+未回卖出-禁取资金
其中:
未回买入资金指B股(T+3)未到帐的资金。
p_fetch_balance=p_current_balance+v_real_unfrozen_balance-v_business_frozen_balance
-max((v_uncome_correct_balance+v_real_unfrozen_balance-v_business_frozen_balance,0)
-p_frozen_balance-v_uncome_buy_balance+v_uncome_sell_balance
-p_foregift_balance
2)客户有禁取资产且(总资产-禁取资产)>0,
a.当可取资金>总资产-禁取资产时,
则可取资金=总资产-禁取资产,
b.当可取资金<总资产-禁取资产时
可取资金=0。
3)可取资金=可取资金-当日存入不许取的发生额
以上是可取资金(可取支票)的算法,以下继续可取现金的算法(当日存入不允许取出是通过帐户上的帐户限制Q来控制的)
4)可取现金的算法:
如果不允许支票自动套现:
当可取资金-支票金额>现金余额时,则可取现金=可取资金-支票金额;
当可取资金-支票金额<=现金余额时,则可取现金=min(现金余额,可取资金);
如果允许支票自动套现:
则可取现金=可取资金。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 恒生 30 成本价 算法