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

L'application mobile FMZ est un terminal de négociation qui vous permet de quantifier votre expérience de négociation.

Auteur:L'inventeur de la quantification - un petit rêve, Créé: 2023-10-27 16:06:15, Mis à jour: 2023-10-30 15:43:08

[TOC] Je vous en prie.

img

Dans le domaine de la négociation quantitative, des outils de négociation quantitative simples et faciles à utiliser ont toujours été l'une des clés de la croissance de la richesse et de la gestion des risques. Cependant, à mesure que la concurrence augmente sur le marché, les outils de négociation traditionnels ne sont plus suffisants pour répondre aux besoins du marché en évolution rapide. Afin de permettre à un grand nombre de traders de maintenir leur avantage concurrentiel dans le monde en évolution des actifs numériques, l'application mobile FMZ a ajouté une fonctionnalité majeure: le terminal de négociation.

Le guide d'introduction au terminal de transaction:

Qu'est-ce qu'un terminal de négociation avec l'application mobile FMZ?

Il y a aussi une plateforme de trading quantitative FMZ.Page de téléchargement de l'application mobileVous pouvez télécharger l'APP de téléphonie mobile FMZ Quantitative.

img

Il est important de noter que la quantification FMZ est divisée en stations internationales FMZ.COM, stations nationales FMZ.CN (les marchés pris en charge varient), où il est nécessaire de sélectionner les sites correspondants lors de la connexion, les différents comptes de sites étant indépendants et non généraux.

FMZ Quantitative Trading Platform Mobile APP Trading Terminal est un outil de négociation quantitative centralisé après l'emballage des API des principaux échanges. Il peut être rapidement basculé sur les différents échanges.


Comment accéder et activer les fonctionnalités du terminal de transaction?

Une fois que vous vous êtes connecté à l'application mobile FMZ Quantitative, vous pouvez voir la fonctionnalité "Terminal de transaction" sur l'interface principale.

Avant que FMZ ne lance le terminal de transaction de l'application mobile, le terminal de transaction Web de FMZ était en ligne depuis longtemps.Au moins un programme d'administrateur déployéJe ne sais pas. Parce que toutes les demandes d'interaction qui sont effectivement envoyées à l'échange sont exécutées par l'hôte et non sur l'application mobile, c'est plus sûr.

img


Détails de l'interface du terminal

L'interface principale du terminal de transaction:

Après avoir ouvert le terminal, vous pouvez voir l'interface principale du terminal, cliquer sur la zone rouge pour ouvrir l'interface de configuration "Custodian", "Exchange" et "Trading Pair".

  • Les hôtes: tous les programmes d'hébergement déployés sur le compte FMZ actuel seront dans la liste et vous pourrez choisir un hôte spécifique à utiliser.
  • Échange: les objets d'échange configurés dans le compte FMZ actuel (informations telles que la configuration de la clé API) apparaissent également dans la liste correspondante et vous pouvez choisir le compte spécifique que vous souhaitez utiliser.
  • Paire de transactions: définit la paire de transactions, les contrats, à exploiter par le terminal de transaction en cours. La paire de transactions, les contrats, est affichée dans le boîtier d'entrée en fonction de la correspondance des informations saisies.

img


2ème zone de négociation:

Les zones de négociation affichent les données de profondeur du marché. Le contrôleur de transaction peut régler le prix, le nombre, la direction et le levier des commandes.

img

Les balises situées au bas de l'interface principale affichent des informations telles que "ordre", "détention" et "actifs", ce qui permet de voir vos fonds, vos positions et vos ordres.


Le graphique de ligne 3K:

Si vous souhaitez consulter le diagramme de lignes K lors de la commande, voici un dispositif de visualisation pliable conçu avec soin pour déployer le mini-diagramme de lignes K de la variété actuelle.

img


Si vous souhaitez avoir une zone plus grande pour afficher le K-line chart, afficher les enregistrements de transactions sur le marché, la profondeur, etc., vous pouvez cliquer sur cette icône K-line pour accéder à la page professionnelle du K-line chart.

img


L'interface K-Line professionnelle:

