• 沪深股市的数据挖掘(5)课题总结


    今天是月底,所以要回顾本月的课题:数据挖掘。

    数据挖掘是一门新兴学科,目前正大行其道。从微软的excel中的数据挖掘插件到具体公司要求的BI,都离不开这个课题。而我本月的主要目的是进行数据挖掘的一些回顾与练习,并以实际的沪深股市为例,从中获取一些经验。

    无论是分类还是聚类,无论是差异点分析还是神经网络的,它们大致的过程都是一样的,而且这里涉及到的东西还有模式的识别问题(如图像、声音等)。可以说,数据挖掘的技术已经深入到计算机的各个角落。

    然而,万变不离其宗,主线是清晰的:数据的收集--数据的处理--数据的分析--结果的展示与验证。 本次挖掘想利用SAP的BW整套工具,最终没有采用,而仅仅是在SQLserver上进行了数据的处理和分析,真有点小儿科的意味。不过,至少从几个方面得到了收获:1,数据的处理预估时间问题。我在前20个关联关系处理需要1个小时左右进行了线性的预估,得出了整个数据处理大致需要3天左右的时间,实际时间基本上吻合。2,采用interger处理与float处理相比,竟然要慢一些。难以理解。原来以为数字都采用float的计算,会涉及到位数和计算周期较长的问题,实际的情况却是采用interger处理比float处理需要时间多了40%。3,熟悉了一些基本sqlserver操作:如需要用到的临时表,游标等。还有就是sql语句的特殊写法等问题。

    回到沪深股市上来,我采用了提前一天(数据前面有)和提前两天的关系来对比,发现提前一天的值要高些,这点很奇怪。可惜没有时间分析。

    24225 SH601988   SH600580   2 2008年      391798 245 7.99587755102041
    24227 SH601988   SH600784   2 2008年      391470 245 7.98918367346939
    24229 SH601988   SZ000011   2 2008年      391415 245 7.9880612244898
    24222 SH601988   SH600227   2 2008年      390995 245 7.97948979591837
    20005 SH600519   SH600580   2 2008年      390227 245 7.96381632653061
    24224 SH601988   SH600467   2 2008年      389923 245 7.95761224489796
    24359 SZ000011   SZ000011   2 2008年      354725 223 7.95347533632287
    24221 SH601988   SH600114   2 2008年      389592 245 7.95085714285714
    20009 SH600519   SZ000011   2 2008年      389519 245 7.94936734693878
    15819 SH600006   SH600122   2 2008年      387602 244 7.94266393442623
    24035 SH601398   SH600580   2 2008年      387525 244 7.94108606557377
    24209 SH601939   SZ000011   2 2008年      389102 245 7.94085714285714
    28815 SZ002007   SH600580   2 2008年      385391 243 7.92985596707819
    24319 SZ000007   SZ000011   2 2008年      331458 209 7.92961722488038
    24135 SH601857   SH600580   2 2008年      385318 243 7.92835390946502
    27755 SZ000869   SH600580   2 2008年      385085 243 7.92355967078189
    21629 SH600697   SZ000011   2 2008年      388142 245 7.92126530612245
    24037 SH601398   SH600784   2 2008年      386493 244 7.91993852459016
    18099 SH600276   SZ000011   2 2008年      388033 245 7.91904081632653
    24205 SH601939   SH600580   2 2008年      387979 245 7.9179387755102

    有关的sql语句如下:

    存储过程:计算所有股票关系值。

    ALTER PROCEDURE [dbo].[BUILDRESULT]
     
    AS
    BEGIN
     declare   @stocka   nchar(10) 
     declare   Type_Cursor_StockA   CURSOR   FOR  
       select   stockname   from  tbstocknum
     open   Type_Cursor_StockA  
       fetch   next   from   Type_Cursor_StockA   into   @stocka
       while   @@FETCH_STATUS=0  
       begin  

       exec insertstocka @stockname = @stocka

       exec calcallstock

       exec SAVETEMPRESULTANDDELETE

         fetch   next  from   Type_Cursor_StockA into @stocka
       end  
       close   Type_Cursor_StockA  
    deallocate   Type_Cursor_StockA  
    END

    存储过程:计算AB股票的关系值

    ALTER PROCEDURE [dbo].[CalcABStock]
     -- Add the parameters for the stored procedure here
     @stockb nchar(10)
    AS
    BEGIN
      declare @sumtotal float
      declare @stock1  char(10)
      declare @stock2  char(10)

      set @stock1 = ( select top 1 stockname from tempa)
      set @stock2 =@stockb
      
      select a.datenum as datenum, 2000-abs((a.updown-b.updown))  as tempscore into #temp_table2
           from tempa a,tempb b
        where a.datenum = b.datenum-2 and b.stockname = @stock2

      UPDATE [stockdb].[dbo].[TEMPA]
         SET [TEMPSCORE] = 1000

      upDATE c
         SET c.[TEMPSCORE] = d.tempscore
      from tempa c, #temp_table2 d
      where c.datenum = d.datenum

      drop table #temp_table2

      UPDATE [stockdb].[dbo].[TEMPA]
         SET [TEMPSCORE] = 1000
      where [TEMPSCORE] is null

      set @sumtotal = (select sum(tempscore)  from tempa)
      INSERT INTO [stockdb].[dbo].[TEMPRESULT]
           ([A]
           ,[B]
           ,[LIMITDATE]
           ,[PERIOD]
           ,[SCORE])
        VALUES
           (@stock1,
         @stock2,
         2,
         '2008年',
         @sumtotal)
    END

    存储过程:计算A股票与所有股票的关系值

    ALTER PROCEDURE [dbo].[CALCALLSTOCK]
     
    AS
    BEGIN
     declare   @stockname   nchar(10) 
     declare   Type_Cursor   CURSOR   FOR  
       select   stockname   from  tbstocknum
     open   Type_Cursor  
       fetch   next   from   Type_Cursor   into   @stockname
       while   @@FETCH_STATUS=0  
       begin  
         exec calcabstock @stockb = @stockname
         fetch   next     from   Type_Cursor into @stockname
       end  
       close   Type_Cursor  
     deallocate   Type_Cursor  
    END

    存储过程:初始化处理

    ALTER PROCEDURE [dbo].[INSERTSTOCKA]
     -- Add the parameters for the stored procedure here
     @stockname nchar(10)
    AS
    BEGIN
     -- SET NOCOUNT ON added to prevent extra result sets from
     -- interfering with SELECT statements.
     SET NOCOUNT ON;
        delete from tempa

        INSERT INTO [stockdb].[dbo].[TEMPA]
               ([STOCKNAME]
               ,[DATENUM]
               ,[UPDOWN]
               )
         select [STOCKNAME]
               ,[DATENUM]
               ,[UPDOWN]
              
         from tempb
         where tempb.stockname = @stockname
       
    END

    存储过程:保存结果

    ALTER PROCEDURE [dbo].[SAVETEMPRESULTANDDELETE]
    AS
    BEGIN
     --保存结果到结果表中,并删除不需要的临时表
     declare @rownum int
     set @rownum = (select count(*) from tempa)

     INSERT INTO [stockdb].[dbo].[RESULT]
          ([A]
          ,[B]
          ,[LIMITDATE]
          ,[PERIOD]
          ,[SCORE],prddate)
      select top 10 a,b,limitdate,period,score,@rownum  from tempresult

     --update result
     --set result.prddate = @rownum
     --where result.prddate is null

     delete  from tempresult

     delete from tempa
    END

  • 相关阅读:
    WORD窗体保护密码清除
    在Fedora 23 Server和Workstation上安装LAMP(Linux, Apache, MariaDB和PHP)
    firefox 提示 ssl_error_unsupported_version 的解决方法
    算法题:求一个序列S中所有包含T的子序列(distinct sub sequence)
    Django模板输出Dict所有Value的效率问题
    笔记:LNK2001不代表链接器真的需要链接相关符号
    Windows Restart Manager 重启管理器
    advapi32.dll kernel32.dll 中的两套注册表API
    使用GDI+保存带Alpha通道的图像(续)
    使用GDI+保存带Alpha通道的图像
  • 原文地址:https://www.cnblogs.com/Beewolf/p/1446798.html
Copyright © 2020-2023  润新知