binance-futures-connector

1.4.6 • Public • Published

binance-futures-connector in nodejs

币安-合约+现货 sdk,持续更新,欢迎PR一起完善 策略定制联系 tg:wkc19891 微信:wkc19891

币安 返佣注册链接 实时返20%
https://accounts.binance.me/zh-CN/register?ref=JGLH0SR8
此SDK集成了币安 合约 和 现货接口,且有成熟策略案例,如需可浏览github学习。

npm version Node version Standard-Js License: MIT

This is a lightweight library that works as a connector to Binance public API. It’s designed to be simple, clean, and easy to use with minimal dependencies.

Installation 安装

npm install binance-futures-connector

or

yarn add binance-futures-connector

Documentation 参考文档

https://binance-docs.github.io/apidocs/futures/cn/#185368440e

Websocket

查看上方项目示例

常用函数使用eg

/**
 * 记录收益 打印收益曲线
 */
async function PrintProfit() {
    //记录10次收益
    for (let i = 0; i < 10; i++) {
        LogProfit(i + 1000)
        await Sleep(200)//休息0.2秒
    }
    console.log(LogProfit())
    LogProfit(null)//重置收益曲线
    console.log('重置收益曲线', LogProfit())
    // ``` 打印输出接口
    // [
    //     { income: 1000, time: '2022-11-27 10:39:07' },
    //     { income: 1001, time: '2022-11-27 10:39:07' },
    //     { income: 1002, time: '2022-11-27 10:39:08' },
    //     { income: 1003, time: '2022-11-27 10:39:08' },
    //     { income: 1004, time: '2022-11-27 10:39:08' },
    //     { income: 1005, time: '2022-11-27 10:39:08' },
    //     { income: 1006, time: '2022-11-27 10:39:08' },
    //     { income: 1007, time: '2022-11-27 10:39:09' },
    //     { income: 1008, time: '2022-11-27 10:39:09' },
    //     { income: 1009, time: '2022-11-27 10:39:09' }
    // ]
    // ```
}
PrintProfit()

/**
 * 记录10次日志
 */
async function PrintLog() {
    for (let i = 0; i < 10; i++) {
        Log(i + 1000)
        await Sleep(200)//延迟0.2秒
    }
    console.log(Log())
    Log(null)//清空日志
    console.log('清空日志', Log())
    // ``` 日志结构
    // [
    //     { key: 1, logs: '1000', time: '2022-11-27 12:12:10' },
    //     { key: 2, logs: '1001', time: '2022-11-27 12:12:11' },
    //     { key: 3, logs: '1002', time: '2022-11-27 12:12:11' },
    //     { key: 4, logs: '1003', time: '2022-11-27 12:12:11' },
    //     { key: 5, logs: '1004', time: '2022-11-27 12:12:11' },
    //     { key: 6, logs: '1005', time: '2022-11-27 12:12:11' },
    //     { key: 7, logs: '1006', time: '2022-11-27 12:12:12' },
    //     { key: 8, logs: '1007', time: '2022-11-27 12:12:12' },
    //     { key: 9, logs: '1008', time: '2022-11-27 12:12:12' },
    //     { key: 10, logs: '1009', time: '2022-11-27 12:12:12' }
    //   ]
    // ```
}
PrintLog();

async function UseG() {
    _G('key1', '123', 888, 777)//设置key1值
    _G('key2', 'hello world')//设置key2值
    _G('key3', JSON.stringify({ name: 'top', age: 18 }))
    console.log('key1=', _G('key1'))//获取key1值
    console.log('key2=', _G('key2'))//获取key2值
    console.log('key3=', _G('key3'))//获取key3值
    console.log('key3.name=', JSON.parse(_G('key3')).name)//获取key3.name值

    // ```输出
    // key1= 123888|777
    // key2= hello world
    // key3= {"name":"top","age":18}
    // key3.name= top
    // ```
}
UseG()
async function UseN() {
    let a = 1.34159;
    console.log('a=', a);
    let a1 = _N(a, 2)
    console.log('a2=', a1);
    let a2 = _N(a, 3)
    console.log('a2=', a2);
    // ```输出
    // a= 1.34059
    // a2= 1.34
    // a2= 1.341
    // ```
}
UseN();
const client = new Future(apiKey, apiSecret, { ip: proxyIp, port: proxy })
/**
 * 获取BTCUSDT 1m 10条数据
 * @param {*} coin 
 */
