ubuntu16.04安装flash

启用第三方软件源

开启第三方软件源

安装插件

1
2
sudo apt-get install adobe-flashplugin
sudo apt-get install pepperflashplugin-nonfree

配置chromium

sudo update-pepperflashplugin-nonfree –install
If this doesn’t work you may need to manually configure it. With Chromium fully closed/exited, run the following command in a Terminal to launch the appropriate file in a text editor:

1
2
3
4
sudo gedit /etc/chromium-browser/default
#Add the following line at the end on a new line:
. /usr/lib/pepflashplugin-installer/pepflashplayer.sh
# Save — it’s easy to forget to do that — and then close. Re-open this page in Chromium an

sqlplus格式化输出

设置列宽

在sqlplus执行sql时,经常碰到显示结果,跨行输出,致使可读性很差,看起来特别乱。可通过set linesize及column命令进行调整。
set linesize 设置sqlplus输出的最大行宽
column 这个命令很好用,可使用此命修改显示字段的长度或名称,如:

1
2
3
column c1 format a20 --将列c1(字符型)显示最大宽度调整为20个字符
column c1 format 9999999 --将列c1(num型)显示最大宽度调整为7个字符
column c1 heading c2 --将c1的列名输出为c2

实际操作:

1
2
3
4
5
--列宽前要加a或A
SQL> col parameter format a30
SQL> col value format a30
SQL> set linesize 100
SQL> select * from nls_database_parameters ;

永久生效

可以在$ORACLE_HOME/sqlplus/admin/glogin.sql 里把常用的都设置好,这样就不用每次都设定了

oracle查询结果中文乱码

查询服务器端字符参数

1
select * from nls_database_parameters ;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SQL> select * from nls_database_parameters ;
PARAMETER VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
------------------------------ ------------------------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.4.0
20 rows selected.
SQL> spool off
1
2
3
4
select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

查看客户端参数

1
select * from nls_instance_parameters
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
PARAMETER VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_SORT
NLS_DATE_LANGUAGE
NLS_DATE_FORMAT
NLS_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_ISO_CURRENCY
NLS_CALENDAR
NLS_TIME_FORMAT
NLS_TIMESTAMP_FORMAT
PARAMETER VALUE
------------------------------ ------------------------------
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
17 rows selected.

NLS_LANG

影响oracle数据库字符集最重要的参数是NLS_LANG参数。

  它的格式如下:   NLS_LANG = language_territory.charset

  它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:

  Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK

  从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。

  所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

设置oracle客户端编码

1
export NLS_LANG=AMERICAN_AMERICA.UTF8

字符集的包含关系

AMERICAN_AMERICA.UTF8 > AMERICAN_AMERICA.ZHS16GBK > ..

问题原因

客户端与服务端字符集不匹配

  • oracel server端的字符集;
  • 是oracle client端的字符集;
  • dmp文件的字符集。
    查看dmp文件的编码
    1
    select nls_charset_name(to_number('0354','xxxx')) from dual;

解决办法

客户端字符集 >= 服务端字符集

参考链接

Oracle服务器和客户端字符集的查看和修改

oracle统计表的行数

num_rows 统计每张表的行数

1
2
3
4
5
6
7
8
9
10
11
select
table_name,
num_rows counter
from
user_tables
-- 从object 统计
select
object_name,
num_rows counter
from
USER_OBJECTS where object_type in ('TABLE','VIEW')

pl/sql存储过程

1
2
3
4
5
6
7
8
9
DECLARE
val NUMBER;
BEGIN
FOR I IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP
EXECUTE IMMEDIATE 'SELECT count(*) FROM ' || i.table_name INTO val;
DBMS_OUTPUT.PUT_LINE(i.table_name || ' ==> ' || val );
END LOOP;
END;
/

找出非空表

1
2
--找出空表/非空表
select table_name, NUM_ROWS from user_tables t where t.NUM_ROWS > 0

凭证学习日志汇总

2016-07-14

解决sqlldr错误

换了同事的文件助手,经过排查,明确了不是数据库服务器,中间件和估值系统客户端的原因,网上有人说可能是因为Oracle客户端版本跟Oracle数据库版本不匹配。从网上下载了64位的Oracle11g客户端,成功解决了问题。

跑测试案例5月30,31日帐目

1.新股改革生效日期

1
update txtcs a set a.vc_csz='20160101' where a.vc_csdm='JYQS_XGGGSXRQ';commit;

2.5月30号凭证数量少于应有数量,经检查深交所行情切换日期没有设置。凭证数据中有较大差距,经检查中债估值文件没有读取到,文件的命名规则与系统默认的命名规则不匹配导致无法读取文件。有些凭证上数字小数点只相差了零点几,经检查系统参数中关于位数的设置不正确。
3.手工录入5月31号基金业务时发现没有基金业务这个项目,需要后台执行sql将tsys_module表中基金业务模块显示出来。第一次只生成了58个凭证,经检查上海结算明细和深交所发行对应的文件命名规则发生了变化

2016-07-15

跑测试案例5月31号账目

5月31号账目多了一个凭证,经过检查发现132002 15天集EB的债券类型应该是可转债。系统的实际类型为公司债,因为债券品种不同,导致一个凭证的分成了两个凭证。在更改了证券的基本信息之后,发现31号的凭证数目还是不对,在保证系统参数以及其他的配置信息都是正确的前提下,吧前天的账目重跑了一下,结果便正确了。这让我意识到了证券信息的底层特性。

跑测试案例6月1号账目

6月1号因为少读取了TA文件,导致凭证数目不对。配置完接手路径之后,凭证数目是对的。核对了每张凭证的数字之后,发现只有银行存款利息这项数目不正确。经过核对之后发现问题出现在科目上面,因为系统中一些底层科目属性设置的不正确,导致科目之间的结转流程是不一样的,导致银行利息收入不正确。在数量,以及交易数字都能对应的情况下,银行利息不正确是很常见的一个问题。

