Bit-Maker monitoriza el saldo total de los contratos en efectivo y USDT

El autor:AutoBitMaker-ABM: ¿ Qué está pasando?, Fecha: 2021-02-20 08:12:06
Las etiquetas:

AutoBitMaker tambiénEn la actualidad, se ha lanzado oficialmente la estrategia de soluciones sin riesgo. El principio estratégico es la cobertura de activos y contratos, un proceso que también se puede realizar manualmente. Sin embargo, en comparación con las operaciones manuales, el BOT captura el espacio de ganancia de todos los pares de operaciones del mercado, realizando cientos de transacciones al día; libera más sus manos y reduce el riesgo del mercado.

Nosotros somos.AutoBitMaker tambiénEn pocas palabras.Capital de ABMPor favor, identifique cuidadosamente el nombre del equipo, las micro señales para distinguir la verdad y la falsedad. Por el momento, solo nos comunicamos con nuestros clientes nacionales a través de WeChat, correo electrónico, etc., y no utilizamos QQ.

El equipo de ABMHay tres tipos de estrategias disponibles.

  • Negociación de contratos
  • Negocios en el momento
  • Negociación de aplazamiento

El código actual es solo para monitoreo de cuentas, y el código fuente se publica para que todos puedan comprobarlo o usarlo por sí mismos. El valor de USDT de los contratos de efectivo + USDT es monitoreado.

Actualmente, el grupo de servidores de la estrategia de equipo ha alcanzado los 80 y más de 50 servidores de soporte, que verifican las condiciones de suspensión de pérdidas de las cuentas a una velocidad promedio de dos veces por segundo y pueden retirarse rápidamente en caso de riesgo.

Ali Cloud, Amazon Cloud, Microsoft Cloud arquitectura de nubes híbridas heterogéneas, nodos de administración y ejecución separados, clustering entre múltiples nodos para garantizar la redundancia, la seguridad y la seguridad de la operación fluida y la seguridad financiera para lograr una operación efectiva y eficaz

En cuanto a la prueba: Dependiendo del tamaño de sus fondos, ofrecemos una prueba de dos semanas o más. Una vez que el bot se haga cargo de su cuenta, no haga nada por su cuenta, y todos los bots se retirarán inmediatamente cuando detecten cualquier otra posición manual.

En cuanto a las comisiones: Esto depende de la cantidad de dinero que tengas. Hablaremos después de la fase de prueba. Si puedes crear una cuenta con nuestro enlace de recomendación, cobraremos una comisión muy baja.

Enlace:

  1. El país entero puede hablar
  2. WeChat:DuQi_SEC/autobitmaker/autobitmaker_001/Shawn_gb2312/ABM_DD y también en Twitter:
  3. El correo electrónico:liuhongyu.louie@autobitmaker.com/autobitmaker_master@autobitmaker.com
  • ¡No somos nosotros! ¡También no nos llamamos makebit! ¡Somos nosotros!

El microprocesador de WeChat ha presentado una solicitud de prueba:微信小程序码


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

Más.