炒股盈亏审计方法_第1页
炒股盈亏审计方法_第2页
炒股盈亏审计方法_第3页
炒股盈亏审计方法_第4页
炒股盈亏审计方法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、炒股盈亏审计方法1. 审计事项企业审计利润利润的真实性和完整性2. 方法名称炒股盈亏审计方法3. 目标功能审计目标:检查某一特定期间炒股盈亏核算的的真实性、完整性、合法性,以及控制的有效性。审计功能:通过对被审计单位在证券公司所开设的证券交易账户的资金流水明细记录、历史成交流水记录和截止审计日的资金股票结存记录的审查,分析计算被审计单位特定会计期间(如某一会计年度、单位领导人经济责任期间)的证券交易的盈亏金额,通过与会计账簿的投资收益等科目的核对,以审查炒股盈亏会计核算是否真实完整、合法合规,分析其资产的保值增值情况。4. 所需数据炒股盈亏审计方法所需数据资料见下表。序号数据资料名称结构化非结

2、构化半结构化1资金明细表2历史成交表3资金股票表4结存股票相应起止日的收盘价(1)基础表:资金明细表(FB /0001)。数据元素:日期,摘要,证券代码,证券名称,操作,成交数量,成交均价,发生金额,手续费,印花税,其他杂费,本次金额,合同编号,交易市场,股东帐户。(2)基础表:历史成交表(FB /0001)。数据元素:序号,成交日期,成交时间,证券代码,证券名称,操作,成交数量,成交均价,成交金额,合同编号,发生金额,备注,交易市场,股东帐户。(3)基础表:资金股票表(FB /0003)。数据元素:证券代码,证券名称,股票余额,可用余额,成本价,买入均价,市价,市值,浮动盈亏,盈亏比(),实

3、现盈亏,交易市场,股东帐户。(4)结存股票相应起止日的收盘价(FB /0004)。数据元素:证券代码,证券名称,市值。5. 分析步骤1炒股盈亏审计方法的ER模型构建 炒股盈亏审计方法的实体和关系如下:实体1:资金股票表实体2:历史成交表实体3:资金明细表关系1:买入或卖出股票关系2:拨入或拨出资金2炒股盈亏审计方法的数据模型构建实体及关系数据元素实体关系数据元素资金明细表日期,摘要,证券代码,证券名称,操作,成交数量,成交均价,发生金额,手续费,印花税,其他杂费,本次金额,合同编号,交易市场,股东帐户历史成交表序号,成交日期,成交时间,证券代码,证券名称,操作,成交数量,成交均价,成交金额,合

4、同编号,发生金额,备注,交易市场,股东帐户资金股票表证券代码,证券名称,股票余额,可用余额,成本价,买入均价,市价,市值,浮动盈亏,盈亏比(),实现盈亏,交易市场,股东帐户结存股票相应起止日的收盘价证券代码,证券名称,市值。3炒股盈亏审计方法的分析步骤(1)历史成交表记录和资金股票表记录,得出有关证券代码。(2)根据资金股票表的股票结存数,历史成交表记录的当期买卖记录,计算出审计所需时点的证券结存数量。(3)根据结存数量,通过证券交易软件查出相应时点的股票收盘价,计算审计所需期间盈亏。6. 流程图7. 方法语言(一)用SQL语句描述如下:(1)历史成交表记录和资金股票表记录,得出有关证券代码。

5、select distinct 证券代码 into 代码表 from (select 证券代码 from 资金股票表 union all select 证券代码 from 历史成交表) a(2)计算涉及到的证券代码生成过渡表temp1select a.证券代码,a.买入数量,b.卖出数量 into temp1 from (select 证券代码,sum(成交数量) as 买入数量 from 历史成交表 where 成交日期>20100101 and 操作 like '买入'and (发生金额<>0 or 备注 not like '%配号%')

6、group by 证券代码) a inner join (select 证券代码,sum(成交数量) as 卖出数量 from 历史成交表 where 成交日期>20100101 and 操作 like '卖出'and (发生金额<>0 or 备注 not like '%配号%') group by 证券代码) b on a.证券代码=b.证券代码(3)计算涉及到的证券代码生成过渡表temp2select a.证券代码,aa.股票余额 into temp2 from 代码表 a left join 资金股票表 aa on a.证券代码=aa.证

