-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathfinance_data.go
More file actions
179 lines (146 loc) · 4.23 KB
/
Copy pathfinance_data.go
File metadata and controls
179 lines (146 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
package tushare
import (
"fmt"
)
// Income 获取上市公司财务利润表数据
func (api *TuShare) Income(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "income",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// BalanceSheet 获取上市公司资产负债表
func (api *TuShare) BalanceSheet(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "balancesheet",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// CashFlow 获取上市公司现金流量表
func (api *TuShare) CashFlow(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "cashflow",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// Forecast 获取业绩预告数据
func (api *TuShare) Forecast(params map[string]string, fields []string) (*APIResponse, error) {
// Check param
_, hasTsCode := params["ts_code"]
_, hasAnnDate := params["ann_date"]
// ts_code & ann_date required
if (!hasTsCode && !hasAnnDate) || (hasTsCode && hasAnnDate) {
return nil, fmt.Errorf("Need one argument ts_code or ann_date")
}
body := map[string]interface{}{
"api_name": "forecast",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// Dividend 分红送股数据
func (api *TuShare) Dividend(params map[string]string, fields []string) (*APIResponse, error) {
body := map[string]interface{}{
"api_name": "dividend",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// Express 获取上市公司业绩快报
func (api *TuShare) Express(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "express",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// FinaIndicator 获取上市公司财务指标数据
func (api *TuShare) FinaIndicator(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "fina_indicator",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// FinaAudit 获取上市公司定期财务审计意见数据
func (api *TuShare) FinaAudit(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "fina_audit",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// FinaMainbz 获得上市公司主营业务构成,分地区和产品两种方式
func (api *TuShare) FinaMainbz(params map[string]string, fields []string) (*APIResponse, error) {
// Check params
_, hasTsCode := params["ts_code"]
if !hasTsCode {
return nil, fmt.Errorf("ts_code is a required argument")
}
body := map[string]interface{}{
"api_name": "fina_mainbz",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}
// DisclosureDate 获取财报披露计划日期
func (api *TuShare) DisclosureDate(params map[string]string, fields []string) (*APIResponse, error) {
body := map[string]interface{}{
"api_name": "disclosure_date",
"token": api.token,
"params": params,
"fields": fields,
}
return api.postData(body)
}