तीसरे पक्ष की वेबसाइट से K लाइन प्राप्त करें (0804 अपडेट)

लेखक:पागल, दिनांकः 2016-04-08 00:01:57
टैगःएक्सटेंट-एपीआई

जिन प्लेटफार्मों के लिए K-लाइन डेटा प्राप्त करना समर्थित नहीं है (BitVC फ्यूचर्स,BTCC के लिए BTC नकदी,चीन के लिए Bitcoin के लिए ETH,ETC), यदि रणनीति शुरू होने पर पर्याप्त K-लाइन प्राप्त करना आवश्यक है, तो इस टेम्पलेट का उपयोग करके प्लेटफ़ॉर्म के लिए ऐतिहासिक K-लाइन डेटा सीधे तीसरे पक्ष की वेबसाइट से प्राप्त किया जा सकता है। ध्यान देंः के-लाइन डेटा हर 3 सेकंड में अपडेट होता है, इसलिए उच्च आवृत्ति कॉल संभव नहीं है। यह केवल वास्तविक लेनदेन के लिए है। लेखक तृतीय-पक्ष डेटा की सटीकता और प्रक्रिया की सटीकता का कोई आश्वासन नहीं देता है, यह केवल शैक्षिक संदर्भ के लिए है।

0427 अद्यतनः JSON डेटा को संसाधित करने के दौरान Parse द्वारा किए जा सकने वाले असामान्यताएं, यदि कोई असामान्यता होती है तो एक समान मान null लौटाया जाता है।



$.AltRecords = function(exchange, timeframe, size, includeLastBar) {
    var symbol;
    var info;
    var record = [];
    if (!size) size="";
    // 目前只支持以下三个交易所,其余交易所接口可参考https://www.btc123.com/api
    if (exchange.GetName().indexOf('Futures_BitVC') != -1) { 
        symbol = "bitvcbtccnyfuture";
    }
    else if (exchange.GetName().indexOf('BTCC') != -1 && exchange.GetCurrency().indexOf('BTC') != -1) {
        symbol = "btcchinabtccny";
    }
    else if (exchange.GetName().indexOf('CHBTC') != -1 && exchange.GetCurrency().indexOf('ETH') != -1) {
        symbol = "chbtcethcny";
    }
    else if (exchange.GetName().indexOf('CHBTC') != -1 && exchange.GetCurrency().indexOf('ETC') != -1) {
        symbol = "chbtcetccny";
    }
    
    if (symbol) {
        try {
            info = JSON.parse(HttpQuery('https://www.btc123.com/market/kline?symbol='+symbol+'&type='+timeframe+'&size='+(includeLastBar ? size : size+1)));
            if (info && info.isSuc) {
                info = JSON.parse(info.datas.data);
            }
            else {
                Log("获取K线时发生错误:", info && info.des ? info.des : "网络错误");
                return null;
            }
        } catch (e) {
            Log("获取K线时发生错误:", info && info.des ? info.des : "网络错误");
            return null;
        }
        for (var i = 0; i < (includeLastBar ? info.length : info.length-1); i++) {
            record.push({"Time": info[i][0], "Open": info[i][1], "High": info[i][2], "Low": info[i][3], "Close": info[i][4], "Volume": info[i][5]});
        }
        return record;
    }
    return exchange.GetRecords(); // 不支持的交易所采用默认方式处理(忽略所有参数,如时间周期、长度等)。
};

function main() {
    Log(exchange.GetName());
    var rec = $.AltRecords(exchange, "5min", 100); // 获取5分钟K线, 100条, 不含最后一条Bar
    if (rec) Log(rec.length, rec[rec.length-1]);
    rec = $.AltRecords(exchange, "4hour", 100, 1); // 获取4小时K线, 100条, 含最后一条Bar
    if (rec) Log(rec.length, rec[rec.length-1]);
}

संबंधित

अधिक

मंगेतर भीअच्छी बात

किरिनउम्मीद है कि पारंपरिक वायदा भी एक उदाहरण दे सकते हैं।

Jअच्छा काम किया, इसे हटाओ।

नींबूबहुत बढ़िया, धन्यवाद साझा करने के लिए

शॉर्ट लाइन वांग वॉन ने उच्च मूल्य रणनीति बेचीयह अच्छा है, लेकिन मुझे अभी तक यह समझ में नहीं आया।