2016-07-18

跑测试案例6月2号-6月16号测试案例

6月2号配股缴款凭证没有生成,系统没有读取文件里的内容,需要手动录入。6月8日回购业务凭证数字中,与正确结果相差1,需要手动更改一下交易所手续费。

熟悉数据表整体结构

tstoretype表中相当于整个数据库表的目录,不知道某个文件的内容存储到哪里时可以用通过查这张表来查看。

2016-07-19

计算5月30号股票交易凭证

完成了上交所市场600050[中国联通]、601988[中国银行]、深交所市场的000001[平安银行]三只股票交易的凭证。

证券知识基础

交易所清算速度一般为T+1,银行间一般为T+0。全托管和三方托管的区别,券商收取的佣金一般是按合笔计算的,分笔与合笔的计算结果一般有尾差。了解了估值系统在基金公司在不同类型公司的作用.

2016-07-20

计算债券交易凭证

交易所债券不收佣金,国债是没有利息税的。债券利息的计算公式为ROUND(ROUND(票面利率/100/计息周期所在年份天数实际天数,8) 债券数量,2)。基本的思想是计算出单价,单价乘以数量,计算单价时保留的位数根据系统参数来设置。一般交易所是保留八位小数,银行间保留12位。利息税是倒减出来的,先计算税后利息,如果是合笔计算的话,每笔成交合同计算的税后利息保留8位或12小数,合笔之后保留两位小数。

Oracle基础

今天帮几个同事解决了数据库监听的问题,中间件起不来的几个常见原因:listerner.ora
经常碰见的一个错误是ora-12514

1
2
3
4
5
6
7
8
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = oracle11g)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0)
(SID_NAME = oracle11g)
)
)

ls_fa.xml中配置的是监听服务名,而不是数据库实例名
tnsnames.ora配置文件中,监听服务名和数据库实例名的映射关系。

2016-07-21

计算债券交易凭证

计算债券计息凭证中,有的需要合笔计算,有的需要分笔计算,这是由系统参数控制的。系统参数中是根据与债券的类别来决定是分笔计算哈市合笔计算。企业债,可转债,分离债,公司债是按照合笔计算的。借和贷本身不等于增和减,只有与具体的账户相结合后才可以表示增和减。与不同类型的账户相结合,分别表示增加和减少。如对资产类账户来说,借表示增加,贷表示减少;对负债类账户正好相反,贷表示增加,借表示减少。以前一直搞不清损益类科目的借贷方向,如果把损益类科目分成收入

估值系统结构

转账公式是业务核心,数据库查询转账公式的语句为:

1
2
3
select * from tzdyzzszz t where t.l_bh=301 and t.l_ztbh=9999;
select * from tzdyzzszc t where t.l_zbbh=301 and t.l_ztbh=9999;
select * from tzdyzzszcykmsx t where t.l_zbbh = 301 and t.l_ztbh=9999;comment on table TSTORETYPE is '清算接收接口设置';

2016-07-22

计算债券交易凭证

债券交易中全价和净价的区别:
债券交易中的手续费,印花税,证管费中的金额都是要按照全价计算的。
计算原始数据中,应该先看交易是净价的还是全价的,如果是净价应该把每笔合同的税前利息计算出来,然后再计算其他依赖金额的费用。
全价=净价+税前利息

证券基础知识

原先没有搞清封闭式基金和开放式基金的区别,从名字上看封闭式基金是对少数机构开放的,是不可交易的,而开放式基金是对所有人开放的,应该是可交易的。事实是相反的,封闭式基金可上市交易,而开放式基金不可上市交易。开放式基金允许投资者在基金成立后进行申购和赎回,这个过程是在场外进行的。开放式基金和封闭式基金的主要区别在于封闭式基金的投资规模是固定的,开放式基金投资规模是非固定的,其基金的规模可以应市场即投资者的购买要求而扩大,也可以应投资者的赎回变现而减少。基金的开放性和封闭性指的是基金的规模,二者的基金的交易场所是不同的,开放式基金的 申购赎回都是在场下进行的,封闭式基金一般在证券交易所上市交易,投资者可以通过二级市场买卖基金单位

2016-07-25

计算股票交易凭证

股票买入:
有个股本科目计算,股本不包含各种交易费用。买入证券清算款包含成交额+除了佣金以为的其他费用。
股票卖出:
卖出部分股票估值增值=上一时刻累计估增/上一时刻累计数量T日卖出数量
股票差价收入=T日成交额-卖出数量
(上一交易日总成本+上一交易日总估值增值)/上一交易日总数量

会计基础知识

会计恒等式:
资产=所有者权益+负债
这个公式是静态的,结转之后的,反应的是某个时间点的关系。
资产=负债+所有者权益+利润=负债+所有者权益+收入-费用
这个公式是动态的关系,是在任意时刻都成立的。收入类和费用类对应系统中六类科目。
利润表是会计表中的核心表之一,收入类和费用类是利润表的核心。
资产+费用= 负债+所有者权益+收入
等号左边:增加记借,减少记贷 (借方科目)
等号右边:增加记贷,减少记借 (贷方科目)
这个公式是对第二个公式的轻微变换,更加清晰地反应了复式借贷平衡法的精髓。

2016-07-26

计算股票交易凭证

卖出部分深交所股票估值增值=上一时刻累计估增/上一时刻累计数量T日卖出数量
股票差价收入=T日成交额-卖出数量
(上一交易日总成本+上一交易日总估值增值)/上一交易日总数量
股票的估值增值是一个动态的概念,因为每日的收盘价都是不一样的。估值增值=T日收盘价*数量-成本

股票凭证基础知识

