2.8 Wechseln Sie zum Modell für die Aktualisierung von Marktdaten (Erläuterungen)

Schriftsteller:Kleine Träume, Erstellt: 2016-07-13 10:08:50, aktualisiert: 2017-10-11 10:21:29

Wechseln Sie zum Modell für Marktdatenaktualisierungen

  • Hier ist eine Einführung aus der API-Dokumentation:
// 只支持Websocket模式(huobi, okcoin.cn, BTCC支持)与商品期货CTP协议
exchange.IO("websocket"); // 切换行情通信协议到websocket(默认为rest), Ticker, Depth会切换为websocket协议来更新, 商品期货CTP无需切换
// 切换GetTicker, GetDepth数据更新模式
exchange.IO("mode", 0); // 立即返回模式, 如果当前还没有接收到交易所最新的行情数据推送, 就立即返回旧的行情数据, 如果有新的数据就返回新的数据
exchange.IO("mode", 1); // 缓存模式(默认模式), 如果当前还没有收到交易所最新的行情数据(同上一次api获取的数据比较), 就等待接收然后再返回, 
                        //如果调用该函数之前收到了最新的行情数据, 就立即返回最新的数据
exchange.IO("mode", 2); // 强制更新模式, 进入等待一直到接收到交易所下一次的最新推送数据后返回
// 如果想第一时间获取最新的行情可以切换到websocket后不Sleep的立即检测数据, GetTicker, GetDepth用缓存模式进行工作
exchange.IO("websocket");
while (true) {
    Log(exchange.GetTicker());
}
  • Für die einfache Verständniserfahrung finden Sie folgende Informationen:

    • 1. Das Plattformsystem ist standardmäßig im Rest-Modus: Bei einem API-Datenaufforderung im Rest-Modus gibt der Exchange-Server ein Datenergebnis zurück (aktuell aktuell). Der Exchange-Server schickt die neuesten Daten nicht automatisch an den Benutzer weiter. Die Strategie ist daher, bei Restmodus häufig Datenanfragen zu machen, um die neuesten Daten rechtzeitig zu erhalten (nicht unbedingt die erste Zeit, in der neue Daten erzeugt werden, weil eine Frage eine Antwort ist).

    • 2. Websocket-modus unterstützte API mit GetTicker, GetDepth.exchanges[0].IO("websocket");Die Funktion wird dann in Websocket-Modus ausgeführt. Ein aufmerksamer Schüler wird vielleicht sehen, warum exchanges [0] so geschrieben ist.imgZum Beispiel, wenn zwei Börsen (oder mehrere) zu einer Strategie hinzugefügt werden, ist eine der globalen Objekte, die von der Plattform definiert werden, eine Array, die alle in die Strategie hinzugefügt werden, darstellt. Diese Array ist die Array von Exchanges. Die Array von Exchange-Objekten, deren Hauptobjekt das erste Element der Array ist: exchanges[0] Token-Objekte.

    • 3. Unterschied zwischen dem Websocket-Modus und dem Rest: Im Websocket-Modus sendet der Administrator eine Abonnementanfrage an den Exchange-Server, nachdem der Exchange-Server sie erhalten hat. Jedes Mal, wenn aktuelle Daten vorhanden sind, werden sie aktiv an den Administrator weitergeleitet. Der Administrator speichert diese Daten, sodass die Daten schnell verfügbar sind, wenn der Strategie-Roboter sie anfordert, und die Daten sind aktuell.

    • 4. Nach dem Starten des Websocket-Modus können drei Arbeitsmodi eingestellt werden:

      • <1> exchange.IO("Mode",0);// Sofortiger Rücklauf: Dieser Modus gibt sofort aktuelle Daten zurück (aktuell aktuellste).

      • <2> exchange.IO("Mode", 1);// Cache-Modus ((Standardmodus): Das Modus ist in zwei Verarbeitungsabteilungen unterteilt. Erstens wartet die API, wenn sie Daten anfordert, und gibt zurück, wenn die aktuell gespeicherten Daten nicht aktuell sind als die Daten, die bei der letzten API abgerufen wurden. Zweitens, wenn die API Daten anfordert, kehrt sie sofort die neuesten Daten zurück, wenn die aktuell gespeicherten Daten aktuell sind (d. h. die neuesten Daten wurden vor dem Aufruf der API-Anfrage erhalten).

      • <3> exchange.IO("mode", 2);// Zwangs-Aktualisierungsmodus: Der Modus ist leicht zu verwechseln mit einem logischen Zweig des Cache-Modus. Der Cache-Modus beurteilt, ob die Daten aktuell sind. Der Zwangs-Update-Modus setzt voraus, dass der aktuelle Markt aktuell ist oder nicht, bis der nächste Markt aktualisiert wird.


Mehr

Hokshelato``js Funktion main (() { Exchange.IO (WEB ist ein Websocket. Während (true) { Log ((exchange.GetTicker (())); Wir sind hier. Wir sind hier. Ich weiß. 1. Es ist nicht möglich, zu überprüfen, Fehlermeldung `main:2:12 - ReferenceError: setLastError is not defined `, vermutlich weil das Prüfsystem keine asynchrone Push-Daten unterstützt. 2. Die Analogdiskette meldet einen Fehler, ≪Futures_OP 4: period not support≫, der dann nur eine Tickerdatenquelle empfängt, und der Roboter kann nicht normal abbrechen.

FangBeiWie viele Datensätze sind in Cache? Wie lange dauert die Cache, bis sie gelöscht wird?

HokshelatoIch verstehe, danke!

Kleine Träume1, keine Rest, Teil des Websockets in der Wiederholung. 2. Die Analogdisk hat auch keinen Websocket-Modus. Dokumentation: Nur OKEX-Crypto-Pro unterstützt den Websocket-Protokoll.

Kleine TräumeIch habe die Möglichkeit, mehrere hundert oder tausend Artikel zu speichern, und ich werde genau darauf eingehen.