বিভিন্ন এক্সচেঞ্জের GetAccount, GetTicker ইন্টারফেস নীতি পরীক্ষা করুন কোড

লেখক:ছোট্ট স্বপ্ন, তৈরিঃ 2018-03-09 20:00:48, আপডেটঃ 2018-03-11 15:09:33

বিভিন্ন এক্সচেঞ্জের GetAccount, GetTicker ইন্টারফেস নীতি পরীক্ষা করুন কোড

আপনি যদি এই ওয়েবসাইটটি ব্যবহার করেন তাহলে আপনি অনেক বেশি লাভবান হবেন।

img

  • জাভাস্ক্রিপ্ট সোর্স কোড ((কোনও নীতিগত পরামিতি ছাড়াই সরাসরি চালানো)
function E(obj) {
    if (!obj) {
        return obj
    }

    var cloneObj = function(obj) { // 深拷贝 对象函数
        var str, newobj = obj.constructor === Array ? [] : {};
        if (typeof obj !== 'object') {
            return;
        } else if (JSON) {
            str = JSON.stringify(obj); //系列化对象
            newobj = JSON.parse(str); //还原
        } else {
            for (var i in obj) {
                newobj[i] = typeof obj[i] === 'object' ?
                    cloneObj(obj[i]) : obj[i];
            }
        }
        return newobj;
    }

    if (obj && typeof(obj) == "object" && typeof(obj.Info) !== "undefined") {
        var newObj = cloneObj(obj)
        delete newObj.Info
        return newObj
    } else if (typeof(obj.length) == "number") {
        ///*
        var newArray = []
        for (var n = 0; n < obj.length; n++) {
            newArray.push(E(obj[n]))
        }
        return newArray
        //*/
        /*
        var newObj = cloneObj(obj)
        delete newObj.Info
        return newObj
        */
    } else {
        // Log(obj, "is not object or not have attribute 'Info'")
        return obj
    }
}

function main() {
    LogReset(1)
    var count = 0
    while(true){
        Log("第", count , "轮监测!", "#FF0000")
        count++
        var es = []
        for(var i = 0; i < exchanges.length; i++){
            if(exchanges[i].GetName().split("_")[0] == "Futures"){
                // BitMEX
                if(exchanges[i].GetName().split("_")[1] == "BitMEX"){
                    exchanges[i].SetContractType("XBTUSD")
                }
                // OKCoin
                if(exchanges[i].GetName().split("_")[1] == "OKCoin"){
                    exchanges[i].SetContractType("this_week")
                }
            }
            
            var beginTime = new Date().getTime()
            var ticker = exchanges[i].GetTicker()
            var endTickerTime = new Date().getTime()
            
            var account = exchanges[i].GetAccount()
            var endAccountTime = new Date().getTime()
            
            var e = {
                ticker : ticker ? "true #007FFF" : "false #FF0000" ,
                account : account ? "true #007FFF" : "false #FF0000" ,
                name : exchanges[i].GetName() ,
                tickerDelay : endTickerTime - beginTime ,
                accountDelay : endAccountTime - beginTime ,
            }
            Log(e.name, "延迟:", e.tickerDelay, "ticker:", E(ticker), e.ticker)
            Log(e.name, "延迟:", e.accountDelay, "account:", E(account), e.account)
            es.push(e)
        }
        
        var tab = {
            type : "table",
            title : "test",
            cols : ["name", "account", "Delay(ms)", "ticker", "Delay(ms)"],
            rows : [],
        }
        
        for(var j = 0; j < es.length; j++){
            tab.rows.push([es[j].name, es[j].account, es[j].accountDelay, es[j].ticker, es[j].tickerDelay])
        }
        
        LogStatus("更新于:", _D(), '\n`' + JSON.stringify(tab) + '`')
        Sleep(1000 * 30)
    }
}
  • আপডেট সংস্করণ, এজেন্ট বৈশিষ্ট্য সমর্থন

    দুইটি প্যারামিটার যোগ করুন

    ভেরিয়েবল বর্ণনা ভেরিয়েবলের ধরন ডিফল্ট
    isUseSetProxy এজেন্ট ব্যবহার করবেন কি না বুল টাইপ ((true/false) মিথ্যা
    IP_AddAndPass@isUseSetProxy==1 এজেন্ট কনফিগার স্ট্রিং (String) socks5://username:password@127.0.0.1:8889

    এজেন্ট সার্ভারে SS5 পরিষেবা কনফিগার করা এবং সেটআপ করা প্রয়োজন (ব্যবহারকারীর নাম, পাসওয়ার্ড ইত্যাদি)

    আমার প্যারামিটারগুলো আসলে এইভাবে কনফিগার করা হয়েছেঃ socks5://botvs:botvs123456@174.XXX.XXX.XX:1080

    # - 代理服务器SS5服务 设置的 用户名: botvs
    # -                        密码: botvs123456
    # -                 代理服务器IP: 174.XXX.XXX.XX
    # -                        端口: 1080
    
function E(obj) {
    if (!obj) {
        return obj
    }

    var cloneObj = function(obj) { // 深拷贝 对象函数
        var str, newobj = obj.constructor === Array ? [] : {};
        if (typeof obj !== 'object') {
            return;
        } else if (JSON) {
            str = JSON.stringify(obj); //系列化对象
            newobj = JSON.parse(str); //还原
        } else {
            for (var i in obj) {
                newobj[i] = typeof obj[i] === 'object' ?
                    cloneObj(obj[i]) : obj[i];
            }
        }
        return newobj;
    }

    if (obj && typeof(obj) == "object" && typeof(obj.Info) !== "undefined") {
        var newObj = cloneObj(obj)
        delete newObj.Info
        return newObj
    } else if (typeof(obj.length) == "number") {
        ///*
        var newArray = []
        for (var n = 0; n < obj.length; n++) {
            newArray.push(E(obj[n]))
        }
        return newArray
        //*/
        /*
        var newObj = cloneObj(obj)
        delete newObj.Info
        return newObj
        */
    } else {
        // Log(obj, "is not object or not have attribute 'Info'")
        return obj
    }
}

function main() {
    LogReset(1)
    var count = 0
    
    if(isUseSetProxy){
        var ret
        for(var n = 0; n < exchanges.length; n++){
        ret = exchanges[n].SetProxy(IP_AddAndPass)
        }
        Log("设置代理为:", IP_AddAndPass, ret, "#FF0000")
    }
    
    while(true){
        Log("第", count , "轮监测!", "#FF0000")
        count++
        var es = []
        for(var i = 0; i < exchanges.length; i++){
            if(exchanges[i].GetName().split("_")[0] == "Futures"){
                // BitMEX
                if(exchanges[i].GetName().split("_")[1] == "BitMEX"){
                    exchanges[i].SetContractType("XBTUSD")
                }
                // OKCoin
                if(exchanges[i].GetName().split("_")[1] == "OKCoin"){
                    exchanges[i].SetContractType("this_week")
                }
            }
            
            var beginTime = new Date().getTime()
            var ticker = exchanges[i].GetTicker()
            var endTickerTime = new Date().getTime()
            
            var account = exchanges[i].GetAccount()
            var endAccountTime = new Date().getTime()
            
            var e = {
                ticker : ticker ? "true #007FFF" : "false #FF0000" ,
                account : account ? "true #007FFF" : "false #FF0000" ,
                name : exchanges[i].GetName() ,
                tickerDelay : endTickerTime - beginTime ,
                accountDelay : endAccountTime - beginTime ,
            }
            Log(e.name, "延迟:", e.tickerDelay, "ticker:", E(ticker), e.ticker)
            Log(e.name, "延迟:", e.accountDelay, "account:", E(account), e.account)
            es.push(e)
        }
        
        var tab = {
            type : "table",
            title : "test",
            cols : ["name", "account", "Delay(ms)", "ticker", "Delay(ms)"],
            rows : [],
        }
        
        for(var j = 0; j < es.length; j++){
            tab.rows.push([es[j].name, es[j].account, es[j].accountDelay, es[j].ticker, es[j].tickerDelay])
        }
        
        LogStatus("更新于:", _D(), '\n`' + JSON.stringify(tab) + '`')
        Sleep(1000 * 30)
    }
}

আরো