Die Ressourcen sind geladen. Beförderung...

FMZ Mobile APP Trading Terminal, das Ihre quantitative Handelserfahrung erweitert

Schriftsteller:FMZ~Lydia, Erstellt: 2023-10-30 11:57:31, Aktualisiert: 2024-11-10 18:51:41

img

Im Bereich des quantitativen Handels waren einfache und einfach zu bedienende quantitative Handelswerkzeuge schon immer einer der Schlüssel zum Erreichen von Vermögenswachstum und Risikomanagement. Mit zunehmendem Marktwettbewerb reichen jedoch traditionelle Handelswerkzeuge nicht mehr aus, um den sich schnell ändernden Marktanforderungen gerecht zu werden. Um den Wettbewerbsvorteil für quantitative Händler in der sich ständig weiterentwickelnden digitalen Asset-Welt zu erhalten, hat FMZ Mobile App eine bedeutende neue Funktion hinzugefügt: Trading Terminal. Diese Funktion wird nicht nur Ihre Handelseffizienz verbessern, sondern Sie auch durch kundenspezifische Pluginprogramme befähigen, beim Handel zu helfen und Ihrer Handelskarriere neue Vitalität zu verleihen.

Beginner's Guide zum Handelsterminal:

Was ist das FMZ Mobile APP Trading Terminal?

Auf der FMZ Quant Trading Plattform können Sie die FMZ Quant Mobile APPSeite zum Herunterladen der mobilen AppNach dem Herunterladen und Installieren öffnen Sie die FMZ Mobile App und melden Sie sich mit Ihrem FMZ Account an.

img

Bitte beachten Sie, dass FMZ Quant inFMZ.COMInternationale Website undFMZ.CNChina Inlandsseite (unterstützt verschiedene Märkte). Beim Anmelden müssen Sie die entsprechende Website auswählen. Konten für verschiedene Websites sind unabhängig und nicht austauschbar.

Das mobile APP-Handelsterminal der FMZ Quantitative Trading Platform ist ein quantitatives Handelswerkzeug, das APIs von großen Börsen umfasst.

Wie kann auf die Handelsterminalfunktion zugegriffen und aktiviert werden?

Nach dem Einloggen in die FMZ Quant Mobile APP können Sie die Trading Terminal Funktion auf der Hauptoberfläche sehen.

Bevor FMZ sein mobiles APP-Handelsterminal einführte, hatte die Webversion von FMZ diese Funktion bereits recht früh eingeführt.Mindestens ein Dockerprogramm muss bereitgestellt werden- Ich weiß. Dies liegt daran, dass alle tatsächlichen Anfragen, die an die Börsen gesendet werden, vom Docker aus ausgeführt werden, nicht von der mobilen App, was sicherer ist.

img

Ausführliche Erläuterung der Schnittstelle des Handelsterminals

1. Hauptoberfläche des Handelsterminals:

Nach dem Öffnen des Handelsterminals sehen Sie die Hauptoberfläche des Handelsterminals.

  • Docker: Alle unter Ihrem aktuellen FMZ-Konto bereitgestellten Dockerprogramme werden hier zur Auswahl aufgeführt.
  • Austausch: Die in Ihrem aktuellen FMZ-Konto erstellten Austauschobjekte (konfiguriert mit API-Key-Informationen usw.) werden auch in entsprechenden Listen für spezifische Betriebsauswahl angezeigt.
  • Markte: Setzen Sie das Handelspaar oder den Vertrag ein, den dieses Handelsterminal betreiben wird.

img

2. Handelszone:

Die Handelszone zeigt Markttiefe-Daten an. Handelswidgets können mit Bestellpreis, Bestellmenge, Bestellrichtung, Hebelwirkung und anderen Einstellungen festgelegt werden.

img

Die unteren Registerkarten der Hauptoberfläche zeigen Informationen wie Orders, Assets an, wodurch Ihre Mittel und Aufträge auf einen Blick klar sind.

3. K-Liniendiagramm:

Wenn Sie beim Bestellen das K-Liniendiagramm ansehen möchten, wurde hier ein durchdachtes Design implementiert - ein zusammenklappbares Display-Widget, das das Mini-K-Liniendiagramm des aktuellen Produkts entfaltet.

img

Wenn Sie das K-Liniendiagramm in einem größeren Bereich anzeigen möchten, Markttransaktionsprotokolle anzeigen, tiefgreifende Informationen und mehr, können Sie auf dieses K-Liniendiagramm-Symbol klicken, um auf die professionelle K-Liniendiagrammseite zu springen.

img

Die professionelle K-Liniendiagramm-Schnittstelle:

img

Die professionelle K-Line-Chart-Schnittstelle kann auch im Landschaftsmodus angezeigt werden:

img

Handelsplugin

