Ich durchsuche die Ankündigung von Binance, Währungen von der Börse zu streichen.

Schriftsteller:Gutes, Erstellt: 2019-02-20 11:28:46, aktualisiert:

Ziel der Strategie:

Am 15. Februar kündigte Binance die Ankündigung der CLOAK, MOD, SALT, SUB, WINGS an. Nach der Ankündigung begann die beteiligte Währung sofort zu fallen, im Allgemeinen um 15% in einer Stunde, wobei immer mehr Benutzer die Nachricht erfahren, der Rückgang setzte sich fort und es gab keinen Aufschwung, und es ist bisher um die Hälfte gefallen.

Diese Strategie läuft auf der quantitativen Handelsplattform FMZ (ehemals BotVS).

Eine Idee:

Das spezifische Format ist Binance wird CLOAK, MOD, SALT, SUB, WINGS, Binance wird BCN, CHAT, ICN, TRIG aus der Liste streichen.

Die Strategie wird das will delist als Schlüsselwort verwenden, um die neue Release-Ankündigung zu durchsuchen, natürlich schließt das Binance-Änderungsbenachrichtigungsformat nicht aus, Sie können sich auf diese Strategie beziehen, um es zu verbessern. Da die Crawler-Aufgabe zu einfach ist, wird sie in einfachem JavaScript geschrieben. Nach dem Durchsuchen der Delist-Währung werden die Kontoinformationen überprüft. Wenn es eine Delist-Währung gibt, wird sie zu einem niedrigeren Preis verkauft. Wenn es eine unvollendete Bestellung gibt, wird sie zuerst widerrufen. Bis der Verkauf der verbleibenden Münzen vollständig verkauft ist.

Durchsuchungscode:

var html = HttpQuery('https://support.binance.com/hc/zh-cn/sections/115000202591-%E6%9C%80%E6%96%B0%E5%85%AC%E5%91%8A')//Announcement page
html = html.slice(html.indexOf('article-list'),html.indexOf('pagination')) // Article list section
if(html.indexOf('will delist')>0){
    if(html.slice(html.indexOf('will delist')+3,html.indexOf('</a>')) != title){ //crawl only the first delist information
        var title = html.slice(html.indexOf('delist')+3,html.indexOf('</a>'))
        var downList = title.split('、')
        Log('New announcement is detected, the currency will be delist:', title, '@')//WeChat push release announcement
    }
}

Widerrufscode:

function cancellOrder(){
    var openOrders = exchange.IO('api', 'GET', '/api/v3/openOrders')//Get all unexecuted orders
    for (var i=0; i<openOrders.length; i++){
        var order = openOrders[i];
        for (var j=0;j<downList.length;j++){
            if(order.symbol.startsWith(downList[j])){
                var currency = downList[j] + '_' + order.symbol.slice(downList[j].length);
                Log('There is a delist currency order exist, revoked', currency)
                exchange.IO("currency", currency)//To revoke a order, you need the trading pair information, so you must first switch to the trading pair.
                exchange.CancelOrder(order.orderId)
            }
        }
    }
}

Code des Scheckkontos:

function checkAccount(){
    var done = false
    while(!done){
        account = _C(exchange.GetAccount)
        done = true
        for (var i=0; i<account.Info.balances.length; i++){
            if(downList.indexOf(account.Info.balances[i].asset)>-1 && parseFloat(account.Info.balances[i].free)>pairInfo[account.Info.balances[i].asset+'BTC'].minQty){
                Log('delist currency will be emptied', account.Info.balances[i].asset)
                sellAll(account.Info.balances[i].asset, parseFloat(account.Info.balances[i].free))
                done = false
            }
        }
        Sleep(1000)
    }
    Log('Sale completed')
}

Bestellcode:

var exchangeInfo = JSON.parse(HttpQuery('https://api.binance.com/api/v1/exchangeInfo'))
var pairInfo = {}  //Trading pair information, storing transaction progress, minimum trading volume and other related information, placing order will needed
if(exchangeInfo){
    for (var i=0; i<exchangeInfo.symbols.length; i++){
        var info = exchangeInfo.symbols[i];
        pairInfo[info.symbol] = {minQty:parseFloat(info.filters[2].minQty),tickerSize:parseFloat(info.filters[0].tickSize), 
            stepSize:parseFloat(info.filters[2].stepSize), minNotional:parseFloat(info.filters[3].minNotional)}
    }
}else{
    Log('Failed to get transaction information')
}
function sellAll(coin, free){
    var symbol = coin + 'BTC'
    exchange.IO("currency", coin+'_BTC') //switching trading pair
    var ticker = _C(exchange.GetTicker)
    var sellPrice = _N(ticker.Buy*0.7, parseInt((Math.log10(1.1/pairInfo[symbol].tickerSize))))
    var sellAmount = _N(free, parseInt((Math.log10(1.1/pairInfo[symbol].stepSize))))
    if (sellAmount > pairInfo[symbol].minQty && sellPrice*sellAmount > pairInfo[symbol].minNotional){
        exchange.Sell(sellPrice, sellAmount, symbol)
    }
}

Zusammenfassend:

Der oben genannte Code dient nur der Demonstration, der vollständige Code ist unterFMZ.COM. Die Ankündigungsseite kann einmal in einer Minute durchsucht werden, was genug Zeit hat, um vor dem gewöhnlichen Benutzer zu verkaufen.

Wenn die Währung nicht auf der Binance ist, können Sie diese Strategie auch an andere Börsen verweisen. Schließlich wird die De-Listing-Währung alle Plattformen betreffen.


Mehr