基本认识;凭证记录了金额、金额的方向以及科目之间的结转关系。所以通过追踪业务凭证中的科目,可以理清业务中的具体过程。新股申购的详细过程及凭证如下:
申购当日(T) 借:证券清算款新股申购款
贷:证券清算款
验资日(T+1) 借:证券清算款
贷:银行存款或结算备付金
中签时(T+2) 借:股票投资
新股成本
贷:证券清算款新股申购款
返款清算(T+2) 借:证券清算款
贷:证券清算款
新股申购款
返款到账(T+3) 借:银行存款或结算备付金
贷:证券清算款
上市流通(T+N) 借:股票投资
贷:股票投资_新股成本

2016-07-27

计算股票交易凭证

收盘价是计算估值增值的依据。上海的行情数据存储在外部文件mktdt文件中,通过

1
select * from tstoretype t where t.vc_caption like '%FAST%'

找到上海的行情数据存储在tjk_shqs_mktdt00表中。深圳的行情数据存储在外部文件securities_yyyymmdd.xml文件中,通过

1
select * from tstoretype t where t.vc_caption like '%深交所信息%'

找到深圳的第五代接口行情数据存储在TJK_SZQS_V5_SECURITIES表中。经过对比,tstoretypez中的vc_caption字段和客户端日常业务中,公共数据,日中清算时外部文件前显示的提示信息是完全一致的。

股票费用计算

深圳佣金计算过程要保留的位数问题。深圳佣金计算过程保留的位数由系统参数中费用计算类的一个参数控制。如果选择特定的位数(2,4,8)那么在计算纯佣金过程中,经手费和证管费也保留相应的位数。
按成交合同计算佣金时,可以从tcjhb表中读取数据,按委托编号计算佣金时

2016-07-28

计算债券交易凭证

计算债券估值增值时,需要用到市价。了解了市价和收盘价的区别,对交易所而言,对于净价债券来说,估值净价(收盘价)就是市价;对于全价债券来说,估值全价(收盘价)-单位税后利息。对于银行间而言,净价债券:估值净价(收盘价)+单位利息税=市价; 进行债券估值凭证增值计算时,需要查询收盘价。从数据库获取收盘价的sql语句如下:

1
select t.securityid ,t.closepx from tjk_shqs_mktdt00 t where t.d_ywrq=to_date('20160531','yyyymmdd') and t.securityid in ('010107','132002');

计算债券计息增值时,如果当天增加了持仓,需要把当天买入的持仓部分也进行计息。这是由系统参数–>债券业务–>交易所债券买入是否影响当天计息 决定的。
债券的税前利息都是分笔计算的,应收利息是分笔还是合笔,看系统参数中哪些债券品种是合笔的。计算5月30号债券凭证时,国债竟然有0.07的利息。在国债的计算过程中,税前利息是按分笔计算的,税后利息应该按合笔计算。但是合笔计算的结果比分笔的计算结果多了0.07,为了调尾差,将这个尾差作为当日的债券利息。

债券费用计算

交易所
T+0回转交易:截至交易日(含交易日)的利息
银行间
T+0:截至交割日(交易日)前一自然日的利息
T+1:截至交割日(下一交易日)前一自然日的利息
兑息
交易所: T+0回转交易,交易后即按券过户处理
付息日买入-含一天利息
付息日前一日买入-全部利息(兑息金额)
银行间:交割日过户
付息日买入-没有利息

2016-07-29

计算债券交易凭证

债券的利息计算主要分为交易利息和日终利息。这里面有几个容易混淆的问题,交易当天的债券利息是算买方的还是算卖方的?经计算是算卖方的。交易计息的情况是比较简单的,区别点主要是根据所在计息年度是否包含2月29日来确定实际天数,如果不包含,则实际天数=T日-起息日(或者最近)+1,若包含,则实际天数=T日-起息日(或者最近)+1-1。日中计息的情况稍微麻烦一点,基本思路是日中计息=今日累计计息-上一时刻累计计息。如果当天没有交易,公式很简单。如果有交易发生的情况下,需要进行分类计算。例子如下:
T日有200手 T+N 日买50手 当日利息:200+50-250
T+N 日卖50手 当日利息:150+50-200
T+N 日买50手卖30手 当日利息:220+30-50-200
日终持仓量+当日卖出的-当日买的-上一时刻持仓量

会计基础

权责发生制
凡在当期取得的收入或者应当负担的费用,不论款项是否已经收付,都应当确认为当期的收入或费用;
凡是不属于当期的收入或费用,即使款项已经在当期收到或已经当期支付,也不能确认为当期的收入或费用。

收付实现制
凡是在当期已经实际收到款项的收入和已经支付款项的费用,都应当确认为当期的收入或费用;
凡是不属于当期实际收付款项的收入和费用,就不能确认为当期的收入和费用。
财务处理程序:
1 设置会计科目与账户
2 根据原始凭证填制会计凭证
3 登记会计账簿
4 编制会计报表
公允价值是指在公平交易中,熟悉情况的交易双方自愿进行资产交换或者债务清偿的金额

2016-08-01

学习TA业务

TA系统和估值系统的联系。TA系统向估值系统提供TA业务数据,估值系统向TA系统提供基金净值信息。新版系统在打开含数据清算文件模块前,必须打开读数工具,否则系统会直接崩溃。原始的TA文件不具有可读性。从数据库中读取TA交易数据的sql如下:

1
select * from TJK_TA_ALLOT t where t.d_ywrq=to_date('20160601','yyyymmdd');

读取的记录有许多是无用的。CJFE(成交份额),JSJE(申购金额),SGZE,JYFY这两个字段的意义还没有搞清。TA业务和基金业务的关系没有搞清,TA有申购、赎回,基金也有申购、赎回,看它们的凭证是不一样的,但是没有理解二者的区别。

债券利息计算练习

