Les ressources ont été chargées... Je charge...

FMZ Mobile APP Terminal de trading, permettant votre expérience de trading quantitative

Auteur:FMZ~Lydia, Créé: 2023-10-30 11:57:31, Mis à jour: 2024-11-10 18:51:41

img

Dans le domaine du trading quantitatif, les outils de trading quantitatif simples et faciles à utiliser ont toujours été l'une des clés pour atteindre la croissance de la richesse et la gestion des risques. Cependant, avec l'augmentation de la concurrence sur le marché, les outils de trading traditionnels ne sont plus suffisants pour répondre aux demandes du marché en évolution rapide.

Guide du débutant sur le terminal de négociation:

Qu'est-ce que le terminal de négociation de l'application mobile FMZ?

Sur la plateforme de trading FMZ Quant, vous pouvez télécharger l'application mobile FMZ Quant à partir duPage de téléchargement de l'application mobileAprès avoir téléchargé et installé, ouvrez l'application mobile FMZ et connectez-vous avec votre compte FMZ.

img

Veuillez noter que FMZ Quant est divisé enFMZ.COMsite international etFMZ.CNSite national chinois (supportant différents marchés). Lorsque vous vous connectez, vous devez choisir le site correspondant. Les comptes pour différents sites sont indépendants et non interchangeables.

Le terminal de trading mobile APP de la plateforme de trading quantitative FMZ est un outil de trading quantitatif qui encapsule les API des principaux échanges. Il permet de basculer rapidement entre différents échanges, et à l'aide de diverses fonctionnalités de la plateforme FMZ, il peut effectuer l'analyse de la capture de données, la surveillance des données en temps réel, le trading assisté par programme, les opérations de trading semi-automatique / manuel, etc.

Comment accéder et activer la fonction de terminal de négociation?

Après vous être connecté à l'application mobile FMZ Quant, vous pouvez voir la fonction Trading Terminal sur l'interface principale.

Avant que FMZ lance son terminal de trading mobile APP, la version web de FMZ avait déjà lancé cette fonctionnalité assez tôt.au moins un programme docker doit être déployéJe suis désolée. Cela est dû au fait que toutes les requêtes réelles envoyées aux échanges sont exécutées à partir du docker, et non sur l'application mobile, ce qui est plus sûr.

img

Explication détaillée de l'interface du terminal de négociation

1. Interface principale du terminal de négociation:

Après avoir ouvert le terminal de trading, vous pouvez voir l'interface principale du terminal de trading.

  • Docker: tous les programmes docker déployés sous votre compte FMZ actuel seront répertoriés ici pour sélection.
  • Exchange: Les objets d'échange (configurés avec des informations API KEY, etc.) créés dans votre compte FMZ actuel apparaîtront également dans les listes correspondantes pour les sélections d'opérations spécifiques.
  • Marchés: Configurez la paire de négociation ou le contrat que ce terminal de négociation va exploiter. Le widget de la zone d'entrée pour les paires de négociation affichera des paires de négociation/contrats sélectionnables en fonction des informations saisies.

img

2. Zone de négociation:

La zone de négociation affiche les données de profondeur de marché; Les widgets de négociation peuvent être définis avec le prix de l'ordre, la quantité de l'ordre, la direction de l'ordre, le levier et d'autres paramètres.

img

Les onglets inférieurs de l'interface principale affichent des informations telles que Ordres, Actifs, rendant vos fonds et vos ordres clairs en un coup d'œil.

Le graphique de la ligne K:

Si vous souhaitez consulter le graphique en ligne K lors d'une commande, un design réfléchi a été mis en œuvre ici - un widget d'affichage pliable qui déploie le mini graphique en ligne K du produit en cours.

img

Si vous souhaitez afficher le graphique K-line dans une zone plus grande, afficher les enregistrements des transactions du marché, des informations approfondies et plus encore, vous pouvez cliquer sur cette icône K-line pour accéder à la page du graphique K-line professionnel.

img

L'interface professionnelle du diagramme de ligne K:

img

L'interface professionnelle du graphique K-line peut également être affichée en mode paysage:

img

Plugin de trading

Que peut faire un plugin de terminal de trading?

  • Calcul et affichage des données de marché en temps réel.
  • Placement et gestion des commandes.
  • Mettre en œuvre la gestion des risques.
  • Stratégies de négociation auxiliaires semi-automatiques.

Quels langages de programmation et quels outils sont utilisés pour développer des plugins?

  • python
  • JavaScript
  • c++

Tu peux avoir quoi?

  • Partagez votre plugin avec la communauté pour apprendre mutuellement avec les développeurs.
  • Apprenez d'autres développeurs et inspirés.
  • Interagir avec d'autres passionnés de trading quantitatif.

Donnez un exemple basé sur un scénario d'application réel:

Dans la communauté FMZ, un utilisateur a présenté une telle demande:

Utilisez js pour traverser toutes les devises U du contrat de l'échange Binance, et ouvrez une position de 10u (long) pour chaque monnaie.

Ce scénario d'exigence peut être mis en œuvre avec des plugins de terminaux de trading en fait, et exécuter des stratégies de plugins sur le terminal de trading est gratuit.

Voyons comment concevoir et mettre en œuvre une demande utilisateur.

Tout d'abord, nous devons créer un plugin de terminal de trading et ajouter trois paramètres à sa stratégie:

img

Alors commencez à écrire le 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)
}

Une fois que le plugin de terminal de trading est écrit, il peut être testé:

Dans le terminal de trading de l'application mobile, cliquez sur le bouton ... pour ouvrir la liste des plugins de terminal de trading.

img

Après avoir terminé l'opération sur l'application mobile, nous utilisons le code suivant pour interroger la position du robot de simulation de Binance:

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)
}

Données trouvées:

[{
	"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"
}]

On peut voir que 6 positions ont été ouvertes, c'est parce que lorsque vous passez des ordres réels sur le robot de simulation, il est facile d'activer les prix limites; en outre, en raison du montant de l'ordre de 10U, il est facile d'activer la limite minimale du montant de l'ordre des paires de trading; par conséquent, quelques paires de trading n'ont pas été commandées avec succès. Si vous avez besoin de l'utiliser dans la réalité, des situations plus pratiques devraient être envisagées afin d'optimiser ce plugin pour une meilleure utilisation.

Autres plugins intégrés intéressants sur FMZ

Le terminal de trading de l'application mobile de la plateforme de trading FMZ Quant dispose de nombreux plugins intéressants.

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

La fin

La nouvelle fonctionnalité de terminal de trading de l'application mobile FMZ deviendra votre puissant assistant sur le marché des actifs numériques, vous permettant de répondre plus flexiblement aux fluctuations et opportunités du marché.


Plus de