7、券代码(4)计算涉及到的证券代码生成过渡表temp3select aa.证券代码,iif(isnull(aa.股票余额),0,aa.股票余额) as 股票余额,iif(isnull(bb.买入数量),0,bb.买入数量) as 买入数量,iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 卖出数量,iif(isnull(aa.股票余额),0,aa.股票余额)-iif(isnull(bb.买入数量),0,bb.买入数量)+iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 期末数量,0 as 期末单价 into temp3 from temp2 aa le

8、ft join temp1 bb on aa.证券代码=bb.证券代码(5)计算涉及到的证券代码生成过渡表temp11 select a.证券代码,a.买入数量,b.卖出数量 into temp11 from (select 证券代码,sum(成交数量) as 买入数量 from 历史成交表 where 成交日期>20070101 and 操作 like '买入'and (发生金额<>0 or 备注 not like '%配号%') group by 证券代码) a inner join (select 证券代码,sum(成交数量) as 卖出

9、数量 from 历史成交表 where 成交日期>20070101 and 操作 like '卖出'and (发生金额<>0 or 备注 not like '%配号%') group by 证券代码) b on a.证券代码=b.证券代码(6)计算涉及到的证券代码生成过渡表temp33 select aa.证券代码,iif(isnull(aa.股票余额),0,aa.股票余额) as 股票余额,iif(isnull(bb.买入数量),0,bb.买入数量) as 买入数量,iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 卖出

10、数量,iif(isnull(aa.股票余额),0,aa.股票余额)-iif(isnull(bb.买入数量),0,bb.买入数量)+iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 期初数量,0 as 期初单价 into temp33 from temp2 aa left join temp11 bb on aa.证券代码=bb.证券代码(7)计算涉及到的证券代码整理过渡表temp3 update temp3 set 期末单价=8 where 期末数量<>0(8)计算涉及到的证券代码整理过渡表temp3 select 证券代码,期末单价 from temp3 w

11、here 期末数量<>0(9)计算涉及到的证券代码整理过渡表temp33 update temp33 set 期初单价=9 where 期初数量<>0(10)计算审计所需期间盈亏。 select a.证券代码,a.买入数量, a.买入金额,b.卖出数量,b.卖出金额 into 当期成交表 from (select 证券代码,sum(成交数量) as 买入数量, sum(成交金额) as 买入金额 from 历史成交表 where (成交日期>20070101 and 成交日期<20100101) and 操作 like '买入'and (发生

12、金额<>0 or 备注 not like '%配号%') group by 证券代码) a inner join (select 证券代码,sum(-成交数量) as 卖出数量, sum(-成交金额) as 卖出金额 from 历史成交表 where (成交日期>20070101 and 成交日期<20100101) and 操作 like '卖出'and (发生金额<>0 or 备注 not like '%配号%') group by 证券代码) b on a.证券代码=b.证券代码(11)计算审计所需期间盈

13、亏生成成交一览表 select a.证券代码,aa.期初数量,aa.期初单价, iif(isnull(bb.买入数量),0,bb.买入数量) as 买入数量, iif(isnull(bb.买入金额),0,bb.买入金额) as 买入金额, iif(isnull(bb.卖出数量),0,bb.卖出数量) as 卖出数量, iif(isnull(bb.卖出数量),0,bb.卖出金额) as 卖出金额,cc.期末数量,cc.期末单价 into 成交一览表 from (代码表 a left join temp33 aa on a.证券代码=aa.证券代码) left join 当期成交表 bb on a

