From e7e8c6a46a88b909dfd4dd507bc4b1966b4f2776 Mon Sep 17 00:00:00 2001 From: injoyai <1113655791@qq.com> Date: Thu, 10 Jul 2025 09:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A860Minute=E6=9D=A5=E6=9B=BF=E4=BB=A3Hou?= =?UTF-8?q?r,=E4=BF=9D=E7=95=99Hour=E4=BD=9C=E4=B8=BA60Minute=E7=9A=84?= =?UTF-8?q?=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client.go | 20 +++++++++++++++++--- protocol/model_kline.go | 2 +- protocol/types.go | 1 + protocol/unit.go | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/client.go b/client.go index e9556ad..39248f5 100644 --- a/client.go +++ b/client.go @@ -637,18 +637,32 @@ func (this *Client) GetKline30MinuteUntil(code string, f func(k *protocol.Kline) return this.GetKlineUntil(protocol.TypeKline30Minute, code, f) } +// GetKline60Minute 获取60分钟k线数据 +func (this *Client) GetKline60Minute(code string, start, count uint16) (*protocol.KlineResp, error) { + return this.GetKline(protocol.TypeKline60Minute, code, start, count) +} + // GetKlineHour 获取小时k线数据 func (this *Client) GetKlineHour(code string, start, count uint16) (*protocol.KlineResp, error) { - return this.GetKline(protocol.TypeKlineHour, code, start, count) + return this.GetKline(protocol.TypeKline60Minute, code, start, count) +} + +// GetKline60MinuteAll 获取60分钟k线全部数据 +func (this *Client) GetKline60MinuteAll(code string) (*protocol.KlineResp, error) { + return this.GetKlineAll(protocol.TypeKline60Minute, code) } // GetKlineHourAll 获取小时k线全部数据 func (this *Client) GetKlineHourAll(code string) (*protocol.KlineResp, error) { - return this.GetKlineAll(protocol.TypeKlineHour, code) + return this.GetKlineAll(protocol.TypeKline60Minute, code) +} + +func (this *Client) GetKline60MinuteUntil(code string, f func(k *protocol.Kline) bool) (*protocol.KlineResp, error) { + return this.GetKlineUntil(protocol.TypeKline60Minute, code, f) } func (this *Client) GetKlineHourUntil(code string, f func(k *protocol.Kline) bool) (*protocol.KlineResp, error) { - return this.GetKlineUntil(protocol.TypeKlineHour, code, f) + return this.GetKlineUntil(protocol.TypeKline60Minute, code, f) } // GetKlineDay 获取日k线数据 diff --git a/protocol/model_kline.go b/protocol/model_kline.go index b95dacd..6d581bd 100644 --- a/protocol/model_kline.go +++ b/protocol/model_kline.go @@ -161,7 +161,7 @@ func (kline) Decode(bs []byte, c KlineCache) (*KlineResp, error) { k.Volume = int64(getVolume(Uint32(bs[:4]))) bs = bs[4:] switch c.Type { - case TypeKlineMinute, TypeKline5Minute, TypeKlineMinute2, TypeKline15Minute, TypeKline30Minute, TypeKlineHour, TypeKlineDay2: + case TypeKlineMinute, TypeKline5Minute, TypeKlineMinute2, TypeKline15Minute, TypeKline30Minute, TypeKline60Minute, TypeKlineDay2: k.Volume /= 100 } k.Amount = Price(getVolume(Uint32(bs[:4])) * 1000) //从元转为厘,并去除多余的小数 diff --git a/protocol/types.go b/protocol/types.go index 444331f..294954a 100644 --- a/protocol/types.go +++ b/protocol/types.go @@ -50,6 +50,7 @@ const ( TypeKline5Minute uint8 = 0 // 5分钟K 线 TypeKline15Minute uint8 = 1 // 15分钟K 线 TypeKline30Minute uint8 = 2 // 30分钟K 线 + TypeKline60Minute uint8 = 3 // 60分钟K 线 TypeKlineHour uint8 = 3 // 1小时K 线 TypeKlineDay2 uint8 = 4 // 日K 线, 发现和Day的区别是这个要除以100,其他未知 TypeKlineWeek uint8 = 5 // 周K 线 diff --git a/protocol/unit.go b/protocol/unit.go index 284fd3c..797f475 100644 --- a/protocol/unit.go +++ b/protocol/unit.go @@ -102,7 +102,7 @@ func GetHourMinute(bs [2]byte) string { func GetTime(bs [4]byte, Type uint8) time.Time { switch Type { - case TypeKlineMinute, TypeKlineMinute2, TypeKline5Minute, TypeKline15Minute, TypeKline30Minute, TypeKlineHour: + case TypeKlineMinute, TypeKlineMinute2, TypeKline5Minute, TypeKline15Minute, TypeKline30Minute, TypeKline60Minute: yearMonthDay := Uint16(bs[:2]) hourMinute := Uint16(bs[2:4])