Bit-Maker überwacht die Gesamtbilanz von Depot- und USDT-Kontrakten

Schriftsteller:AutoBitMaker-ABM, Datum: 2021-02-20
Tags:

AutobitMakerDie Strategie der risikofreien Optionen wurde offiziell eingeführt. Der Strategieprinzip ist die Sicherung sowohl gegenwärtiger als auch vertraglicher Sicherungen, die auch manuell durchgeführt werden können. Aber im Vergleich zu manuellen Operationen erfasst der BOT den Gewinnraum für alle Handelspare des Marktes, Hunderte von Transaktionen pro Tag; er befreit Ihre Hände noch mehr und reduziert das Risiko des Marktes.

Wir sindAutobitMaker, kurzABM KapitalBitte identifizieren Sie sorgfältig den Namen des Teams und die Mikrosignale, um zu erkennen, ob es sich um eine echte oder falsche Gruppe handelt. Wir kommunizieren vorerst nur mit unseren Kunden auf WeChat, E-Mail und nicht mit anderen Mitteln wie QQ.

ABM-TeamEs gibt drei Arten von Strategien.

  • Vertragsabwicklung
  • Bargeldgeschäfte
  • Leasing

Der Code ist derzeit nur für die Überwachung von Konten, der Quellcode wird veröffentlicht und jeder kann ihn selbst überprüfen oder verwenden. Überwachen Sie den USDT-Wert von USDT-Kontrakten + USDT-Konto.

Der Team Strategy Server-Cluster ist mittlerweile auf 80 und über 50 weitere Support-Server, die mit einer durchschnittlichen Geschwindigkeit von 2 mal pro Sekunde die Stop-Loss-Konditionen von Konten überprüfen und schnell abbrechen können, wenn ein Risiko eintritt.

Ali Cloud, Amazon Cloud, Microsoft Cloud Architekturen mit heterogenen Hybrid Clouds, getrennte Verwaltung und Ausführung von Knoten, Clusterbildung zwischen mehreren Knoten zur Sicherung von Redundanz, sicheren und effektiven Betrieb und finanziellen Sicherheit

Über den Versuch: Abhängig von Ihrer finanziellen Lage bieten wir einen Testlauf von etwa zwei Wochen an. Wenn ein Bot Ihr Konto übernommen hat, sollten Sie nichts selbst tun, und alle Bots werden sofort abgebrochen, wenn andere manuelle Positionen erkannt werden.

Über die Provision: Das hängt von der Höhe Ihres Geldes ab. Wir können nach der Testphase mehr darüber sprechen. Wenn Sie ein Konto mit unserem Empfehlungslink erstellen können, werden wir eine sehr niedrige Kommission verlangen.

Sie können uns kontaktieren:

  1. Gesprächsbereitschaft des Landes
  2. WirChat:DuQi_SEC/autobitmaker/autobitmaker_001/Shawn_gb2312/ABM_DD
  3. E-Mail:liuhongyu.louie@autobitmaker.com- Ich bin nicht derjenige.autobitmaker.com
  • Ein besonderer Tipp (das Mikrosignal autobitmaker001 ist nicht wir!! wir heißen auch nicht makebit!!

Wir schicken eine Test-Anmeldung an:微信小程序码


//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;
        }
    }
}

Mehr