Bit-Maker 3.0-Arbitrage Intelligentes Lernen USDT Standort (Binance-Arbitrage USDT Standard)

Schriftsteller:AutoBitMaker-ABM, Datum: 2019-12-17 23:46:42
Tags:

Selbstlernnetz:

Selbstlernende Gitter basieren auf traditionellen Gitterstrategie-Denken, aber nach langfristigen Echtplatten + Retest-Daten wurden Dutzende von Parameterkonfigurationen wie Opening-Platz-Logik, Push-Time, Stop-Punkt-Position, Push-Ratio, Gitterintervall usw. optimiert. Intelligentes dynamisches Push-Modell und Stop-Punkt-Position wurden realisiert, um die hohen Risiken zu vermeiden, die mit einer einseitigen Situation des traditionellen Gitters verbunden sind, und nutzen extrem niedrige Push-Rückkehr, um ein gutes Gewinn-Rücknahme-Verhältnis zu erzielen.

Strategiekonfigurationsparameter sind sehr reich, und das Team stellt spezielle Mitarbeiter ein, die eine einzigartige Kombination von Parametern für Ihr Konto anpassen, basierend auf den Bedürfnissen der Kunden für Risiken und Erträge, und verfügt über eine rund um die Uhr automatisierte Marktüberwachung.

Wir entwickelten ein eigenes Index-Trading-System, in dem jedes Index-Trading-System mehrere hochwertige Einzelpaare enthält, die jeweils ein einzigartiges Gewichtsanteil aufweisen. Zusätzlich zu den eingebauten statischen Indizes definieren wir dynamische Indizes für verschiedene Währungsmodelle für die Index-Sätze und wählen die führenden Währungsformen aus, die die Indexstufe bilden, um das Risiko weiter zu senken.

Ein einziges Konto kann konfiguriert werden, um gleichzeitig mehrere Einwährungstransaktionspaare und Index-Trading-Paare zu betreiben, um Risiken zu verteilen und Ihnen dabei zu helfen, in einer Vielzahl von komplexen Markten zu profitieren.

Über die Optimierung + Windkontrolle: Der historische Rückruf-Server ist ganzjährig verfügbar und überprüft automatisch alle aktuellen Daten. Die optimalen Parameter werden in Echtzeit berechnet. Unsere Strategie ist es, einen Cluster mit über 50 Hilfsservern zu entwickeln, um die Stop-Loss-Konditionen von Konten mit einer durchschnittlichen Geschwindigkeit von zwei Mal pro Sekunde zu überprüfen, um schnell aussteigen zu können, wenn ein Risiko auftaucht.

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: WeChat: DuQi_SEC/autobitmaker/Shawn_gb2312/ABM_DD Das ist eine sehr gute Idee. E-Mail:liuhongyu.louie@autobitmaker.com- Ich bin nicht derjenige.autobitmaker.com

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


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

Mehr

Scherzler 。。