Bit-Maker 3.0 Arbitrage Smart Learning USDT Standar Binance

Penulis:AutoBitMaker-ABM, Tanggal: 2019-12-17 23:46:42
Tag:

Di sini ada beberapa contoh yang bisa kita lihat.

Grid belajar sendiri didasarkan pada pemikiran strategi grid tradisional, tetapi setelah data real disk + retest jangka panjang telah dioptimalkan untuk beberapa lusin konfigurasi parameter seperti logika trading, waktu trading, posisi stop-loss, rasio trading, interval grid. Model trading dinamis cerdas dan posisi stop-loss diimplementasikan, yang dapat menghindari risiko tinggi yang harus ditanggung oleh grid tradisional dalam menghadapi situasi sepihak, memanfaatkan posisi trading yang sangat rendah, untuk mencapai rasio penarikan keuntungan yang baik.

Strategi konfigurasi parameter yang sangat kaya, tim akan mendistribusikan spesialis untuk menyesuaikan kombinasi parameter yang unik untuk akun Anda berdasarkan kebutuhan risiko dan keuntungan pelanggan, dan memiliki pemantauan pasar buatan + otomatis sepanjang hari.

Kami mengembangkan sendiri kumpulan perdagangan indeks yang unik, setiap kumpulan perdagangan indeks berisi beberapa pasangan perdagangan tunggal berkualitas tinggi, masing-masing perdagangan memiliki rasio bobot yang unik. Robot menjalankan strategi grid pembelajaran terhadap kumpulan indeks, menghindari risiko perdagangan tunggal terhadap risiko unilateral. Selain indeks statis built-in, kami mendefinisikan indeks dinamis dari berbagai model mata uang pilihan untuk indeks set, memilih setiap blok untuk membentuk tingkat indeks mata uang terdepan, mengurangi risiko lebih lanjut.

Akun tunggal dapat dikonfigurasi untuk mengoperasikan beberapa pasangan perdagangan mata uang tunggal dan pasangan perdagangan indeks secara bersamaan, yang dapat membagi risiko dan membantu Anda mendapatkan keuntungan di berbagai pasar yang kompleks.

Untuk mengoptimalkan + kontrol angin: Server retargeting sejarah sepanjang tahun, secara otomatis retargeting semua data terbaru, perhitungan real-time parameter optimal. Strategi kami adalah mengkonfirmasi kondisi stop loss akun dengan kecepatan rata-rata dua kali per detik, dengan lebih dari 50 server tambahan, dan segera keluar jika ada risiko.

Ali Cloud, Amazon Cloud, Microsoft Cloud menggunakan arsitektur hybrid cloud heterogen, memisahkan manajemen dan pelaksanaan node, membentuk cluster antar multi node untuk jaminan redundansi, keamanan dan efektivitas pelaksanaan bisnis yang lancar dan keamanan keuangan

Untuk uji coba: Kami menawarkan uji coba selama sekitar dua minggu, tergantung pada jumlah dana Anda. Kami tidak mengambil komisi selama uji coba. Setelah bot mengambil alih akun Anda, jangan melakukan tindakan apa pun sendiri, dan semua bot akan segera keluar jika mereka mendeteksi posisi manual lainnya.

Untuk komisi: Ini tergantung pada jumlah dana Anda. Kami akan membahasnya setelah tahap uji coba. Kami akan mengenakan komisi yang sangat rendah jika Anda dapat membuat akun menggunakan tautan rekomendasi kami.

Hubungi kami: WeChat: DuQi_SEC/autobitmaker/Shawn_gb2312/ABM_DD E-mail:liuhongyu.louie@autobitmaker.com/autobitmaker_master@autobitmaker.com

Di sini, Anda dapat menemukan beberapa tips yang dapat Anda gunakan untuk membuat akun Facebook Anda.微信小程序码


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

Lebih banyak

pelawak 。。