Golang实现的Bitfinex API机器人:如何添加Flags

Golang实现的Bitfinex API机器人:如何添加Flags 你好,我从未在 Go 语言中做过任何事情。想学习这门语言,但需要在短时间内让这个项目运行起来。 github 项目 bitfinex api 文档

在 GitHub 上,你可以看到一个文件 cascadebot.go,我需要在其中实现一个关于 Flag 的信息,即 HIDDEN(信息来自 bitfinex api 文档的链接)。我之前使用 API 只是为了在 PHP 中获取信息,从未发送过任何东西,对于 Go 语言我完全没有经验。如果我理解正确,对于 HIDDEN=1,Flags 的值应该是 int64。但我不太确定具体如何以及在代码的哪个位置写入这个值。

请问有人能帮我解决这个问题吗?非常感谢。


更多关于Golang实现的Bitfinex API机器人:如何添加Flags的实战教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

哪个请求需要这个标志?

更多关于Golang实现的Bitfinex API机器人:如何添加Flags的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


我最终从头开始,以 JavaScript/Node.js 的方式完成了它。这个机器人已经存在多年,使用的是没有 flags 选项的旧 API 版本。

cascadebot.go 文件中,你需要修改 submitFundingOffer 函数中的 FundingOffer 结构体初始化部分。根据 Bitfinex API 文档,flags 字段用于设置订单类型,其中 HIDDEN=1 表示隐藏订单。

以下是具体的代码修改示例:

// 在 submitFundingOffer 函数中找到创建 FundingOffer 的地方
offer := bitfinex.FundingOffer{
    Type:          "LIMIT",
    Symbol:        symbol,
    Amount:        amount,
    Rate:          rate,
    Period:        int(period),
    Flags:         1, // 添加这一行,设置 HIDDEN 标志
}

如果你需要同时设置多个标志,可以使用位运算组合。例如同时设置 HIDDENPOSTONLY

offer := bitfinex.FundingOffer{
    Type:          "LIMIT",
    Symbol:        symbol,
    Amount:        amount,
    Rate:          rate,
    Period:        int(period),
    Flags:         1 | 4096, // HIDDEN=1, POSTONLY=4096
}

如果你需要动态控制这个标志,可以添加一个配置参数:

// 在配置结构体中添加
type Config struct {
    // ... 其他配置
    HiddenOrder bool `json:"hidden_order"`
}

// 在 submitFundingOffer 函数中
flags := int64(0)
if config.HiddenOrder {
    flags |= 1
}

offer := bitfinex.FundingOffer{
    Type:          "LIMIT",
    Symbol:        symbol,
    Amount:        amount,
    Rate:          rate,
    Period:        int(period),
    Flags:         flags,
}

注意:Bitfinex API 的 flags 字段是 int64 类型,不同的标志对应不同的位值。HIDDEN 标志的值为 1

回到顶部