zoukankan      html  css  js  c++  java
  • go csv 处理

    感谢网易,历史数据下载(CSV格式)

    下面是获取工商银行0601398,从2014年07月20日到2015年05月08日之间的历史数据,文件为CSV格式

    http://quotes.money.163.com/service/chddata.html?code=0601398&start=20140720&end=20150508

    code表示股票代码, 上海股票最前边加0,深圳股票最前边加1

    创业版股票代码是以3开头的,为深圳股票,所以code=1300142.

    上海股票代码都是以6开头的,code=0601398.

    深圳股票代码非创业版股票以0开头,code=1000089.
    ————————————————
    下面,用代码

    从http://quotes.money.163.com/service/chddata.html?code=1000002&start=20190102&end=20200608

    访问csv并打印输出

    package main
    
    import (
        "bytes"
        "encoding/csv"
        "fmt"
        "io/ioutil"
        "net/http"
        "strconv"
        "strings"
        "time"
    )
    
    func main() {
        now := time.Now()
        end := now.Format("20060102")
        start := now.AddDate(0, 0, -120).Format("20060102")
        url := "http://quotes.money.163.com/service/chddata.html?code=0600519&start=" + start + "&end=" + end
        req, _ := http.NewRequest("GET", url, nil)
        // 设置header
        req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,like GeCKO) Chrome/45.0.2454.85 Safari/537.36 115Broswer/6.0.3")
        req.Header.Set("Referer", "https://movie.douban.com/")
        req.Header.Set("Connection", "keep-alive")
        resp, err := (&http.Client{}).Do(req)
        if err != nil {
            panic(err)
        }
        csv1, _ := ioutil.ReadAll(resp.Body)
        r2 := csv.NewReader(strings.NewReader(string(csv1)))
        ss, _ := r2.ReadAll()
    
        sz := len(ss)
        buf := new(bytes.Buffer)
        maxv := 0.0
        minv := 4096.0
        todayp, _ := strconv.ParseFloat(ss[1][3], 64)
        for i := 1; i < sz; i++ { //第0行是标题,从第1行取数据
            buf.WriteString(" " + ss[i][3] + " ")
            buf.WriteString("
    ")
            curp, _ := strconv.ParseFloat(ss[i][3], 64)
            if curp > maxv {
                maxv = curp
            }
            if curp < minv {
                minv = curp
            }
        }
        fmt.Println(buf.String())
        fmt.Printf("最大:%.2f", maxv)
        fmt.Printf("最小:%.2f", minv)
        fmt.Printf("今日:%.2f", todayp)
    
    }

    练练手而已。

    当然,用通达信自编指标会更方便。

    不要迷信指标。

    参考:

    https://blog.csdn.net/u011331731/article/details/101353475

    https://blog.csdn.net/fengmm521/article/details/78446501

    https://www.cnblogs.com/lj0019/p/7992320.html

    https://blog.csdn.net/weixin_44766484/article/details/105802794

    https://www.cnblogs.com/zhangym/p/6142738.html

  • 相关阅读:
    发布自己的包到Nuget上
    asp.net core 中的MD5加密
    asp.net core csrf
    KNN算法
    ios测试apk
    python多进程
    机顶盒 gettimeofday()获取毫秒溢出
    Kiggle:Digit Recognizer
    Kaggle:Titanic: Machine Learning from Disaster
    Python抓取微博评论
  • 原文地址:https://www.cnblogs.com/pu369/p/13066918.html
Copyright © 2011-2022 走看看