Was kann ein Trading-Terminal-Plugin tun?

  • Berechnung und Anzeige von Marktdaten in Echtzeit.
  • Auftragsvergabe und Auftragsverwaltung.
  • Risikomanagement umsetzen.
  • Halbautomatische Handelsstrategien.

Welche Programmiersprachen und Tools werden zur Entwicklung von Plugins verwendet?

  • Schildkröten
  • JavaScript
  • c++

Was gibt's denn?

  • Teilen Sie Ihr Plugin mit der Community für gegenseitiges Lernen mit Entwicklern.
  • Lernen Sie von anderen Entwicklern und lassen Sie sich inspirieren.
  • Interagieren Sie mit anderen Quantitative Trading-Enthusiasten.

Geben Sie ein Beispiel, das auf einem realen Anwendungsszenario basiert:

In der FMZ-Community hat ein Nutzer eine solche Anfrage gestellt:

Verwenden Sie js, um alle U-Kontraktwährungen der Binance-Börse zu durchqueren und eine Position von 10u (lang) für jede Währung zu eröffnen.

Dieses Anforderungsszenario kann mit Trading-Terminal-Plugins tatsächlich implementiert werden, und das Ausführen von Plugin-Strategien auf dem Trading-Terminal ist kostenlos.

Lassen Sie uns sehen, wie die Benutzeranfrage gestaltet und umgesetzt wird.

Zunächst müssen wir ein Trading-Terminal-Plugin erstellen und drei Parameter zu seiner Strategie hinzufügen:

img

Dann schreiben Sie das Plugin:

function main() {
    let exName = exchange.GetName()
    if (exName != "Futures_Binance") {
        return "not support!"
    }

    let apiBase = "https://fapi.binance.com"
    if (isSimulate) {
        apiBase = "https://testnet.binancefuture.com"        
        Log("Switch base address:", apiBase)
    }
    exchange.SetBase(apiBase)
    
    try {
        var obj = JSON.parse(HttpQuery(apiBase + "/fapi/v1/exchangeInfo"))
    } catch (e) {
        Log(e)
    }
    
    let pairs = []
    for (var i in obj.symbols) {
        if (obj.symbols[i]["status"] !== "TRADING" || obj.symbols[i]["quoteAsset"] !== "USDT") {
            continue
        }
        let = pair = obj.symbols[i]["baseAsset"] + "_" + obj.symbols[i]["quoteAsset"]
        pairs.push(pair)
    }
    
    let markets = _C(exchange.GetMarkets)
    for (var i in pairs) {
        // /*
        // For testing purposes, only 10 varieties are opened here. If all varieties are needed, this comment content can be deleted.
        if (i >= 9) {
            break
        }
        // */

        let pair = pairs[i]
        exchange.SetCurrency(pair)
        exchange.SetContractType("swap")
        let ticker = exchange.GetTicker()
        if (!ticker) {
            continue 
        }
        
        let = amountPrecision = markets[pair + ".swap"]["AmountPrecision"]
        exchange.SetDirection("buy")
        let amount = _N(qty / ticker.Last, amountPrecision)
        if (amount > 0) {
            exchange.Buy(-1, amount)
        }

        Sleep(100)
    }

    // Obtain all positions
    let pos = exchange.IO("api", "GET", "/fapi/v2/positionRisk")
    if (!pos) {
        return 
    }
    
    // View positions
    return pos.filter(item => Number(item.positionAmt) != 0)
}

Nachdem das Trading-Terminal-Plugin geschrieben wurde, kann es getestet werden:

Klicken Sie im Handelsterminal der mobilen APP auf die Schaltfläche ..., um die Liste der Handelsterminal-Plugins zu öffnen. Alle Plugins in der Strategiebibliothek Ihres aktuellen FMZ-Kontos werden in dieser Liste zur Auswahl und Verwendung angezeigt.

img

Nachdem wir die Operation auf der mobilen APP abgeschlossen haben, verwenden wir den folgenden Code, um die Position des Simulationsbots von Binance zu abfragen:

function main() {
    let apiBase = "https://testnet.binancefuture.com"
    exchange.SetBase(apiBase)

    let pos = exchange.IO("api", "GET", "/fapi/v2/positionRisk")
    if (!pos) {
        return 
    }

    // View positions
    return pos.filter(item => Number(item.positionAmt) != 0)
}

Gefundene Daten

