Wirkliche Technologie von FMZ Quant - Wie man die Grenzen für das Erhalten von Ticks durchbricht

Schriftsteller:- Ich bin ein Idiot., Erstellt: 2022-03-31 11:14:14, Aktualisiert: 2022-03-31 14:02:25

Bei einer Hochfrequenz-Handelsstrategie für Rohstoff-Futures hat die Empfangsgeschwindigkeit der Tick-Marktnoten einen entscheidenden Einfluss auf das Gewinnergebnis der Strategie. Die meisten Handelsframeworks auf dem Markt verwenden jedoch den Callback-Modus-Mechanismus. Denn in der onBar/onTick-Funktion müssen Sie sich mit der gesamten Code-Logik befassen, was Zeitverschwendung ist; ob Sie es wollen oder nicht, Ihre Strategie-Logik muss unterbrochen werden, und Sie müssen einen Zustand-Maschine-Modus verwenden, wie:

var state = STATE_IDLE;
function onTick() {
  if (state == STATE_IDLE) {
    // do something...
  } else if (state == ....) {
    // do something
  }
}

FFMZ Quant übernimmt nicht den Rückrufmechanismus, sondern übernimmt den main Funktionseingangsmechanismus, der die Strategie-Logik nicht unterbricht, so dass Benutzer den Strategiefluss natürlicher steuern können; verwenden Sie C++ und Golang als stabile Strategie-Unterschicht und verwenden Sie Javascript/Python auf der oberen Schicht, um mit Logikproblemen umzugehen. In Kombination mit dem Ereignis-Triggering-Mechanismus kann die Strategie auch TAQ in der ersten Zeit mit der schnellsten Geschwindigkeit verarbeiten. Zum Beispiel, wenn wir auf eine Futures-Firma zugreifen, können wir nur die TAQ dieser Futures-Firma erhalten. Die Geschwindigkeit und Qualität der TAQ, die wir erhalten, hängt mit unserem eigenen Netzwerk zusammen und auch mit der Last der Front-End-Maschine der Futures-Firma. Wie können wir also genauer Futures-Tick-Daten schneller erhalten?

Unter dem Strategie-Modell können Sie leicht die Konten von N verschiedenen Futures-Unternehmen betreiben, ihre TAQ zusammenführen und Bestellungen mit der schnellsten Geschwindigkeit platzieren. Unter normalen Umständen können wir zwei Tickets pro Sekunde von den Futures-Unternehmen erhalten, aber durch die Technologie der Fusion von TAQ, MA801 als Beispiel zu nehmen, können wir maximal 6 nicht-wiederholende Tickets pro Sekunde erhalten.

img

Lassen Sie uns direkt zum Code gehen (der Code kann nur im Bot betrieben werden, nicht im Backtest), und die Verwendung der IO-Funktion kann sich auf:https://www.fmz.cn/api#io函数

Wenn ein Bot eine Plattform hinzufügt, können N Futures-Unternehmen hinzugefügt werden, um die gleichzeitige Fusion von TAQ zu verarbeiten; hier fügen wir vorübergehend zwei hinzu und demonstrieren dies:

Folgender Code:

function main() {
    Log("Prepare to access the platform and subscribe to TAQ")
    // Step 1: all futures front-end processors are subscribing for symbols 
    _.each(exchanges, function(e) {
        // wait to access the platform, and yes, the strategy runs continuously for 365 days, and it can run even after the market is closed, and it is not the logic of event callback
good mistake
        while (!e.IO("status")) Sleep(1000);
        // Use the _C retry function to eliminate network errors, and subscribe to TAQ just access to the platform; there may be an error that CTP is not ready
        _C(e.SetContractType, "MA801")
        // Switch the TAQ receiving mode to immediate return mode instead of event trigger mode, please refer to the API documentation
        e.IO("mode", 0)
    })
    Log("Start to merge data...")
    // Step 2: here comes the important part
    var preVolume = 0
    while (true) {
        var ts = new Date().getTime()
        // If any platform has tick event, return 
        var e = exchange.IO("wait_any")
        // Reset Volume at a proper time 
        if (e.Nano/1000000 - ts > 60000) {
            preVolume = 0
        }

        if (e.Event == 'tick' && e.Ticker.Volume >= preVolume) {
            Log(ret, e.Ticker.Last, e.Ticker.Volume)
            preVolume = e.Ticker.Volume
        }
    }
}

Folgende Ergebnisse:

img

Man kann sehen, dass um 21:24:44 die Daten der ersten Futures-Firma vor der zweiten ankommen, und das Ergebnis kann durch Hinzufügen von zwei Futures-Unternehmen gesehen werden. Wenn Sie es verwenden, um Hochfrequenz-Handelsstrategien zu entwickeln, haben Sie einen sehr wichtigen und entscheidenden Schritt gelöst, nämlich die Geschwindigkeit, Stabilität und Zuverlässigkeit des Erhaltens von Tick.

FMZ Quant (ehemals BotVS) ist eine Plattform, die speziell für Entwickler entwickelt wurde, die kritische Anforderungen an Strategie-Stabilität und Geschwindigkeit haben.


Mehr