债券计息的一个核心点就是日期。起息日、所在年度计息周期天数(T)、本年度计息周期、本期计息周期。以几个具体的问题来理解一下。2月29号算不算?对于银行间债券是算的,对于交易所,不算。时间点的计算,如果债券2014-05-01 —– 2016-05-01 付息周期为三个月,2015-08-01在哪个付息周期?2015-05-01 —- 2015-07-31?2015-05-01 —- 2015-08-01?2015-08-01 —- 2015-11-31?答案是2015-08-01 —- 2015-11-31。时间点的计算一切以计息日为基础来进行计算,最小区间为一个月,如果付息频率为一年,则按12个月进行增加。一般增加的。

sqlplus历史记录和自动补全

针对Linux系统而言。安装rlwrap软件包 sqlplus的自动补全是基于字典文件的,在.bashrc 中添加别名:

1
alias sp='rlwrap -if sqlplus.dict -r sqlplus username/passwd@//192.168.56.2:1521/oracle11g'

sqplus.dict 文件中的词便是自动补全的库,为了让sqlplus 能自动补全表名需要将当前用户的所有表明添加进去。查找所有属于当前用户的表明,sql语句如下:

1
select table_name from user_tables order by table_name;

在终端中输入sp 即可,按tab键即可像补全bash命令补全sql命令

2016-08-02

学习TA业务

TA业务和基金业务的区别?TA业务指的是本基金份额的变化。基金业务指的是本基金持有其他基金份额的变化。原来一直没搞清楚TA业务和基金业务的区别,因为不知道基金本身除了可以购买股票债券之外还可以购买别的基金。基金业务的所有数据都在TJK_CH_OPENFUND_INFO表中,从数据库获取基金分红业务数据

1
select * from TJK_CH_OPENFUND_INFO t where t.d_ywrq=to_date('20160602','yyyymmdd') and t.zqdm in ('560001','000620'),

NET_VALUE字段表示基金权益比例。

回购利息计算

最后一天的利息是倒减出来的。非最后一天利息=round((到期金额-初始金额)/(计息截止日-计息开始日+1),2)
最后一天利息=回购期间总利息-之前累计计提的利息=回购期间总利息-round((到期金额-初始金额)/(计息截止日-计息开始日+1),2)* (计息截止日-计息开始日)
交易所回购计息方式
计尾不计头:从下一自然日开始计息,到期日当天计息。绝大多数情况
计头不计尾:从回购交易当天计息,到期日当天不计息

回购交易费用是否进成本(交易所和银行间)
1费用进成本
(正回购)借 清算款(or存款)
贷 回购成本=回购金额-费用
(逆回购)借 回购成本=回购金额+费用
贷 清算款(or存款)
2费用进损益
(正回购)借 清算款(or存款)
贷 回购成本=回购金额
借 交易费用支出
(逆回购)借 回购成本=回购金额
贷 清算款(or存款)
借 交易费用支出

2016-08-03

计算回购业务凭证

回购交易中的核心概念:成交金额,返款金额,区间利息,实际天数,每日计息,最后一天计息,回购成本
基本公式:
返款金额=回购成本+期间利息
上海的成交金额是现成的,无需单独计算。交易流水中有成交价格,成交价格用来计算期间利息。将各项利息数据分笔算出,然后进行相加,即可得到区间利息。上海的融资融券业务没有手续费,因此在这种情况下,成交金额=回购成本。
在计算深圳融券业务时,回购成本=面额+利息-手续费,根据成交价格算出来的利息包含手续费,因此利息需要减去手续费。非最后一日回购计息=净利息/实际天数,深圳融券业务利息已经包含了交易费,不知道为啥买入返售金额资产还要再加一次手续费。
银行间的融资融券业务根据质押式回购的天数有不同的交易费。银行间的结算费和交易费用按照基础设置中的交易费率设置。回购成本=成交金额-结算费-手续费。银行间融资业务:期间利息=返款金额-回购成本

计算基金业务凭证

数据的排序是相当重要的,这有利于提高计算的效率。从数据库里面,获取基金除权数据并根据字段的重要性进行多种维度排序,

1
select * from TJK_CH_OPENFUND_INFO t where t.zqdm in ('560001','000620') order by t.zqdm ,t.data_date, t.d_ywrq;

货币基金业务的核心计算就是除权分红的计算。在进行数据计算的时候,发现中间数据有0.01偏差,这一天是节假日。节假日的除权分红是一个关键点,可通过系统参数设置(帐套级)—->基金业务–>复利节假日收益计算方法(每日单独计算)。节假日部分万分收益率需要除以假期天数。
货币基金的权益比是万分之几级别的,这是与其他业务有明显的区别。

2016-08-04

计算TA业务凭证

从tstoretype表中查询TA业务对应的借口表,申购,赎回,转入,转出分别对应的数据表为
TJK_TA_ALLOT,TJK_TA_REDEEM,TJK_TA_SWITCHIN,TJK_TA_SWITCHOUT。流水数据表中含有大量的冗余数据,因此找到合适的筛选条件是非常必要的,我通过成交份额或成交金额来筛选数据

1
2
3
4
select * from TJK_TA_ALLOT t where t.cjfe > 0 order by t.rq ,t.d_ywrq;
select * from TJK_TA_REDEEM t where t.shcjje>0;
select * from TJK_TA_SWITCHIN t where t.cjje > 0 ;
select * from TJK_TA_SWITCHOUT a where a.cjzhje > 0;

损益平准金是TA业务的核心概念,TA业务不影响基金的收益,所以除了应收费用和实收基金外,引入了一个损益平准金的概念。为了公平性,先来的与后来的投资者应当相互不影响。理解损益平准金的核心概念是比例,将新来的申购款或者赎回款按照原先基金的
比例进行划分。这个比例分别是 未实现/基金净值 已实现收益/基金总净值
基金净值=1+2+3=4+6(1,2,3,4,6代表六类科目余额)
未实现部分包含:
公允价值变动损益(6101),未分配收益未实现(41040202),损益平准金未实现(401102),本期收益未实现(410302)
已实现收益部分通过基金净值倒减出来。