function GetR() {
    client.records("BTCUSDT", "1m", 10).then(records => {
        console.log('获取BTCUSDT 1m 10条数据=', records)
        // ``` 输出
        // [
        //     {
        //       Time: 1669522920000,
        //       Open: 16524.4,
        //       High: 16526.3,
        //       Low: 16522.9,
        //       Close: 16526.2,
        //       Volume: 69.66
        //     },
        //     {
        //       Time: 1669522980000,
        //       Open: 16526.3,
        //       High: 16536.3,
        //       Low: 16526.2,
        //       Close: 16530.3,
        //       Volume: 128.14
        //     }
        //   ]
        // ```
        //获取SAR
        let sar1 = TA.SAR(records, 0.008, 0.2, 0.008);
        console.log('sar11', sar1[sar1.length - 2], 'sar21', sar1[sar1.length - 3])
    })
}
GetR()

// buy()//买入开多
// sell()//卖出开空
// buy_close()//卖出平多
// sell_close()//买入平空

常用指标调用eg

const { Future, TA, _G, _N, LogProfit, Log, DateFormat, Sleep, buy, sell, buy_close, sell_close } = require('binance-futures-connector')

const apiKey = ''
const apiSecret = ''
const proxyIp = '127.0.0.1'
const proxy = '1087'

const fs = require('fs')
const client = new Future(apiKey, apiSecret, { ip: proxyIp, port: proxy })
//sar
client.records("BTCUSDT", "1m", 1500).then(records => {    
    let sar1 = TA.SAR(records, 0.008, 0.2,0.008);
    console.log('sar11', sar1[sar1.length - 2], 'sar21', sar1[sar1.length - 3])
})

client.records("ETHUSDT", "5m").then(records => {
    if (records && records.length > 20) {
        console.log("ETHUSDT", "5m", "time now:", TA.getDate())
        let boll = TA.BOLL(records, 90, 2)
        let upLine = boll[0]
        let midLine = boll[1]
        let downLine = boll[2]
        console.log("upLine", upLine[upLine.length - 1])
        console.log("midLine", midLine[midLine.length - 1])
        console.log("downLine", downLine[downLine.length - 1])
        let macd = TA.MACD(records, 12, 26, 9)
        let dif = macd[0]
        let dea = macd[1]
        let _macd = macd[2]
        console.log("DIF:", dif[dif.length - 1], "DEA:", dea[dea.length - 1], "MACD:", _macd[_macd.length - 1])
        var kdj = TA.KDJ(records, 9, 3, 3)
        let k = kdj[0]
        let d = kdj[1]
        let j = kdj[2]
        console.log("k:", k[k.length - 1], "d:", d[d.length - 1], "MACD:", j[j.length - 1])
        var rsi = TA.RSI(records, 14)
        console.log("rsi:", rsi[rsi.length - 1])
        var atr = TA.ATR(records, 14)
        console.log("atr:", atr[atr.length - 1])
        var obv = TA.OBV(records)
        console.log("obv", obv[obv.length - 1])
        var ema = TA.EMA(records, 9)
        console.log("ema-9", ema[ema.length - 1])
        var ma = TA.MA(records, 14)
        console.log("ma-14", ma[ma.length - 1])
        let h = TA.Highest(records, 30, 'High')
        let l = TA.Lowest(records, 30, 'Low')
        console.log(`h=${h},l=${l}`)
    }
}).catch(res => {
    console.log(res)
})

Package Sidebar

Install

npm i binance-futures-connector

Weekly Downloads

4

Version

1.4.6

License

ISC

Unpacked Size

267 kB

Total Files

54

Last publish

Collaborators

  • topbrids