增加同花顺复权数据计算复权因子

This commit is contained in:
钱纯净
2025-09-27 17:39:11 +08:00
parent 2566ef5cec
commit 47084b1112
3 changed files with 72 additions and 2 deletions

View File

@@ -0,0 +1,32 @@
package main
import (
"github.com/injoyai/logs"
"github.com/injoyai/tdx"
"github.com/injoyai/tdx/extend"
"time"
)
func main() {
c, err := tdx.DialDefault()
logs.PanicErr(err)
ks, fs, err := extend.GetTHSDayKlineFactorFull("000001", c)
logs.PanicErr(err)
m := map[int64]*extend.THSFactor{}
for _, v := range fs {
m[v.Date] = v
}
for _, v := range ks[0] {
logs.Debugf("%s 不复权:%.2f 前复权:%.2f 后复权:%.2f \n",
time.Unix(v.Date, 0).Format(time.DateOnly),
v.Close.Float64(),
v.Close.Float64()*m[v.Date].QFactor,
v.Close.Float64()*m[v.Date].HFactor,
)
}
}

View File

@@ -15,10 +15,36 @@ import (
const (
UrlTHSDayKline = "http://d.10jqka.com.cn/v6/line/hs_%s/0%d/all.js"
THS_BFQ uint8 = 0 //不复权
THS_QFQ uint8 = 1 //前复权
THS_HFQ uint8 = 2 //后复权
)
// GetTHSDayKlineFactorFull 增加计算复权因子
func GetTHSDayKlineFactorFull(code string, c *tdx.Client) ([3][]*Kline, []*THSFactor, error) {
ks, err := GetTHSDayKlineFull(code, c)
if err != nil {
return [3][]*Kline{}, nil, err
}
mQPrice := make(map[int64]float64)
for _, v := range ks[1] {
mQPrice[v.Date] = v.Close.Float64()
}
mHPrice := make(map[int64]float64)
for _, v := range ks[2] {
mHPrice[v.Date] = v.Close.Float64()
}
fs := make([]*THSFactor, 0, len(ks[0]))
for _, v := range ks[0] {
fs = append(fs, &THSFactor{
Date: v.Date,
QFactor: mQPrice[v.Date] / v.Close.Float64(),
HFactor: mHPrice[v.Date] / v.Close.Float64(),
})
}
return ks, fs, nil
}
/*
GetTHSDayKlineFull
获取[不复权,前复权,后复权]数据,并补充成交金额数据
@@ -70,8 +96,8 @@ GetTHSDayKline
后复权,和通达信,东方财富都对不上
*/
func GetTHSDayKline(code string, _type uint8) ([]*Kline, error) {
if _type != THS_QFQ && _type != THS_HFQ {
return nil, fmt.Errorf("数据类型错误,例如:前复权1或后复权2")
if _type != THS_BFQ && _type != THS_QFQ && _type != THS_HFQ {
return nil, fmt.Errorf("数据类型错误,例如:不复权0或前复权1或后复权2")
}
code = protocol.AddPrefix(code)

12
extend/ths-factor.go Normal file
View File

@@ -0,0 +1,12 @@
package extend
//const (
// // UrlTHSFactor https://d.10jqka.com.cn/v6/line/hs_000001/01/2016.js
// UrlTHSFactor = "https://d.10jqka.com.cn/v6/line/hs_%s/0%d/%d.js"
//)
type THSFactor struct {
Date int64 `json:"date"` //时间
QFactor float64 `json:"q_factor"` //前复权因子
HFactor float64 `json:"h_factor"` //后复权因子
}