14、.证券代码=bb.证券代码) left join temp3 cc on a.证券代码=cc.证券代码(12)计算审计所需期间盈亏 select sum(盈亏) as 当期盈亏 from (select sum(-期初数量*期初单价-买入金额+卖出金额+期末数量*期末单价) as 盈亏 from 成交一览表 union all select sum(发生金额) as 盈亏 from 资金明细表 where 操作 in ('罚息归本','股息入帐','红股入帐','利税代扣','利息归本','批量罚息归

15、9;,'批量利税代','批量利息归','认购行权') a(二)用ASL语言描述如下:var SQLstr1,CurQuery1,SQLstr2,CurQuery2,ab,Startdate,Enddate,isempty,zqdm,zqdj;beginStartdate:=newread('审计炒股盈亏开始日(格式yyyymmdd),如20070101');Enddate:=newread('审计炒股盈亏结束日(格式yyyymmdd),如20091231');SQLstr1:='select distinc

16、t 证券代码 from (select 证券代码 from 资金股票表 union all select 证券代码 from 历史成交表) a'createtemptable('代码表',SQLstr1);ShowMsg('生成代码表');/计算涉及到的证券代码SQLstr2:='select a.证券代码,a.买入数量,b.卖出数量 from (select 证券代码,sum(成交数量) as 买入数量 from 历史成交表 where 成交日期> '+Enddate+' and 操作 like ''买入&

17、#39;'and (发生金额<>0 or 备注 not like ''%配号%'') group by 证券代码) a inner join (select 证券代码,sum(成交数量) as 卖出数量 from 历史成交表 where 成交日期>'+Enddate+' and 操作 like ''卖出''and (发生金额<>0 or 备注 not like ''%配号%'') group by 证券代码) b on a.证券代码=b.证券代码

18、'createtemptable('temp1',SQLstr2);ShowMsg('生成过渡表temp1');SQLstr1:='select a.证券代码,aa.股票余额 from 代码表 a left join 资金股票表 aa on a.证券代码=aa.证券代码'createtemptable('temp2',SQLstr1);ShowMsg('生成过渡表temp2');SQLstr1:='select aa.证券代码,iif(isnull(aa.股票余额),0,aa.股票余额) as 股票

19、余额,iif(isnull(bb.买入数量),0,bb.买入数量) as 买入数量,iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 卖出数量,iif(isnull(aa.股票余额),0,aa.股票余额)-iif(isnull(bb.买入数量),0,bb.买入数量)+iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 期末数量,0 as 期末单价 from temp2 aa left join temp1 bb on aa.证券代码=bb.证券代码'createtemptable('temp3',SQLstr1);ShowMsg

20、('生成过渡表temp3');SQLstr1:='select a.证券代码,a.买入数量,b.卖出数量 from (select 证券代码,sum(成交数量) as 买入数量 from 历史成交表 where 成交日期>'+Startdate+' and 操作 like ''买入''and (发生金额<>0 or 备注 not like ''%配号%'') group by 证券代码) a inner join (select 证券代码,sum(成交数量) as 卖出数量

21、 from 历史成交表 where 成交日期>'+Startdate+' and 操作 like ''卖出''and (发生金额<>0 or 备注 not like ''%配号%'') group by 证券代码) b on a.证券代码=b.证券代码'createtemptable('temp11',SQLstr1);ShowMsg('生成过渡表temp11');SQLstr1:='select aa.证券代码,iif(isnull(aa.股票余额

22、),0,aa.股票余额) as 股票余额,iif(isnull(bb.买入数量),0,bb.买入数量) as 买入数量,iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 卖出数量,iif(isnull(aa.股票余额),0,aa.股票余额)-iif(isnull(bb.买入数量),0,bb.买入数量)+iif(isnull(-bb.卖出数量),0,-bb.卖出数量) as 期初数量,0 as 期初单价 from temp2 aa left join temp11 bb on aa.证券代码=bb.证券代码'createtemptable('temp33&#

23、39;,SQLstr1);ShowMsg('生成过渡表temp33');/SQLstr1:='update temp3 set 期末单价=8 where 期末数量<>0'/ShowMsg('生成的SQL为: '+SqlStr1);/ExecuteUpdate(SQLstr1);SQLstr1:='select 证券代码,期末单价 from temp3 where 期末数量<>0'createtemptable('abcd',SQLstr1);CurQuery1:=CreateQ(sqlstr

24、1,-1);isempty:=qeof(CurQuery1);if isempty<>1 thenbegin repeat zqdm:=leftstr(qfdvalue(CurQuery1,'证券代码'),6); zqdj:=newread('请输入证券代码'+zqdm+'截止'+Enddate+'交易日收盘价'); SQLstr2:='update temp3 set 期末单价='+zqdj+' where 证券代码='+zqdm+'' ExecuteUpdate(SQ

25、Lstr2); isempty:=QMov(CurQuery1,1); isempty:=QEof(CurQuery1); zqdm:=leftstr(qfdvalue(CurQuery1,'证券代码'),6); until IsEmpty=1;end;/SQLstr1:='update temp33 set 期初单价=9 where 期初数量<>0'/ShowMsg('生成的SQL为: '+SqlStr1);/ExecuteUpdate(SQLstr1);SQLstr1:='select 证券代码,期初单价 from tem

