通貨のリスト撤去のバイナンス発表をクロール

作者: リン・ハーン優しさ, 作成日:2019-02-20 11:28:46, 更新日:

戦略の目的

2月15日,BinanceはCLOAK,MOD,SALT,SUB,WINGSの発表を発表した.発表後,関わった通貨はすぐに下落し,一般的に1時間で15%下落し始めた.より多くのユーザーがニュースを知っていたため,下落は継続し,リバウンドはなく,これまで半分に減少している.発表後,最初に保有したコインを売却できれば,多くの損失を回復することができます.

この戦略は FMZ の量的な取引プラットフォーム (前 BotVS) で実行されます.

アイデア:

Binanceのセキュリティ発表ページをクロールして,最も近い2つの発表時間の情報を観察します. 特定のフォーマットは,BinanceはCLOAK,MOD,SALT,SUB,WINGS,Binanceは BCN,CHAT,ICN,TRIGを削除します.

戦略は,新しいリリース発表をクロールするキーワードとして,will delistを使用します. もちろん,Binanceの変更通知形式を排除していません.この戦略を改善するために参照することができます. クローラータスクがあまりにも単純なので,単純なJavaScriptで書かれます. 削除通貨をクロールした後,アカウント情報がチェックされます. 削除通貨がある場合は,低価格で販売されます. 完了していない注文がある場合は,最初に撤回されます. 残りのコインの販売が完全に販売されるまで.

クローリングコード:

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

命令コードを取り消す

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

チェック口座コード:

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')
}

注文番号:

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

結論として:

上記コードは示範のみで,完全なコードはFMZ.COM広告ページは1分間に1回クロールできるので 普通のユーザーより前に売れる時間が十分になります

しかし,クローリングがブロックされ,発表形式が変更されるなど,いくつかの問題がある可能性があります.通貨がBinanceにない場合は,この戦略を他の取引所に参照することもできます.結局,リスト解除通貨はすべてのプラットフォームに影響します.


もっと