-
Notifications
You must be signed in to change notification settings - Fork 1
/
stock_date.go
49 lines (42 loc) · 1.07 KB
/
stock_date.go
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
package krx
import (
"sort"
)
type DailyStock struct {
Date string
EndPrice string
UpDown UpDown
DayOverDay string
Volume string
TradingValue string
StartValue string
Low string
High string
}
func GetStockBySymbolAndDate(symbol string, date int) ([]*DailyStock, error) {
s, err := getStockInfoBySymbol(symbol)
if err != nil {
return nil, err
}
sort.Slice(s.TBLDailyStock.DailyStock, func(i, j int) bool {
return s.TBLDailyStock.DailyStock[i].DayDate > s.TBLDailyStock.DailyStock[j].DayDate
})
dailyStock := make([]*DailyStock, len(s.TBLDailyStock.DailyStock))
for idx, d := range s.TBLDailyStock.DailyStock {
dailyStock[idx] = &DailyStock{
Date: d.DayDate,
EndPrice: d.DayEndPrice,
UpDown: castToUpDown(d.DayDungrak),
DayOverDay: d.DayGetDebi,
Volume: d.DayVolume,
TradingValue: d.DayGetAmount,
StartValue: d.DayStart,
Low: d.DayLow,
High: d.DayHigh,
}
}
if len(dailyStock) < date {
return dailyStock, nil
}
return dailyStock[:date], nil
}