发现K线,不同类型需要不同处理,小时以下(包含)需要除以100,日及以上则不需要

This commit is contained in:
钱纯净
2024-11-14 23:18:27 +08:00
parent 682c982ae2
commit b4b0375ecd
2 changed files with 22 additions and 4 deletions

View File

@@ -137,8 +137,26 @@ func (kline) Decode(bs []byte, Type uint8) (*KlineResp, error) {
k.Low = (open + last + low) / 10
last = last + open + _close
k.Volume = int64(getVolume(Uint32(bs[:4])) / 100)
k.Amount = Price(getVolume(Uint32(bs[4:8])) * 100) //转为分,并去除多余的小数
/*
发现不同的K线数据处理不一致,测试如下:
1分: 需要除以100
5分: 需要除以100
15分: 需要除以100
30分: 需要除以100
60分: 需要除以100
日: 不需要操作
周: 不需要操作
月: 不需要操作
季: 不需要操作
年: 不需要操作
*/
k.Volume = int64(getVolume(Uint32(bs[:4])))
switch Type {
case TypeKlineMinute, TypeKline5Minute, TypeKline15Minute, TypeKline30Minute, TypeKlineHour:
k.Volume /= 100
}
k.Amount = Price(getVolume(Uint32(bs[4:8])) * 100) //从元转为分,并去除多余的小数
bs = bs[8:]
resp.List = append(resp.List, k)

View File

@@ -51,11 +51,11 @@ const (
TypeKline15Minute uint8 = 1 // 15分钟K 线
TypeKline30Minute uint8 = 2 // 30分钟K 线
TypeKlineHour uint8 = 3 // 1小时K 线
TypeKlineDay2 uint8 = 4 // 日K 线
TypeKlineDay2 uint8 = 4 // 日K 线,未知
TypeKlineWeek uint8 = 5 // 周K 线
TypeKlineMonth uint8 = 6 // 月K 线
TypeKlineMinute uint8 = 7 // 1分钟
TypeKlineMinute2 uint8 = 8 // 1分钟K 线
TypeKlineMinute2 uint8 = 8 // 1分钟K 线,未知
TypeKlineDay uint8 = 9 // 日K 线
TypeKlineQuarter uint8 = 10 // 季K 线
TypeKlineYear uint8 = 11 // 年K 线