Bit-Maker is monitoring the USDT equivalent in cash

Author: AutoBitMaker-ABM, Date: 2021-02-20 10:46:08
Tags:

AutoBitMakerThe risk-free strategy is now officially launched. The strategic principle is to hedge both spot and contract, a process that can also be done manually. However, in comparison to manual operations, BOT captures the profit space of all the trading pairs in the market, making hundreds of transactions per day; it frees up your hands even more and reduces the risk of the market.

The current code is for account monitoring only, and the source code is publicly available for anyone to check or use. Monitoring the value of USDT on the spot.

We are.AutoBitMaker, for shortABM CapitalPlease identify the name of the team, the micro-signal, to distinguish between the real and the fake. For now, we only communicate with domestic customers via WeChat, email, and no other means such as QQ.

ABM teamThere are currently three types of strategies.

  • Contract deals
  • Cash and cash equivalents
  • Leveraged trading

The self-learning grid is based on the traditional grid strategy idea, but after long-term real-time + retest data has been optimized for dozens of parameter configurations such as opening position logic, raising position time, stop-lock position, position ratio, grid interval. An intelligent dynamic raising model and stop-lock position have been implemented, which can avoid the high risks that traditional grids encounter unilateral situations, using extremely low position returns, to achieve a good return withdrawal ratio.

Strategy configuration parameters are extremely rich, the team assigns specialists to customize unique combinations of parameters for your account based on customer risk and return needs, and there is round-the-clock artificial + automated market monitoring.

We have developed our own index trading sets, each index trading set contains multiple high-quality single-trade pairs, each with a unique weighting ratio. The robots run the index set on a self-learning grid strategy, avoiding the unilateral risk of a single trade. In addition to the built-in static index, we define a dynamic index for the index set of multiple currency models, selecting the leading currency types of each block to form an index level, further reducing the risk.

A single account can be configured to simultaneously run multiple single currency trading pairs and index trading pairs, both to spread risk and to help you profit in a variety of complex markets.

Currently, the team has 80 strategic server clusters and more than 50 support servers, which check the account's stop loss conditions at an average rate of 2 per second and can quickly exit if a risk arises.

Ali Cloud, Amazon Cloud, Microsoft Cloud architectures using heterogeneous hybrid clouds, separate management and execution nodes, clustering between multiple nodes for redundancy assurance, secure and efficient implementation of smooth operation of the business and financial security

About the trial: Depending on your budget, we offer a trial run of about two weeks. Once the bot has taken over your account, do not do anything on your own, and all bots will exit immediately when any other manual positions are detected.

About the commission: It depends on your funds. We can talk more after the trial phase. If you can create an account using our recommendation link, we will charge a very low commission.

Contact us at:

  1. The whole country can talk
  2. WeChat:DuQi_SEC/autobitmaker/autobitmaker_001/Shawn_gb2312/ABM_DD
  3. Email: liuhongyu.louie@autobitmaker.com/autobitmaker_master@autobitmaker.com
  • Special tip ((Microsignal autobitmaker001 is not us!! we are also not called makebit!! microsignal autobitmaker_001 is us)))

WeChat has submitted a trial application:微信小程序码


//exchanges[0] 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 && totalBalance > 0) {
            ObjChart.add([0, [nowTime, Number(totalBalance)]]);
        }
    } catch (err) {
        Log('ERROR ' + account + ',' + err)
    }
}

function getSpotBalanceInUSDT() {
    var ticker = JSON.parse(HttpQuery('https://api.binance.com/api/v1/ticker/24hr'));
    var currentBalance = 0;
    var account = exchanges[0].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', 'CurrentPrice', 'Position', 'USDT Value'],
        rows: []
    }
    table.rows.push([{
        body: '本策略是 USDT 本位,低风险现货智能动态参数网格',
        colspan: 5
    }]);
    table.rows.push([{
        body: '所有交易对任选',
        colspan: 5
    }]);
    var ticker = JSON.parse(HttpQuery('https://api.binance.com/api/v1/ticker/24hr'));
    var account = exchanges[0].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']) {
                    if (Number((Number(obj.free) + Number(obj.locked))) > 0) {
                        table.rows.push([obj.asset, ('LONG #1eda1bab'), Number(priceMap[obj.asset + 'USDT']), Number((Number(obj.free) + Number(obj.locked))), Number(Number(priceMap[obj.asset + 'USDT']) * Number((Number(obj.free) + Number(obj.locked)))).toFixed(4)]);
                    }
                }
            }
        }
    } catch (err) {
        Log('ERROR ' + account + ',' + err)
    }
    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 currentSpotBalance = getSpotBalanceInUSDT();
            var totalBalance = 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;
        }
    }
}

More