TA计算公式

算法1:实收基金=申购数量 当基金没有分红记录时采用算法1
算法2:实收基金=实收委托资产比例赎回金额 当基金有分红记录时采用算法2
实收委托资产比例=T-1日实收基金余额/T-1日基金总净值 这里的T-1日指的是上一交易日,T日指本日
损益平准金-未实现:=未实现损益平准金比例
赎回金额
未实现损益平准金比例=(T-1日损益平准金未实现余额+T-1日公允价值变动损益余额+T-1日本期收益未实现余额+T-1日未分配收益未实现余额)/T-1日基金总净值
应付赎回款:=赎回金额
应付赎回费:=机构赎回费-已记提成金额-后端申购费
其他收入-赎回费收入:=基金赎回费-违约金

2016-08-05

计算TA业务凭证

计算TA凭证时,不管是申购,赎回,转入,转出业务都是一交易日为准的。5月31日进行的申购那么就要按照5月31日的总净值,总的未实现收益来计算损益平准金。先计算未实现损益平准金,已实现损益平准金是倒减出来的。5月31号是月末,公允价值变动损益要结转到本期收益未实现科目。如果同一天既有申购和赎回,那么顺序是非常重要的,因为每笔TA业务都会影响损益平准金,所以必须严格按照实际业务发生的先后顺序来计算。转入和申购以及转出和赎回非常相似,只是科目的名称不一样罢了。计算损益平准金的时候需要多次用到估值表中基金净值数据,但是如果前台不点击生成的话,那么估值表中是没有相应的数据的。估值表数据在ttmp_h_gzb中。

系统核心数据表

系统读取落地文件到对应的接口表,比如gh,每张接口表对应一个视图,例如v_jyqs_ywlbygh 。视图通过证券代码以及其他交易信息判断业务类别,并给出了处理该业务对应的包。证券内码和转账公式是非常重要的字段,在凭证表tvouchers中,含有这两个字段,通过这两个字段可以追踪一条数据流。
vshqs:业务识别视图。一个接口一张视图,查看视图即可了解一个文件中所有处理的业务

tcjhb:需要计算费用的业务进此表

tfymx:费用计算的明细结果

tqsk:交易流水表

tfjygh:权益流水表

tghjy:回购流水表

txg:新股表

taccountzqjc:证券结存表。开发报表首选。

tvouchers:凭证表。开发报表首选。

ttmp_h_gzb:估值表。开发报表次选。

tjjjmrhjsj:每日合计数据。开发报表首先。

2016-08-08

证券基础概念梳理

0608卖出国债(010107),0613进行交割,那么卖出的债券计息算到哪一天?0608还是0613?答案是0608交易所一般债券采取的都是T+0回转交易。上海固收平台例外(T+0,T+1)。上海固收平台(固定收益证券综合电子平台)是上海证券交易所设置的、与集中竞价交易系统平行、独立的固定收益市场体系。2013年8月2日(周五)以询价模式买入一只上交所固收平台公司债123005,A、8月2日(周五)B、8月3日(周六)C、8月4日(周日)D、8月5日(周一)
交易所的123开头的债券(固收平台公司债和资产支持证券)分为两种模式,询价模式T+1,指定对手方模式T+0交收
回购期限最短为1天,最长为1年。

债券交易数额最小为债券面额十万元,交易单位为债券面额一万元。

银行间债券交易中“T+0”指参与者于债券交易成交日进行债券结算和资金清算:

“T+1”指参与者于债券交易成交日之后的第一个营业日进行债券结算和资金清算。

(银行间)债券交易的债券结算和资金清算必须在同一日进行。

上交所交易规则:
A股、债券交易和债券买断式回购交易的申报价格最小变动单位为0.01元人民币,基金、权证交易为0.001元人民币,B股交易为0.001美元,债券质押式回购交易为0.005元。在股票分红业务中,0.01是经常出现的。

中登,中国清算公司,中国证券登记结算有限责任公司指的是同一个对象

2016-08-09

证券基础概念梳理

系统是如何判断流水对应的业务类别的?债券的编码信息包含了证券种类和对应的业务类别。
上交所证券编码规则:上交所证券代码采用六位阿拉伯数字编码,取值范围为
000000-999999。六位代码的前三位为证券种类标识区,

其中第一位为证券产品标识,第二位至第三位为证券业务标识,六位代码的后三位为顺序编码区。上交所证券代码:001×××国债现货; 201×××国债回购;110×××120×××企业债券;129×××100×××可转换债券;310×××国债期货;500×××550×××基金;600 ×××A股;700×××配股;710×××转配股;701×××转配股再配股;711×××转配股再转配股;720×××红利;730×××新股申购;735×××新基金申购;900×××B股;737×××新股配售。

债券代码的意义:
以21国债(7)为例,它是2001年记帐式(七期)国债,这里的七期就是说在此之前,2001年里已经发行过6次国债。

一直以来对差价收入的概念都比较模糊,这个科目是把未实现收益转化成了已实现收益。简单理解为:实际价差收入(成交价-成本价)与卖出部分估值增值的比较。

金融市场有许多细分的市场,比如债券市场可分为银行间债券市场和交易所债券市场,以细分市场来学习相对明确一些。一个市场有明确的属性可查找,比如交易主体,托管人,交易场所,交易时间,交易方式,交割方式,交易时间等等。

债券凭证计算

今天追踪了测试案例中国债交易,遇到一个最普遍的问题是中间过程如何保留位数?卖出部分成本=上一时刻总成本/上一时刻总数量*卖出数量,但是具体到数字时该如何保留位数?
这类公式都是先计算单位值再乘以数量,具体到数字计算时,一般都是在计算单位值部分时保留八位,结果保留两位,比如

