Bit-Maker theo dõi tổng số dư hợp đồng hiện tại và USDT

Tác giả:AutoBitMaker-ABM, Ngày: 2021-02-20 08:12:06
Tags:

AutoBitMakerHiện tại, một chiến lược giải quyết không rủi ro đã chính thức được đưa ra. Các chiến lược này được sử dụng để bảo hiểm hiện tại và hợp đồng, và quá trình này cũng có thể được thực hiện theo cách thủ công. Nhưng so với các hoạt động thủ công, BOT sẽ nắm bắt được không gian lợi nhuận của tất cả các cặp giao dịch trên thị trường, giao dịch hàng trăm lần mỗi ngày; giải phóng đôi tay của bạn nhiều hơn và giảm rủi ro thị trường.

Chúng ta làAutoBitMaker, ngắn gọnABM CapitalXin mọi người hãy cẩn thận xác định tên nhóm, tín hiệu nhỏ để phân biệt chúng là thật hay giả. Hiện tại, chúng tôi chỉ liên lạc với khách hàng trong nước qua WeChat, email và không sử dụng các phương tiện khác như QQ.

Nhóm ABMHiện có 3 loại chiến lược

  • Hợp đồng giao dịch
  • Giao dịch ngay
  • Giao dịch lợi nhuận

Hiện tại, mã chỉ được theo dõi bởi tài khoản, mã nguồn được công bố và mọi người có thể tự kiểm tra hoặc sử dụng. Theo dõi giá trị USDT của các hợp đồng USDT hiện tại.

Hiện tại, nhóm các máy chủ chiến lược đã đạt đến 80 máy chủ và hơn 50 máy chủ hỗ trợ khác để kiểm tra các điều kiện dừng lỗ cho tài khoản với tốc độ trung bình 2 lần mỗi giây, để có thể rút lui nhanh chóng khi có rủi ro.

Sử dụng các đám mây hỗn hợp khác nhau Ali Cloud, Amazon Cloud, Microsoft Cloud kiến trúc, tách quản lý và thực hiện các nút, tạo ra các tập hợp giữa nhiều nút để đảm bảo sự dư thừa, đảm bảo hoạt động suôn sẻ và bảo đảm tài chính cho hoạt động kinh doanh an toàn và hiệu quả

Về thử nghiệm: Tùy thuộc vào quy mô tài chính của bạn, chúng tôi cung cấp thử nghiệm khoảng 2 tuần. Sau khi một bot chiếm tài khoản của bạn, đừng tự làm bất kỳ hành động nào và tất cả các bot sẽ rút khỏi ngay lập tức khi phát hiện ra bất kỳ vị trí thủ công nào khác.

Về tiền thưởng: Điều này phụ thuộc vào số tiền của bạn. Chúng tôi có thể nói thêm sau khi thử nghiệm. Nếu bạn có thể tạo tài khoản bằng liên kết giới thiệu của chúng tôi, chúng tôi sẽ tính phí rất thấp.