img


L'interface professionnelle K-line permet également d'afficher:

img


Plugin de négociation

Qu'est-ce qu'un terminal de transaction peut faire?

  • Le calcul et la présentation des données du marché en temps réel.
  • Les commandes et la gestion des commandes.
  • Il est important de prendre en compte les risques.
  • Il y a aussi des stratégies de négociation semi-automatisées.

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

  • python
  • JavaScript
  • c++

Qu'est-ce que le GET peut nous apporter?

  • Partagez vos plugins avec la communauté et apprenez avec les développeurs.
  • Apprendre et s'inspirer des autres développeurs.
  • Interagir avec d'autres amateurs de transactions quantitatives.

Je vais vous donner un exemple d'application pratique.

Dans la communauté FMZ, les utilisateurs ont fait une demande:

Utilisez js pour parcourir toutes les pièces de contrat U sur l'échange Binance, et chaque pièce est en bourse 10u (plus), veuillez demander comment écrire ce code.

Ce scénario de demande peut en fait être entièrement réalisé avec un plug-in de terminal de transaction, et la stratégie de fonctionnement du plug-in de terminal de transaction est gratuite, ce qui est sans aucun doute une bonne option par rapport à la stratégie de fonctionnement du trading de terminal de transaction à long terme.

Nous allons voir comment concevoir pour répondre à cette demande des utilisateurs.

Tout d'abord, vous devez créer un plugin de terminal de transaction et ajouter trois paramètres à la stratégie de ce plugin:

img

Il a ensuite commencé à écrire des plugins:

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("切换基地址:", 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) {
        // /*
        // 这里为了测试,只开仓10个品种,如果要全品种,这段注释内容可以删除
        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)
    }

    // 获取所有持仓
    let pos = exchange.IO("api", "GET", "/fapi/v2/positionRisk")
    if (!pos) {
        return 
    }
    
    // 查看持仓
    return pos.filter(item => Number(item.positionAmt) != 0)
}

Une fois que le plugin de terminal de transaction a été écrit, vous pouvez tester:

Dans le terminal de trading de l'application mobile, cliquez sur le bouton "... " pour ouvrir la liste des plugins de terminal de trading, et les plugins de terminal de trading dans la bibliothèque de stratégie actuelle du compte FMZ seront affichés dans cette liste.

img

Une fois l'opération terminée sur l'APP du téléphone, nous utilisons le code suivant pour rechercher le stockage de l'analogue Binance:

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

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

    // 查看持仓
    return pos.filter(item => Number(item.positionAmt) != 0)
}

Pour les donné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"
}]

Vous pouvez voir que 6 positions sont ouvertes, car il est facile de déclencher un prix limité lors de la commande réelle, car il s'agit d'un disque simulé. En outre, comme il est facile de déclencher un montant de 10U, il est facile de déclencher une limite de montant minimum de commande pour la paire de transactions. Si l'utilisation réelle nécessite de prendre en compte davantage de situations réelles, afin d'optimiser ce plugin pour une meilleure utilisation, ce code est uniquement utilisé pour l'échange pédagogique.


Autres plugins intéressants pour FMZ

FMZ est une plateforme de trading quantitative pour les téléphones mobiles, et il y a beaucoup d'autres plugins intéressants à explorer!

Le montant de l'impôt sur le revenu est calculé à partir du montant de l'impôt sur le revenu.


La fin

Les nouvelles fonctionnalités du terminal de trading de l'application mobile FMZ vous aideront à mieux gérer les fluctuations et les opportunités du marché des actifs numériques. Ne vous limitez plus aux stratégies de trading traditionnelles, mais créez des stratégies de trading plus intelligentes, plus efficaces et plus adaptées au marché grâce à des plugins personnalisés.


Plus de

- Je vous en prie.Le rêve est de vivre dans un monde où les gens sont différents.

L'inventeur de la quantification - un petit rêveGrâce au soutien, les ingénieurs de développement de la plate-forme ont été très efficaces, et les suivants ajouteront encore plus de fonctionnalités utiles, que les utilisateurs peuvent mentionner malgré les besoins.