1
ROUND(ROUND((上一时刻总成本/上一时刻总数量),8) * 卖出数量,2)

计算债券利息,估值增值凭证时,最基本的思想是余额法,下一笔交易仅跟着上一笔交易。

2016-08-10

债券凭证计算

价差收入:价差收入的计算比较麻烦,对股票和净价债券来说比较好计算,但是对于全价债券就行不通了。问了前辈才了解到系统的凭证是根据借贷平衡来算的。
债券兑息日:债券兑息日转出的利息不包含当天的。6月15号122077(西钢债)生成债券利息转出凭证,6月16号(T+1)生成结转凭证,
银行存款转出的是税前利息,而不是税后利息。利息税部分国家实际上还没有征收,这部分记到利息收入科目中。

计算122077(11西刚债)时,期间有多次买卖,计算交易后的日终计息时,始终按照日终的持仓量来计算。计算卖出估值增值,卖出成本时需要把握的一个原则是:未来的不影响过去的,未来的依据过去的。

债券基础概念梳理

债券计息是最复杂的,有一些比较容易搞混的概念。对交易所而言,券种一般是T+0回转交易,资金T+1交收。一般是净价交易,全价结算(会影响证券清算款)。
银行间有T+0 和T+1两种模式,但是银行间的债券和资金是在同一天完成的,这跟交易所有很大区别。
二者计息方式比较:实际天数计算到券种交割当天,交易所所有的年周期都是365天。计算实际天数时要注意减去2月29号这天。银行间计息到券种交割日的前一自然日,交易所年周期天数按实际来算。上交所固收平台就比较特殊了,有二者结合的特点。计算实际天数时,按照交易所的特点来算,券种和资金的交割方式按照银行间的来。
上一时刻,上一自然日,上一交易日,累计至本时刻,这些时间概念在债券计息过程中会多次用到。

2016-08-11

债券凭证计算

银行间债券的市价怎么获取?市价=银行间估值价+累计单位利息税。例如5月31号JF7403(15建材)市价:

1
ROUND(ROUND($R$44/100/$S$44*($T$44+1)*100,12)-ROUND($R$44*0.8/100/$S$44*($T$44+1)*100,12)+Q79,2)。

银行间债券交易如果是T+1。银行间债券交易当天买入的债券当天可以卖出,交收模式分为T+0、T+1交割。

T+0模式下走“银行存款”科目,T+1模式下走“证券清算款”科目。

类似的还有网上和往下的区别。网上网下的区别就在于网下是直接从银行存款划款,而网上走得是证券清算款.银行间的交易和结算费用一般都是独立出来,过一段时间进行结转。而交易所一般都是T+1日从银行存款结转到证券清算款。
系统参数–>买入债券是否影响当天计息 如果选择影响T日当天有0.07的尾差,如果选择无影响,T日无尾差计息。

债券计息点线重合问题

自己根据例子总结:假设某交易所债券的起息日是20160725周一,百元年利率是3.65%,面值100,周五买入该债券100张,交收模式T+1DVP交收,也就应该下周一进行券款交收,那么该债券买入的应收利息应该计算到下周一,应收利息可能是按照成交合同分笔计算的这里假设为应收为7.9,本周五如果进行债券的每日计息就是累计到本周五的债券利息-累积到下周一的债券利息=

1
round(round(3.65/100*100/(本周五-本周一+1),8)*100,2)-round(round(3.65/100*100/(下周一 - 本周一+1),8)*100,2)=-3,

结果可知,这样的话就导致该日计息为负值,不合理,那么系统在进行逻辑分析的时候就将本周五的每日计息中的数量减去,将累积到下周一的应收利息也减去,就变成0-0,所以周五就不计息,周六周日一样的道理。这时到了券款对付日周一,选择“影响参数”,那么买入的那一笔数量就要加到每日计息里,该日计息=

1
round(round(3.65/100/365/(下周一 - 本周一+1)*100,8)*100,2)-应收利息=0.1

,也是对应收和累计到今日利息分笔合笔计算尾差的调整。
如果选择系统参数“不影响”,周一前的理解相同,因为不影响,周一计息时就不将买入的那部分数量加进来算累计,今日就不产生计息凭证;到了周二,计算日终计息的时候,每日计息=

1
round(round(3.65/100*100/(下周二 - 本周一+1),8)*100,2)-应收利息=1

,尾差在今日调整。

2016-08-12

跑v3.2案例

通过继承原先的3.0账套重跑3.2。提示基金代码CS8888已经被占用,我改成了CS9999,在
6月1号时无法生成TA业务凭证。原先以为基金代码是随意设置的,其实不然,通过查找了TA业务的原始数据,发现里面的基金代码字段是确定的CS8888,如果基金代码跟TA数据里面的代码不匹配将无法清算TA业务。总结:基金代码是估值系统和TA系统的接口,TA系统的基金代码不是随意设置的,二者需要保持一致。类似的信息还有席位代码和股东代码。如果不设置席位代码,系统无法读取gh[XWDM].dbf文件[XWDM]表示的是席位代码。如果只设置了席位代码而没有设置股东代码的话,系统除了可以成三提两费的凭证外无法生成任何其他业务凭证。
基金基础信息的重要性:
估值系统的上游系统是投资系统,TA系统,接收这两个系统的数据就要保证接口的一致性。
与投资系统的接口是席位代码,股东代码
与TA系统的接口是基金代码
基金成立时需要录入实收基金科目的数量,成立的时间点一般都是金额等于份额,但是一旦有投资活动,基本上份额不再可能等于金额,如果在成立是不设置金额的话,基金单位净值信息是不正确的,但是基金的总净值似乎是不受份额影响的。