Địa chỉ liên hệ:

  1. Tất cả mọi người đều có thể tham gia
  2. WeChat:DuQi_SEC/autobitmaker/autobitmaker_001/Shawn_gb2312/ABM_DD
  3. Email:liuhongyu.louie@autobitmaker.com/autobitmaker_master@autobitmaker.com
  • Một lời khuyên đặc biệt (micro-signal autobitmaker001 không phải là chúng tôi!! chúng tôi cũng không gọi là makebit!!

Trong khi đó, một số ứng dụng khác cũng được đăng ký.微信小程序码


//exchanges[0] is contract
//exchanges[1] is spot

var chart = {
    __isStock: false,
    extension: {
        layout: 'single',
        col: 8,
        height: '300px'
    },
    tooltip: {
        xDateFormat: '%Y-%m-%d %H:%M:%S, %A'
    },
    title: {
        text: 'Account_Balance_Detail'
    },
    xAxis: {
        type: 'datetime'
    },
    yAxis: {
        title: {
            text: 'USDT'
        },
        opposite: false
    },
    series: []
};

function initChart() {
    chart.series.push({
        name: "Account_" + (Number(0)) + "_Detail",
        id: "Account_" + (Number(0)) + "_Detail",
        data: []
    });
}

function getChartPosition(avaliableMargin) {
    return {
        __isStock: false,
        extension: {
            layout: 'single',
            col: 4,
            height: '300px'
        },
        title: {
            text: '保证金占比(%)'
        },
        series: [{
            type: 'pie',
            name: 'one',
            data: [{
                name: '可用保证金(%)',
                y: avaliableMargin,
                color: '#dff0d8',
                sliced: true,
                selected: true
            }, {
                name: '保证金占用(%)',
                y: 100 - avaliableMargin,
                color: 'rgb(217, 237, 247)',
                sliced: true,
                selected: true
            }]
        }]
    };
}

function updateAccountDetailChart(ObjChart, totalBalance) {
    var nowTime = new Date().getTime();
    var account = exchanges[0].GetAccount();
    try {
        if (account !== null && account.Info !== null && account.Info.totalMarginBalance > 0) {
            ObjChart.add([0, [nowTime, Number(totalBalance)]]);
        }
    } catch (err) {
        Log('ERROR ' + account + ',' + err)
    }
}

function getBalance() {
    var currentBalance = 0;
    var account = exchanges[0].GetAccount();
    try {
        if (account !== null && account.Info !== null && account.Info.totalWalletBalance > 0) {
            currentBalance += Number(account.Info.totalWalletBalance);
        }
    } catch (err) {
        Log('ERROR ' + account + ',' + err)
    }
    Sleep(666);
    return Number(currentBalance).toFixed(6);
}

function getSpotBalanceInUSDT() {
    var ticker = JSON.parse(HttpQuery('https://api.binance.com/api/v1/ticker/24hr'));
    var currentBalance = 0;
    var account = exchanges[1].GetAccount();
    var priceMap = {};
    try {
        if (ticker !== null) {
            for (var index in ticker) {
                priceMap[ticker[index].symbol] = ticker[index].lastPrice;
            }
        }
        if (account !== null && account.Info !== null) {
            for (var index in account.Info.balances) {
                var obj = account.Info.balances[index];
                if (obj.asset !== 'USDT' && priceMap[obj.asset + 'USDT']) {
                    currentBalance += Number(Number(priceMap[obj.asset + 'USDT']) * Number((Number(obj.free) + Number(obj.locked))));
                }
                if (obj.asset === 'USDT') {
                    currentBalance += Number((Number(obj.free) + Number(obj.locked)));
                }
            }
        }
    } catch (err) {
        Log('ERROR ' + account + ',' + err)
    }
    Sleep(666);
    return Number(currentBalance).toFixed(6);
}

function printProfitInfo(currentBalance) {
    var profit = Number((currentBalance) - baseOriginalBalance).toFixed(5);
    var profitRate = Number((((currentBalance) - baseOriginalBalance) / baseOriginalBalance) * 100).toFixed(4);
    LogProfit(Number(profitRate), '&');
    Log('The current balance is ' + currentBalance + ', the profit is ' + profit + ', the profit rate is ' + profitRate + '%');
}

function printPositionInfo(exchangeInnerArray, totalProfitUSDT, totalProfitRate) {
    var totalProfit = 0.0
    var table = {
        type: 'table',
        title: 'POSITIONS',
        cols: ['Symbol', 'Type', 'AvgPrice', 'Position', 'Profit'],
        rows: []
    }
    table.rows.push([{
        body: '本策略是 USDT 本位,基于均值回归的币安现货-合约无风险套利策略',
        colspan: 5
    }]);
    table.rows.push([{
        body: '套利覆盖币安永续合约全部币种交易对',
        colspan: 5
    }]);
    var position = exchangeInnerArray[0].GetPosition()
    for (var indexInner in position) {
        var profit = Number(position[indexInner].Info.unRealizedProfit);
        totalProfit = totalProfit + profit
        table.rows.push([position[indexInner].Info.symbol, (position[indexInner].Type == 1 ? 'SHORT #da1b1bab' : 'LONG #1eda1bab'), position[indexInner].Price, position[indexInner].Amount, profit.toFixed(5)]);
    }
    Sleep(168);
    table.rows.push([{
        body: 'TOTAL PROFIT OF CURRENT POSITION',
        colspan: 4
    }, totalProfit.toFixed(6) + ' USDT']);
    table.rows.push([{
        body: 'TOTAL PROFIT',
        colspan: 4
    }, totalProfitUSDT + ' USDT']);
    table.rows.push([{
        body: 'TOTAL PROFIT RATE',
        colspan: 4
    }, totalProfitRate + ' %']);
    LogStatus('`' + JSON.stringify(table) + '`');
}

function main() {
    initChart();
    var ObjChart = Chart([chart, getChartPosition(100)]);
    while (true) {
        try {
            var currentBalance = getBalance();
            var currentSpotBalance = getSpotBalanceInUSDT();
            var totalBalance = Number(Number(currentBalance) + Number(currentSpotBalance)).toFixed(4);
            printProfitInfo(totalBalance);
            updateAccountDetailChart(ObjChart, totalBalance);
            for (var i = 0; i < 120; i++) {
                try {
                    var avaliableMargin = 100;
                    ObjChart.update([chart, getChartPosition(avaliableMargin)]);
                    var profit = Number((totalBalance) - baseOriginalBalance).toFixed(5);
                    var profitRate = Number((((totalBalance) - baseOriginalBalance) / baseOriginalBalance) * 100).toFixed(4);
                    printPositionInfo(exchanges, profit, profitRate);
                    Sleep(1000 * 120);
                } catch (errInner) {
                    throw errInner;
                }
            }
        } catch (err) {
            throw err;
        }
    }
}

Thêm nữa