Bit-Maker 3.0 arbitragem aprendizagem inteligente USDT Binance Arbitrage USDT Standard

Autora:AutoBitMaker-ABM, Data: 2019-12-17 23:46:42
Tags:

A rede de auto-aprendizagem

A rede de aprendizagem baseia-se no pensamento estratégico da rede tradicional, mas após um longo período de dados reais + retrospectiva, a configuração de dezenas de parâmetros foi otimizada para a lógica de negociação, tempo de negociação, posição de parada, proporção de negociação, intervalo de rede. O modelo de negociação dinâmica inteligente e a posição de parada foram implementados, evitando o alto risco que a rede tradicional precisa assumir em situações unilaterais, aproveitando retornos de posições extremamente baixos e alcançando um bom rácio de retorno.

A configuração de parâmetros de estratégia é extremamente rica, com uma equipe que atribui especialistas para personalizar uma combinação exclusiva de parâmetros para sua conta com monitoramento de mercado artificial + automatizado 24 horas por dia.

Nós desenvolvemos um conjunto exclusivo de índices, cada conjunto de índices contendo vários pares de negócios individuais de qualidade, cada par com uma proporção de peso única. Além do índice estático embutido, definimos um índice dinâmico de vários modelos de moeda para o conjunto de índices, selecionando as principais moedas de cada bloco para formar o nível do índice, reduzindo ainda mais o risco.

Uma única conta pode ser configurada para operar simultaneamente vários pares de negociação de moeda única e pares de negociação de índices, o que permite dividir o risco e ajudar você a lucrar em uma variedade de mercados complexos.

Otimizar + Controle do Vento: O servidor de retrospecção histórica funciona o ano todo, retrospecção automática de todos os dados mais recentes, cálculo de parâmetros ótimos em tempo real. A nossa estratégia é o cluster de mais de 50 servidores auxiliares, que verificam as condições de paralisação das contas a uma velocidade média de 2 vezes por segundo, para que possam sair rapidamente quando o risco surgir.

Utilizando nuvens híbridas heterogêneas Ali Cloud, Amazon Cloud, Microsoft Cloud Arquitetura, separando os nós de administração e execução, formando clusters entre múltiplos nodes para garantir redundância, segurança e segurança e segurança de operação e segurança de fundos para a realização eficaz de negócios

Sobre o teste: Dependendo do seu orçamento, oferecemos um teste de cerca de duas semanas. Durante o teste, não cobramos nenhuma comissão. Não faça qualquer ação sozinho depois que o bot assuma sua conta, e todos os bots sairão imediatamente quando detectarem qualquer outro posicionamento manual.

Sobre a comissão: Depende do seu montante. Podemos falar mais sobre isso depois da fase de teste. Se você puder criar uma conta usando nosso link de recomendação, cobraremos uma comissão muito baixa.

Entre em contato: WeChat: DuQi_SEC/autobitmaker/Shawn_gb2312/ABM_DD E-mail:liuhongyu.louie@autobitmaker.com/autobitmaker_master@autobitmaker.com

O microprocessador WeChat apresentou um teste de inscrição:微信小程序码


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) {
    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(account.Info.totalMarginBalance)]]);
        }
    } 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 getMarginBalance() {
    var currentBalance = 0;
    var account = exchanges[0].GetAccount();
    try {
        if (account !== null && account.Info !== null && account.Info.totalMarginBalance > 0) {
            currentBalance += Number(account.Info.totalMarginBalance);
        }
    } 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: []
    }
    if (showInfo) {
        table.rows.push([{
            body: '* 2020-09-07 之前一直人民币100万实盘运行,现策略更新,自动将合约闲置资金转入币安宝,即提高资金安全性,也可以双边获利,当合约所需保证金上涨或下降时,将自动调整两边余额。因当前FMZ无法监控币安宝余额,所以剥离10W人民币继续运行原策略以做展示。',
            colspan: 5
        }]);
    }
    table.rows.push([{
        body: '本策略是 USDT 本位,基于均值回归的币安合约套利策略,并以低风险辅助网格并行(BitMEX支持BTC本位)',
        colspan: 5
    }]);
    table.rows.push([{
        body: '套利主要币种是 BTC/USDT 和 ETH/USDT,网格覆盖币安永续合约全部币种交易对',
        colspan: 5
    }]);
    for (var index in exchangeInnerArray) {
        var position = exchangeInnerArray[index].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();
            printProfitInfo(currentBalance);
            updateAccountDetailChart(ObjChart);
            for (var i = 0; i < 120; i++) {
                try {
                    var avaliableMargin = ((getMarginBalance()) / (getBalance())) * 100;
                    ObjChart.update([chart, getChartPosition(avaliableMargin)]);
                    var profit = Number((currentBalance) - baseOriginalBalance).toFixed(5);
                    var profitRate = Number((((currentBalance) - baseOriginalBalance) / baseOriginalBalance) * 100).toFixed(4);
                    printPositionInfo(exchanges, profit, profitRate);
                    Sleep(1000 * 120);
                } catch (errInner) {
                    throw errInner;
                }
            }
        } catch (err) {
            throw err;
        }
    }
}

Mais.

brincalhão 。。