Tìm kiếm thông báo của Binance về việc loại bỏ các loại tiền tệ

Tác giả:Tốt, Tạo: 2019-02-20 11:28:46, Cập nhật:

Mục đích của chiến lược:

Vào ngày 15 tháng 2, Binance đã thông báo về việc đưa ra thông báo về CLOAK, MOD, SALT, SUB, WINGS. Sau khi thông báo, đồng tiền liên quan ngay lập tức bắt đầu giảm, nói chung giảm 15% trong một giờ, với ngày càng nhiều người dùng biết tin tức, sự sụt giảm tiếp tục và không có sự phục hồi, và nó đã giảm một nửa cho đến nay. Nếu bạn có thể bán các đồng tiền nắm giữ lần đầu tiên sau khi thông báo, bạn có thể phục hồi rất nhiều tổn thất.

Chiến lược này chạy trên nền tảng giao dịch định lượng FMZ (trước đây là BotVS).

Ý tưởng:

Lướt qua các trang thông báo bảo mật của Binance và quan sát thông tin của hai thời điểm thông báo gần nhất.

Chiến lược sẽ sử dụng will delist như một từ khóa để thu thập thông báo phát hành mới, tất nhiên, không loại trừ định dạng thông báo thay đổi Binance, bạn có thể tham khảo chiến lược này để cải thiện. Vì nhiệm vụ thu thập thông tin quá đơn giản, nó sẽ được viết bằng JavaScript đơn giản. Sau khi thu thập thông tin về đồng tiền delist, thông tin tài khoản sẽ được kiểm tra. Nếu có một đồng tiền delist, nó sẽ được bán với giá thấp hơn. Nếu có một đơn đặt hàng chưa hoàn thành, nó sẽ được thu hồi trước. Cho đến khi bán các đồng tiền còn lại được bán hoàn toàn.

Mã thu thập dữ liệu:

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

Thu hồi mã lệnh:

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

Mã tài khoản:

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

Mã đặt hàng:

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

Tóm lại:

Mã trên chỉ để chứng minh, mã đầy đủ có thể được tìm thấy tạiFMZ.COM. Trang thông báo có thể được thu thập dữ liệu một lần trong một phút, mà sẽ có đủ thời gian để bán trước khi người dùng bình thường.

Nhưng có thể có một số vấn đề, chẳng hạn như việc thu thập thông tin bị chặn, thay đổi định dạng thông báo, v.v. Nếu tiền tệ không có trên Binance, bạn cũng có thể tham khảo chiến lược này đến các sàn giao dịch khác.


Thêm nữa