26、p33 where 期初数量<>0'createtemptable('abcd',SQLstr1);CurQuery1:=CreateQ(sqlstr1,-1);isempty:=qeof(CurQuery1);if isempty<>1 thenbegin repeat zqdm:=leftstr(qfdvalue(CurQuery1,'证券代码'),6); zqdj:=newread('请输入证券代码'+zqdm+'截止'+Startdate+'前一交易日收盘价'); SQLst

27、r2:='update temp33 set 期初单价='+zqdj+' where 证券代码='+zqdm+'' ExecuteUpdate(SQLstr2); isempty:=QMov(CurQuery1,1); isempty:=QEof(CurQuery1); zqdm:=leftstr(qfdvalue(CurQuery1,'证券代码'),6); until IsEmpty=1;end;SQLstr1:='select a.证券代码,a.买入数量, a.买入金额,b.卖出数量,b.卖出金额 from (sele

28、ct 证券代码,sum(成交数量) as 买入数量, sum(成交金额) as 买入金额 from 历史成交表 where (成交日期>'+Startdate+' and 成交日期<'+Enddate+') and 操作 like ''买入''and (发生金额<>0 or 备注 not like ''%配号%'') group by 证券代码) a inner join (select 证券代码,sum(-成交数量) as 卖出数量, sum(-成交金额) as 卖出金额

29、from 历史成交表 where (成交日期>'+Startdate+' and 成交日期<'+Enddate+') and 操作 like ''卖出''and (发生金额<>0 or 备注 not like ''%配号%'') group by 证券代码) b on a.证券代码=b.证券代码'createtemptable('当期成交表',SQLstr1);ShowMsg('生成过渡表:当期成交表');SQLstr1:='s

30、elect a.证券代码,aa.期初数量,aa.期初单价, iif(isnull(bb.买入数量),0,bb.买入数量) as 买入数量, iif(isnull(bb.买入金额),0,bb.买入金额) as 买入金额, iif(isnull(bb.卖出数量),0,bb.卖出数量) as 卖出数量, iif(isnull(bb.卖出数量),0,bb.卖出金额) as 卖出金额,cc.期末数量,cc.期末单价 from (代码表 a left join temp33 aa on a.证券代码=aa.证券代码) left join 当期成交表 bb on a.证券代码=bb.证券代码) left j

31、oin temp3 cc on a.证券代码=cc.证券代码'createtemptable('成交一览表',SQLstr1);ShowMsg('生成过渡表:成交一览表');SQLstr1:='select sum(盈亏) as 当期盈亏 from (select sum(-期初数量*期初单价-买入金额+卖出金额+期末数量*期末单价) as 盈亏 from 成交一览表 union all select sum(发生金额) as 盈亏 from 资金明细表 where 操作 in (''罚息归本'',''股息入帐'',''红股入帐'',''利税代扣'',''利息归本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论