瀏覽代碼

当天股票信息表部分字段补齐

wanggangtao 5 年之前
父節點
當前提交
e1bcd477fe
共有 3 個文件被更改,包括 101 次插入4 次删除
  1. 85 0
      lib/finance163.class.php
  2. 12 4
      lib/sina.class.php
  3. 4 0
      lib/table/table_day_k_base.class.php

+ 85 - 0
lib/finance163.class.php

@@ -41,6 +41,13 @@ class Finance163
         return $content1;
     }
 
+
+    /***
+     * @param $stock_code
+     * @param $start_date
+     * @param $end_date
+     * @return mixed
+     */
     static public function get_history_index_csi300($stock_code,$start_date,$end_date)
     {
         $code = self::stock_block($stock_code);
@@ -79,6 +86,13 @@ class Finance163
         return $msg;
     }
 
+    /***
+     * @param $stock_code
+     * @param $start_date
+     * @param $end_date
+     * @return mixed
+     *
+     */
     static public function get_history_index_gem($stock_code,$start_date,$end_date)
     {
         $code = self::stock_block($stock_code);
@@ -116,6 +130,13 @@ class Finance163
         }
         return $msg;
     }
+
+    /***
+     * @param $stock_code
+     * @param $start_date
+     * @param $end_date
+     * @return mixed
+     */
     static public function get_history_index_kc50($stock_code,$start_date,$end_date)
     {
         $code = self::stock_block($stock_code);
@@ -153,6 +174,13 @@ class Finance163
         }
         return $msg;
     }
+
+    /***
+     * @param $stock_code
+     * @param $start_date
+     * @param $end_date
+     * @return mixed
+     */
     static public function get_history_index_scz($stock_code,$start_date,$end_date)
     {
         $code = self::stock_block($stock_code);
@@ -190,6 +218,13 @@ class Finance163
         }
         return $msg;
     }
+
+    /***
+     * @param $stock_code
+     * @param $start_date
+     * @param $end_date
+     * @return mixed
+     */
     static public function get_history_index_sh($stock_code,$start_date,$end_date)
     {
         $code = self::stock_block($stock_code);
@@ -227,6 +262,15 @@ class Finance163
         }
         return $msg;
     }
+
+    /****
+     * @param $stock_code
+     * @param $start_date
+     * @param $end_date
+     * @return mixed|string
+     * 王刚涛
+     * 获取上证50的历史数据
+     */
     static public function get_history_index_sh50($stock_code,$start_date,$end_date)
     {
         $msg="";
@@ -266,7 +310,48 @@ class Finance163
         return $msg;
     }
 
+    /***
+     * 获取股票交易的当天数据,在新浪的文件中调用该函数,
+     * 用于补齐字段信息
+     * startdate+1=enddate
+     */
+    static public function get_day_k_data($stock_code){
+        $date=date("Ymd",time());//设置开始时间和结束时间
+//        $start_date=$date;
+//        $end_date=$date;
+        $start_date=20201123;
+        $end_date=20201123;
 
+        $code = self::stock_block($stock_code);
+//        $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code .  "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;LCLOSE;CHG;PCHG;TURNOVER;";
+        $url = "http://quotes.money.163.com/service/chddata.html?code=" . $code . "&start=" . $start_date . "&end=" . $end_date . "&fields=TOPEN;HIGH;LOW;TCLOSE;VATURNOVER;VOTURNOVER;LCLOSE;CHG;PCHG;TURNOVER";
+
+        //构建所要发送的url,前收盘价,涨跌幅,涨跌价,换手率
+        $content1=Finance163::curl_get_data($url);
+        if (!empty($content1[1])) {
+            for ($i = count($content1) - 1; $i >0; $i--) {//排除日期,代码等标题栏
+                if (!empty($content1[$i])) {
+                    $content3 = explode(",", iconv("gbk", "utf-8", $content1[$i]));
+                }
+                else{
+                    continue;
+                }
+//                解析返回的历史数据
+                $data['close_price_qfq'] = floatval($content3[9]);//前收盘价
+                $data['increase_price'] = floatval($content3[10]);//涨跌幅
+                $data['increase_value'] = floatval($content3[11]);//涨跌价
+                $data['turnover'] = floatval($content3[12]);//换手率
+                //将所要存储的数据放入一个数组中
+                $stock_name = $content3[1];
+                if ($data['close_price'] == 0) {//当收盘价为0的时候,表示此时的基于9-3点,所以不存储
+                    continue;
+                }
+
+            }
+        }
+//        var_dump($data);
+        return $data;
+    }
     /***
      * @param $code
      * @return int

+ 12 - 4
lib/sina.class.php

@@ -277,6 +277,7 @@ class Sina
      * @param $date
      * @return mixed
      * 日k线表 day_k_******(每月存一张表,比如boniu_day_k_202011)
+     * 抓取当天的数据,结合163的接口
      *
      */
     static public function get_day_k_base($code, $date)
@@ -298,14 +299,21 @@ class Sina
         $data['lowest_price'] = floatval($content3[5]);//今日最低价
         $data['amount'] = floatval($content3[8]);//成交的股票数,以百为单位
         $data['value'] = floatval($content3[9]);//成交金额以万为单位
-        return Day_k_base::add($data, $date);
+
+
+        //调用网易接口获取其他字段
+        $data163=Finance163::get_day_k_data($code);
+        $data['close_price_qfq'] = floatval($data163["close_price_qfq"]);//成交金额以万为单位
+        $data['increase_price'] = floatval($data163["increase_price"]);//成交金额以万为单位
+        $data['increase_value'] = floatval($data163["increase_value"]);//成交金额以万为单位
+        $data['turnover'] = floatval($data163["turnover"]);//成交金额以万为单位
+        
+
+         return Day_k_base::add($data, $date);
     }
 
 //除权除息表(boniu_xrxd_log)
 //st记录表(boniu_st_log)
-
-
-//获取历史数据的表
 }
 
 ?>

+ 4 - 0
lib/table/table_day_k_base.class.php

@@ -83,6 +83,10 @@ class Table_day_k_base extends Table {
              'day_k_lowest_price'    => array('number', $attr['lowest_price']),
              'day_k_amount'    => array('number', $attr['amount']),
              'day_k_value'    => array('number', $attr['value']),
+            'day_k_close_price_qfq'    => array('number', $attr['close_price_qfq']),
+            'day_k_increase_price'    => array('number', $attr['increase_price']),
+            'day_k_increase_value'    => array('number', $attr['increase_value']),
+            'day_k_turnover'    => array('number', $attr['turnover']),
         );
         return $this->pdo->sqlinsert($this->table_fullname, $param);
     }