তালিকা থেকে বাদ পড়তে থাকা কয়েনগুলি স্বয়ংক্রিয়ভাবে বিক্রি করার জন্য ক্রল বিন্যান্স ঘোষণা

Tool Trade-aided
সৃষ্টির তারিখ: 2019-02-15 18:33:28 অবশেষে সংশোধন করুন: 2019-07-03 16:16:39
অনুলিপি: 41 ক্লিকের সংখ্যা: 3457
3
ফোকাস
1444
অনুসারী

Binance-এর বিজ্ঞপ্তি পৃষ্ঠাটি দেখুন এবং দেখুন যে এটি সর্বশেষ দুইবার বন্ধ হয়ে গেছে। এটির ফর্ম্যাট হলঃ Binance বন্ধ হচ্ছে CLOAK, MOD, SALT, SUB, WINGS, Binance বন্ধ হচ্ছে BCN, CHAT, ICN, TRIGS।

ক্রেপ্টারটি নতুন ক্রেপ্টার বিজ্ঞপ্তিটি ক্রল করার জন্য কীওয়ার্ড হিসাবে ক্রেপ্টারকে ক্রেপ্টারকে ক্রেপ্টারকে ক্রেপ্টারকে ক্রেপ্টার করবে, তবে অবশ্যই বিটকয়েন পরিবর্তনের বিজ্ঞপ্তি ফর্ম্যাটটি এই কৌশলটির উন্নতি করতে পারে। যেহেতু ক্রেপ্টারটি খুব সহজ কাজ, তাই এটি সহজ জাভাস্ক্রিপ্টের সাথে লিখিত হবে। ক্রেপ্টারটি ক্রেপ্টার মুদ্রায় ক্রল করার পরে, অ্যাকাউন্টের তথ্য পরীক্ষা করবে, যদি ক্রেপ্টার মুদ্রা থাকে তবে এটি সর্বনিম্ন মূল্যে বিক্রি হবে, যদি অর্ডারটি অসম্পূর্ণ থাকে তবে এটি প্রত্যাহার করা হবে। জিয়ানলান এবং জিহু-এর মধ্যে সম্পর্কিত তথ্যঃ

কৌশল সোর্স কোড
var exchangeInfo = JSON.parse(HttpQuery('https://api.binance.com/api/v1/exchangeInfo'))
var pairInfo = {} 
var downList = []
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('fail to get exchangeInfo')
}
function sellAll(coin, free){
    var symbol = coin + 'BTC'
    exchange.IO("currency", coin+'_BTC')
    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){
        var id = exchange.Sell(sellPrice, sellAmount, symbol)
        exchange.CancelOrder(order.orderId)
    }
}
function cancellOrder(){
    var openOrders = exchange.IO('api', 'GET', '/api/v3/openOrders')
    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('delist coin exist, cancel all orders first', currency)
                exchange.IO("currency", currency)
                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('this coin will be dumped', account.Info.balances[i].asset)
                sellAll(account.Info.balances[i].asset, parseFloat(account.Info.balances[i].free))
                done = false
            }
        }
        Sleep(1000)
    }
    Log('sell done')
}
function main() {
    var title = ''
    while(true){
        var html = HttpQuery('https://support.binance.com/hc/en-us/sections/115000202591-Latest-News')
        html = html.slice(html.indexOf('Delist '),html.length)
        if(html){
            if(html.slice(7,html.indexOf('</a>')) != title){
                title = html.slice(7,html.indexOf('</a>'))          
                downList = html.slice(7,html.indexOf('</a>')).replace(' and ', ',').split(',')
                Log('new announcement,will delist:', downList)
                cancellOrder()
                checkAccount()
            }else{
                Log('new announcement was not found')
            }
        }else{
            Log('web spider wrong')
        }
        Sleep(60*1000)
    }
}