K-Linie von einer Drittanbieterseite (0804 Updates)

Schriftsteller:Zahlreiche, Datum: 2016-04-08
Tags:Extent-API

Für Plattformen, die keine K-String-Daten unterstützen (BitVC Futures, BTC Spot, ETH, ETC, BTC, ETC), können Sie die historischen K-String-Daten der Plattform direkt von einer Drittanbieterseite erhalten, wenn Sie zu Beginn der Strategie eine ausreichende Anzahl von K-String-Daten erhalten müssen. Bitte beachten: Die Daten der K-Leitung werden alle 3 Sekunden aktualisiert, so dass keine hohen Frequenzen möglich sind. Es ist nur für Echtzeitgeschäfte geeignet. Der Autor übernimmt keine Gewähr für die Richtigkeit der Daten und die Richtigkeit der Verfahren von Drittanbietern.

Update 0427: Parse JSON-Daten werden möglicherweise mit Ausnahmen verarbeitet, die bei Ausfällen einen einheitlichen Wert von null zurückgeben.



$.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]);
}

Verwandt

Mehr

Auch die BrautDas ist gut.

KirinIch hoffe, dass auch traditionelle Futures ein Beispiel sind.

JDas ist sehr nützlich.

Der Mann von NingDanke für die gute Nachricht.

Kurzfristig verkauft Wang Won seine Strategie für hohe PreiseDas ist eine gute Sache, aber ich habe es noch nicht kapiert.