[{
	"symbol": "ETCUSDT",
	"entryPrice": "16.17",
	"unRealizedProfit": "0.08567881",
	"positionSide": "LONG",
	"updateTime": 1698420908103,
	"isolated": false,
	"breakEvenPrice": "16.176468",
	"leverage": "20",
	"adlQuantile": 3,
	"positionAmt": "0.65",
	"markPrice": "16.30181356",
	"liquidationPrice": "0",
	"maxNotionalValue": "400000",
	"marginType": "cross",
	"notional": "10.59617881",
	"isolatedMargin": "0.00000000",
	"isAutoAddMargin": "false",
	"isolatedWallet": "0"
}, {
	"positionAmt": "105",
	"markPrice": "0.09371526",
	"liquidationPrice": "0",
	"leverage": "20",
	"maxNotionalValue": "90000",
	"positionSide": "LONG",
	"isolatedWallet": "0",
	"symbol": "TRXUSDT",
	"updateTime": 1698420906668,
	"breakEvenPrice": "0.094497784",
	"isolatedMargin": "0.00000000",
	"isolated": false,
	"entryPrice": "0.09446",
	"adlQuantile": 1,
	"unRealizedProfit": "-0.07819770",
	"isAutoAddMargin": "false",
	"notional": "9.84010230",
	"marginType": "cross"
}, {
	"unRealizedProfit": "-0.00974456",
	"isAutoAddMargin": "false",
	"notional": "9.97449543",
	"isolatedWallet": "0.50309216",
	"updateTime": 1698420905377,
	"markPrice": "67.85371047",
	"isolatedMargin": "0.49334760",
	"adlQuantile": 2,
	"symbol": "LTCUSDT",
	"entryPrice": "67.92",
	"liquidationPrice": "64.91958163",
	"maxNotionalValue": "250000",
	"positionSide": "LONG",
	"isolated": true,
	"positionAmt": "0.147",
	"breakEvenPrice": "67.947168",
	"leverage": "20",
	"marginType": "isolated"
}, {
	"liquidationPrice": "1613.23261508",
	"marginType": "isolated",
	"isolated": true,
	"symbol": "ETHUSDT",
	"entryPrice": "1784.27",
	"markPrice": "1783.35661952",
	"isAutoAddMargin": "false",
	"positionSide": "LONG",
	"notional": "8.91678309",
	"leverage": "10",
	"maxNotionalValue": "30000000",
	"isolatedWallet": "0.89551774",
	"adlQuantile": 1,
	"positionAmt": "0.005",
	"breakEvenPrice": "1784.983708",
	"unRealizedProfit": "-0.00456690",
	"isolatedMargin": "0.89095084",
	"updateTime": 1698420900362
}, {
	"positionAmt": "17.1",
	"marginType": "cross",
	"isolatedWallet": "0",
	"adlQuantile": 2,
	"liquidationPrice": "0",
	"maxNotionalValue": "250000",
	"positionSide": "LONG",
	"isolated": false,
	"symbol": "EOSUSDT",
	"breakEvenPrice": "0.6432572",
	"updateTime": 1698420904257,
	"isolatedMargin": "0.00000000",
	"isAutoAddMargin": "false",
	"notional": "10.34550000",
	"entryPrice": "0.643",
	"markPrice": "0.60500000",
	"unRealizedProfit": "-0.64980000",
	"leverage": "20"
}, {
	"isolated": false,
	"adlQuantile": 1,
	"liquidationPrice": "0",
	"maxNotionalValue": "10000000",
	"notional": "9.73993328",
	"leverage": "20",
	"updateTime": 1698420901638,
	"symbol": "BCHUSDT",
	"entryPrice": "250.0",
	"markPrice": "243.49833219",
	"isAutoAddMargin": "false",
	"positionSide": "LONG",
	"positionAmt": "0.040",
	"breakEvenPrice": "250.1",
	"isolatedMargin": "0.00000000",
	"unRealizedProfit": "-0.26006671",
	"marginType": "cross",
	"isolatedWallet": "0"
}]

Es kann gesehen werden, dass 6 Positionen geöffnet wurden, weil es beim Auftragen von tatsächlichen Aufträgen auf dem Simulationsbot leicht ist, Limitpreise auszulösen; außerdem ist es aufgrund des Auftragsbetrags von 10U leicht, das Mindestaufträgelimit von Handelsparen auszulösen; daher wurden einige Handelspare nicht erfolgreich bestellt. Wenn Sie dies in der Realität verwenden müssen, sollten praktischere Situationen in Betracht gezogen werden, um dieses Plugin für eine bessere Nutzung zu optimieren.

Weitere interessante eingebaute Plugins auf FMZ

Das mobile App-Handelsterminal der FMZ Quant Trading Platform hat viele interessante Plugins. Kommen Sie und erkunden Sie gemeinsam!

https://www.fmz.com/upload/asset/16b436307a4ce5c246c2.mp4

Das Ende

Die neue Trading-Terminal-Funktion der FMZ-Mobil-App wird zu Ihrem leistungsstarken Assistenten auf dem Markt für digitale Vermögenswerte und ermöglicht Ihnen, flexibler auf Marktfluktuationen und Chancen zu reagieren.


Mehr