节假日参数

测试案例中,0612(周日)凭证不正常,如果按节假日来算的话,系统无法生成回购到期凭证和银行间清算款结转凭证,如果不按节假日来算的话,系统会将13日生成的基金红利凭证在12号生成,这似乎是个无法解决的矛盾点。在百思不得其解之后,将0612按节假日处理,添加两个手工凭证,0612后面的凭证也是正确的。询问同事以后,明白了这个问题的原因所在。基金分红数据信息属于公共账套级,因为是继承原来的账套,所以系统已经读取了6.13号的基金分红数据,如果按照非节假日来处理,自然会将原先13号的数据处理成12号的凭证。解决办法:把6月12号按照非节假日处理,在批量做账的时候把交易数据勾掉,这样便可以不清算交易数据。

2016-08-15

会计科目梳理

待摊费用和预提费用的区别
待摊费用和预提费用的概念及特点:
预提费用:是指企业按规定预先提取但尚未实际支付的各项费用。 就是企业还没支付,但应该要支付的,要记入负债待摊费用是指企业 已经 支出,但应当由本期和以后各期分别负担的、分摊期在1年以内(含1年)的各项费用。股票凭证的做账规则,当天有买有卖,先算买的,后算卖的(规则)。利息进入哪个分录?
证券清算款是全价交割的,付给卖方的利息已包含在证券清算款内。

深圳新股业务及网下新股业务整理

网上
申购T日
T+1日中签扣款 借:新股清算款
贷:代缴清算款
T+2日中签缴款 借:代缴清算款
贷:证券清算款
T+3日中签交收 借:新股成本
贷:新股清算款
T+N日上市流通 借:流通成本
贷:新股成本
2016年后的新股
 1.隐藏系统参数“新股发行改革生效日期”需要设置成20160101 (txtcs表)

深圳证券代码开头:00,30开头,扣款业务类别A3
中签交收业务类别A5
网上网下的区别就在于网下是直接从银行存款划款,而网上走得是证券清算款
网下不需要验证资金,不在交易所办理,流水都需要手动录进去
网下新股中签

11020301600570 股票投资-上交所新股-上交所新股成本-恒生电子  借 550,000.00 10,000
     30030306 证券清算款-场外证券清算款-网下证券清算款_新股_上海  贷 550,000.00 0
     30030306 证券清算款-场外证券清算款-网下证券清算款_新股_上海  借 550,000.00 0
     10020101 银行存款-活期存款-活期存款  贷 550,000.00 0

     上市流通     
     11020101600570 股票投资-上交所A股-上交所A股成本-恒生电子  借 550,000.00 10,000
     11020199600570 股票投资-上交所A股-上交所A股估值增值-恒生电子  借 145,300.00 0
     11020301600570 股票投资-上交所新股-上交所新股成本-恒生电子  贷 550,000.00 10,000
     11020399600570 股票投资-上交所新股-上交所新股估值增值-恒生电子  贷 145,300.00 0

     如果有返款     
     网下新股返款     
     1102  银行存款-活期存款-活期存款 借 1231231322
     3003  证券清算款-场外证券清算款-场外证券清算款_新股申购款 贷 1231231322

2016-08-16

新股业务理解

为什么申购日不做凭证?为什么中签日才开始做凭证?申购是一种普遍的资格,并没有什么权利的变化,所以不做凭证。中签的话,权利已经发生了变化,需要做凭证。这是会计做账的权责发生制原理。
T+1日(申购日为T日)新股扣款:在T+1日待缴而不是代缴,因为实际交易当中,别人不可能代缴。
资金不足时,为什么借银行存款?
T+3 日,缴款金额不足时,为什么借银行存款?为什么是银行存款而不是证券清算款,为什么方向是借?T+3交收时,实际上是银行存款进行划款的,加入应付为1000,实际只有600,那么银行存款为-1000,当日清算款结转之后,银行存款为-400,因此余额不足时为了保持借贷平衡,需要银行存款记借400。
从数据角度看新股业务。
深交所 新股中签 数据来源sjsfx 表tjk_jyqs_sjsfx 视图v_jyqs_ywlbysjsfx
新股缴款数据是无法从外部读取的
中签交收 数据来源 sjsfx 表tjk_jyqs_sjsfx

上市流通 数据来源 前一天sjsjg 表tjk_szqs_v5_sjsjg 视图v_szqs_v5_ywlbysjsjg

上交所 新股中签 数据来源 jsmx 表jsmx 视图v_jyqs_ywlbyjsmx

中签交收 数据来源 jsmx 表jsmx

上市流通 数据来源 前一日zqbd 表zqbd 视图v_jyqs_ywlbyzqbd

债券估值价处理

债券估值采用净价估值,目前市场上除了上交所、深交所“可转债”为全价交易以外,其他都为净价交易。

注意:

  1. 全价交易的债券下发的行情为全价行情,净价交易的债券下发行情为净价行情。
  2. 债券行情数据3个来源:交易所行情、中债登、中证,通过在“基础设置债券估值方法设置”中设置“行情属主”即可。

2016-08-17

配股业务理解

配股款支付,上海证券代码开头:700,760,742
T+7日为配股确认日 借:配股成本 贷:新股清算款
上海配股流程:
深圳配股只允许一次申报缴款
T日为登记日

T+1-T+5日为配股缴款日 借:新股清算款 T+1-T+5日中得某一天交,不固定哪一天
贷:证券清算款 缴款后下一天记得清算款结转
配股缴款,深圳证券代码开头:08、38
配股流通,深圳证券代码开头:00、30
T+7日为配股确认日 借:配股成本
贷:新股清算款
配股缴款日就包含了配股确认日的数据,会自动生成配股确认
上海为什么走非T+1?上海配股允许多次申报缴款
深圳为什么走证券清算款?深圳只能一次缴款

