Die Ressourcen sind geladen. Beförderung...

Unterschiede zwischen den API für Commodity Futures und Digital Currency Exchanges

Schriftsteller:Das Gras, Erstellt: 2019-09-21 17:37:21, Aktualisiert: 2024-12-17 20:41:43

商品期货与数字货币交易所API的异同

Die Unterschiede zwischen einem Commodity Futures CTP und einer Digital Currency API sind deutlich, wenn man sich mit digitalen Währungen vertraut macht und nicht mit Commodity Futures vertraut ist.

Historische Daten

Die CTP-Schnittstelle bietet keine historischen Märkte an, die von den Händlern gelöst werden müssen. Die CTP bietet keinen Marktwiederherstellungsmechanismus, wenn keine Ankunft oder ein Abbruch der Ankunft zu einem Verlust von Marktdaten führt.

Die Vereinbarung ist anders.

Die APIs für digitale Währungen sind im Allgemeinen REST- und Websocket-Protokolle. CTP umfasst die Netzwerklogik und verwendet FTD-Protokollen, die auf dem TCP-Protokoll basieren, um mit dem CTP-Hintergrund zu kommunizieren.

  • Anfrage-Antwort-Modus: Der Client initiiert die Anfrage, der CTP-Background empfängt und reagiert auf die Anfrage
  • Rundfunkkommunikationsmodell: CTP schickt Marktinformationen über Rundfunk nach dem Abonnement des Kunden.
  • Private Kommunikationsmodelle: Nach der Auftragsvergabe eines Vertrags durch den Kunden werden von CTP-Punkten Anschlüsse auf Anschreibungen, Transaktionserklärungen usw. gesendet.

Alle Märkte und Transaktionen werden erst nach einer Änderung informiert, während die Abfrage von Bestellungen, Konten und Lagerbeständen eine aktive Abfrage ist.

Die Daten unterscheiden sich in ihrer Präzision

Die CTP-Protokolltiefe ist nur ein Kauf und ein Verkauf, die Fünf-Faktor-Börse ist teuer, und die digitale Währung kann in der Regel die volle Tiefe oder 200-Faktoren erhalten. CTP fördert keine echten Transaktionen, sondern nur durch die Rückwirkung von Lageränderungen, während die Digital-Währung-Börse-API echte Auszahlungen erhalten kann. Die Transaction-Daten-Tick-Level der inländischen CTP-Plattform beträgt 1 Sekunde 2 Tick-Tick.

Verschiedene Zugangsbeschränkungen

Digitale Währungsaustausch begrenzen sich im Allgemeinen auf 1 Sekunde und 10 Mal. Für die meisten Auftragsabhebungen gibt es auch keine besonderen Anforderungen. Die CTP hat strenge Einschränkungen für Anfragen, die aktiv ausgegeben werden müssen.

Stabilität

Das CTP-Protokoll ist sehr stabil und hat kaum Fehler und Netzwerkprobleme. Digitale Währungen sollten weniger Einschränkungen, lange Transaktionszeiten, Wartung, Datenverzögerungen und Netzwerkfehler haben.

FMZ-Quantifizierungsplattform CTP-Protocol-Best Practices

Die CTP-Standardmodus-Schnittstellen für die Beschaffung von Transaktionen wie GetTicker, GetDepth und GetRecords haben alle Cache-Daten, um die neuesten zu erhalten. Wenn keine Daten vorhanden sind, wird auf die Daten gewartet, so dass die Strategie ohne Sleep verwendet werden kann. Wenn sich die Branche ändert, werden die Tickern, Tiefen und Aufzeichnungen aktualisiert.

Wenn man bei jeder Akquisition von Märkten Daten, auch alte, abrufen möchte, kann man in den Markt sofort aktualisieren Modus exchange.IO (mode button, 0) wechseln. Die Strategie kann dann nicht mehr als Ereignis gesteuert geschrieben werden. Ein SLeep-Ereignis muss hinzugefügt werden, um einen schnellen Todeszyklus zu vermeiden.

Bei der Handhabung einzelner Kontrakte kann man den Standardmodus verwenden; wenn es sich jedoch um mehrere Kontrakte handelt, kann es vorkommen, dass ein Vertrag keine Markter aktualisiert, was zu einer Blockade der Markt-Interface führt, und dass andere Kontrakte keine Markt-Updates erhalten. Um dieses Problem zu lösen, kann man den Sofort-Update-Modus verwenden, aber es ist unpraktisch, eine Hochfrequenz-Strategie zu schreiben.

Transaktionstick-Änderungen werden geschoben: {Event: tick, Index: Börsenindex (in der Reihenfolge der Roboterstabilität hinzugefügt), Nano: Ereignis in der Nanosekundenzeit, Symbol: Vertragsname} Auftragspush: {Event: order, Index: Börsenindex, Nano: Ereignis-Nanosekunden-Zeit, Order: Auftragsdaten ((zusammen mit GetOrder erhalten) }

Die Strategiestruktur kann in folgenden Formulierungen geschrieben werden:

function on_tick(symbol){
    Log("symbol update")
    exchange.SetContractType(symbol)
    Log(exchange.GetTicker())
}

function on_order(order){
    Log("order update", order)
}

function main(){
    while(true){
        if(exchange.IO("status")){ //判断链接状态
            exchange.IO("mode", 0)
            _C(exchange.SetContractType, "MA888")//订阅MA,只有第一次是真正的发出订阅请求,接下来都是程序切换,不耗时间。
            _C(exchange.SetContractType, "rb888")//订阅rb
            while(True){
                var e = exchange.IO("wait")
                if(e){
                    if(e.event == "tick"){
                        on_tick(e.Symbol)
                    }else if(e.event == "order"){
                        on_order(e.Order)
                    }
                }
           }
        }else{
            Sleep(10*1000)
        }
    }
}

Inhalte dazu

Weitere Informationen