使用node.js实现,调用官方接口,实现自动化委托交易的脚本。
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
config-data.json
config.json
main.js
package.json
run.bat
yarn.lock

README.md

niu-zbg-api

使用node.js实现,调用官方接口,实现自动化委托交易的脚本。

注意,该脚本run()部分,目标是计算中间价,自动化买入和卖出动作。这是因为ZBG官方最近在搞活动,参与的将给予奖励。评分标准就是手续费高低,所以该将本将按照交易对当前价格,进行同价位买入和卖出操作,以自动实现高手续费,换取奖励。

如果您有其他用途,可以修改Run中买入、卖出部分。

安装

1、下载node.js,并安装

2、下载yarn,并安装

3、进入项目根目录,执行yarn,自动安装所需的库。或者您可以手动打开package.json文件,查看并安装所需库。

# 项目需配置
# 加密库
yarn add crypto
# 文件操作
yarn add fs
# fetch通讯
yarn add node-fetch
# formdata结构生成
yarn add query-string

4、打开run.bat,或执行main.js即可。

修改配置

进入根目录下的config-data.json文件,找到配置信息修改即可。

//API密钥
'AccessKey': '',
'SecretKey': '',
//交易币名称
'marketName': 'eth_usdt',
//中间等待时间间隔
// 单位:毫秒
'waitTime': 5000,
//交易货币保留小数点 位数
'fixNumber': 2,
//交易个数
// 如eth_usdt,则指eth个数
'transactionsNumber': 0.5,
//交易等待成功,最长时间
// 单位:毫秒
// 默认20秒
'waitFinishTime': 20000,
//是否显示底层操作日志?
// 但会记录到日志文件内
'showCoreLog': false,
//警戒比例
// 账户初始余额偏离该百分比后,将自动判定为失败
// 例如:
//      eth余额最初为100,经过几次脚本循环后变为111或89,则自动退出脚本
'forceStopP': 0.1,
//自动撤销订单时间
// 单位:毫秒
'autoClearOrderTime': 3000

方法介绍

参数详细说明,请参考代码注释。这里诺列全部方法,方便您参考和使用。

GetDateToFormat(date,format) 根据date时间获取特定结构的时间字符串
SendLog(message,isCore) 发送日志
SaveTotalConfig(totalNum,totalBuy,buyUnit,totalSell,sellUnit) 保存统计数据
PostData(postType,url,params,paramType) 发送带私钥的API
GetDataNoSign(url) 发送没有密钥的API
GetUserFund() 获取用户资金信息
TestMode() 测试模块,将自动发送非密钥API、带密钥API,测试通讯是否正常
GetMarket() 获取市场列表
BuyOrSell(entrustType,price) 进行一次交易
ClearEntrust() 清理当前交易对的所有委托(该方法官方API不可用)
CheckFinish() 检查订单完成情况,执行委托后请调用该方法(该方法部分官方API不可用,只确保输出任务结束信息、统计信息)
ClearEntrust(entrustId) 撤销指定订单
Run() 脚本主体

常见问题

关于订单问题

由于官方API只开放了新建委托方法,所以脚本暂时只能实现新建委托,而无法查询委托,这必然会导致失败交易下产生大量无用订单。请确保在电脑前,手动撤销多余的订单。

为了防止该问题,脚本内置了3秒后自动尝试撤销订单的方法,无论是否成功都可以确保该交易对没有太多的遗留订单。

但注意,特定波动下会产生买入多、卖出少,或颠倒过来的情况,这就会导致交易对失衡。请密切关注您的交易对账户信息。如交易eth_usdt,则请密切关注eth余额。如发现异常请暂停交易,等待市场价格剧烈波动结束后再尝试。

关于调用限制

根据测试和与官方沟通,API调用1s不能超出3次,否则会有被锁定部分USDT的风险。

本脚本修改为每秒2-3次。其中1次是查询市场列表,剩下2次是交易买入和卖出操作。

如何自定义执行脚本?

您可以在脚本结尾找到Run()函数,修改里面的执行顺序,就可以实现自动化交易。

如何让统计信息清零?

删除config.json文件即可。

使用协议

本项目遵守Apache2.0协议。