回购业务理解

案例:回购金额1000 费用10元
回购业务最主要的两个主要参数:利息是否包含交易费用,费用是否冲减成本
不冲减成本:
借:证券清算款(3) 1000-10
借:交易费用(6):10
贷:卖出回购金融资产(2) 1000

冲减成本:
借:证券清算款(3) 1000

贷:卖出回购金融资产(2) 1000

2016-08-18

TA业务理解

TA业务以客户为中心的账户体系,并整合交易体系、清算体系、资金体系等,建立以账户体系为中心的数据中心。
资金流转 T日(申购日),T日向直销或代销账户缴纳金额,T+1日资金流向基金公司建立的TA专户账户,T+2日进行资金进入托管账户(10020101)。
估值系统在TA业务的作用是算清托管账户和投资系统之间账户的资金。
TA结转设置的T+1,T指的是申购日还是申购确认日?申购确认日。

股票业务理解

除权日:登记日的下一个交易日,除权后,股票价格会下降。
到账日:分红的现金到投资者账上的日期。注意:股票除权日和到账日是同一天;
系统会在除权日(即到账日)生成一张红利到账凭证。
除息:分红
除权:送股,转股
除权,除息都会导致股价降低
除权不改变所有者权益,增加股本规模,一般会导致股价降低。除息改变了所有者权益,股本不变的情况下,股价降低。
股价是所有者权益的综合体现。
不同产品类型,股票红利金额在计税的问题上是不一样的,有些按照税前金额来算,有些按照税后金额来算(一般来说,个人投资者的账户为税后算的,机构投资者账户为税前的,公募基金按个人投资者处理)。
按照税前还是税后金额来计算,系统可通过账套级的“系统参数→交易清算→股票业务→(股票/基金)红利是否扣税”参数来控制。(扣5%的利息税)。

2016-08-19

分笔与合笔的理解

遇到最普遍的一个困惑是分笔与分笔的问题。交易所是撮合交易,最小的成交单位就是成交合同,除了某些费用(比如佣金)特别规定按照证券品种或者特别规定按照合笔计算剩余的都是按照分笔计算。分笔与合笔中最常见的问题是尾差问题,分笔是成交事实,合笔一般是为了现实中交易划账扣款的方便,但是为了方便性不能违反成交事实,因此合笔做账时应该补上尾差。净价和全价与分笔合笔经常挂钩,买入利息的计算有分笔和合笔计算两种方式,一般全价交易债券按分笔计算,净价交易债券按合笔计算,系统通过参数“债券交易”“上海合笔计算买卖利息的债券类别”。手工录入的交易都是合笔的,直接进入tqsk表中。tcjhb里面存储的是分笔流水记录。

发生额与余额

股票的送股业务生成了一个看似很奇怪的凭证,借贷科目和借贷方向完全一样,金额是一正一负都是0.01。这里面引入了一个发生额的。如果一借一贷就说明有转账发生,事实上没有转账发生这就违反了事实。都是0.01是因为上交所最小的变动单位是0.01,如果是0的话,说明业务没有发生,显然不能为0。送股业务对凭证上的影响是在没有增加股本的情况下,数量发生了变化。余额和发生额是系统计算的两个基本概念,计算科目余额的时候都是先统计借、贷方向上的各自发生额,然后计算出余额。二者在业务上有着不同的解释。

显示oracle对象

dba,all,user三种级别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
select view_name from dba_views
--for all accessible views (accessible by logged user)
select view_name from all_views
--for views owned by logged user
select view_name from user_views
--for views owned by current logged user
SELECT view_name, owner
FROM sys.all_views
ORDER BY owner, view_name

通过OBJECTS查找

1
2
3
4
5
--USER_OBJECTS:
SELECT *
FROM USER_OBJECTS
WHERE object_type = 'PROCEDURE'
AND object_name = 'MY_STORED_PROCEDURE'

查找包源码

1
2
3
4
5
6
7
8
9
10
11
12
13
--查找包
SELECT *
FROM all_source
WHERE TYPE = 'PACKAGE BODY' AND name = '<your package name>'
ORDER BY line;
--查找包源码
SELECT line, text
FROM dba_source
WHERE owner = ?
AND name = ?
AND type = 'PROCEDURE'
ORDER BY line

查找视图源码

1
2
--查找视图源码
SELECT view_name, text FROM user_views;

aria2c用法

安装aria2c

1
sudo apt-get install aria2 # aria2c是aria2里面的一个子程序

aria2c 下载实例

1
2
3
4
5
6
7
8
9
10
11
12
13
aria2c http://AAA.BBB.CCC/file.zip #普通下载
aria2c -s 8 http://AAA.BBB.CCC/file.zip #开8个线程下载
aria2c http://AAA.BBB.CCC/file.zip ftp://DDD.EEE.FFF/GGG/file.zip #从不同的地址下载同一文件
aria2c http://AAA.BBB.CCC/file.zip ftp://DDD.EEE.FFF/GGG/file.zip #支持不同的协议下载同一文件
aria2c -o test.torrent http://AAA.BBB.CCC/file.torrent #下载BT种子
aria2c --max-upload-limit 40K -T file.torrent #设定BT最大上传速度
aria2c http://AAA.BBB.CCC/file.metalink #从metalink下载文件
#注:https下载依赖于安装gnu tls或openssl
# bt下载依赖于安装gnu tls+libgcrypt或openssl
# metalink下载依赖于安装libxml2

linux终端图形化输出git提交历史

添加别名到主shell 配置文件

1
2
3
4
5
6
7
alias git-graph='git log --graph --full-history --all --color \
--pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"'
➜ haha git:(sius) ✗ git-graph
* 1b37051 (HEAD -> sius) hehhef
* 9c519ea this is siys branch
* 6f4c647 (source) source branch added
* f0628d5 (master) master 分支添加