[TOC]

Dans le domaine du trading quantitatif, des outils de trading quantitatif simples et faciles à utiliser ont toujours été l’une des clés pour parvenir à une croissance de la richesse et à une gestion des risques. Cependant, à mesure que la concurrence sur le marché devient de plus en plus féroce, les outils de trading traditionnels ne suffisent plus à faire face à l’évolution rapide des demandes du marché. Afin que les traders quantitatifs puissent conserver leur avantage concurrentiel dans ce monde en évolution des actifs numériques, une nouvelle fonctionnalité majeure a été ajoutée à l’application mobile FMZ : le terminal de trading. Cette fonctionnalité améliorera non seulement votre efficacité commerciale, mais vous permettra également d’utiliser des plug-ins personnalisés pour vous aider dans le trading, injectant ainsi une nouvelle vitalité à votre carrière commerciale.
Sur la plateforme de trading quantitative FMZ,Page de téléchargement de l’application mobileVous pouvez télécharger l’application mobile quantitative FMZ. Après avoir téléchargé et installé, ouvrez l’application mobile FMZ et connectez-vous à votre compte FMZ.

Il convient de noter que FMZ Quant est divisé en site international FMZ.COM et site national FMZ.CN (prenant en charge différents marchés). Vous devez sélectionner le site correspondant lors de la connexion. Les différents comptes de site sont indépendants et non universels.
Le terminal de trading mobile APP de la plate-forme de trading quantitative FMZ est un outil de trading quantitatif qui encapsule et centralise les API des principales bourses. Il peut basculer rapidement entre différents échanges et, en s’appuyant sur les différentes fonctions de la plate-forme FMZ, il peut réaliser la capture et l’analyse des données, la surveillance des données en temps réel, le trading assisté par programmation, le trading semi-automatique et manuel et d’autres opérations.
Après vous être connecté à l’application mobile FMZ Quantitative, vous pouvez voir la fonction « Terminal de trading » sur l’interface principale. Cliquez dessus pour accéder à l’interface du terminal de trading.
Avant que FMZ ne lance le terminal de trading mobile APP, le terminal Web FMZ avait déjà lancé la fonction de terminal de trading. Le terminal de trading basé sur le Web et le terminal de trading basé sur l’application mobile doivent tous deux êtreDéployer au moins une application d’hébergement。 Étant donné que toutes les demandes d’interaction réelles envoyées à l’échange sont exécutées depuis le dépositaire, et non sur l’application mobile, c’est plus sûr. Cela évite également le problème de la clé API liée à une adresse IP et de son impossibilité d’utilisation si l’IP du téléphone mobile change.

1. Interface principale du terminal de trading :
Après avoir ouvert le terminal de trading, vous pouvez voir l’interface principale du terminal de trading. Cliquez sur la zone encadrée rouge pour ouvrir les interfaces de configuration « Dépositaire », « Bourse » et « Paire de trading ».

2. Zone de chalandise :
La zone de trading affiche les données de profondeur du marché ; Les contrôles de trading peuvent définir le prix de l’ordre, la quantité de l’ordre, la direction de l’ordre, l’effet de levier et d’autres paramètres.

Les étiquettes au bas de l’interface principale affichent des informations telles que « Commandes », « Positions » et « Actifs », vous permettant de voir vos fonds, vos positions et vos commandes en un coup d’œil.
3. Graphique en K :
Si vous souhaitez jeter un œil au graphique en chandeliers lors de la passation d’une commande, il existe un contrôle d’affichage pliable bien pensé conçu ici pour étendre le mini graphique en chandeliers du produit actuel.

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

Interface graphique K-line professionnelle :

L’interface graphique professionnelle K-line peut également être affichée horizontalement :

Que peut faire le plugin du terminal de trading ?
Quels langages de programmation et outils sont utilisés pour développer des plugins ?
Que puis-je obtenir ?
Dans la communauté FMZ, les utilisateurs ont formulé une demande comme celle-ci :
Utilisez js pour parcourir toutes les devises du contrat U sur Binance Exchange et ouvrez une position 10u (longue) pour chaque devise. Comment écrivez-vous ce code ?
Ce scénario de demande peut en fait être entièrement réalisé en utilisant un plug-in de terminal de trading, et le terminal de trading est gratuit pour exécuter des stratégies de plug-in. Par rapport à la stratégie à long terme en temps réel, le trading assisté par plug-in de terminal de trading est sans aucun doute un bon choix.
Voyons comment concevoir et mettre en œuvre cette exigence soulevée par les utilisateurs.
Tout d’abord, vous devez créer un plug-in de terminal de trading et ajouter 3 paramètres à la stratégie du plug-in :

Commencez ensuite à écrire le plug-in :
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 le plug-in du terminal de trading écrit, il peut être testé :
Dans le terminal de trading de l’application mobile, cliquez sur le bouton « … » pour ouvrir la liste des plug-ins du terminal de trading. Tous les plug-ins du terminal de trading de la bibliothèque de stratégies de compte FMZ actuelle seront affichés dans cette liste et vous pourrez sélectionnez-les pour les utiliser.

Après avoir terminé l’opération sur l’application mobile, nous utilisons le code suivant pour interroger les avoirs du disque de simulation 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)
}
Données de la requête :
[{
"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. En effet, lors du placement d’un ordre, il est facile de déclencher le prix limite car il s’agit d’un ordre simulé. De plus, comme l’ordre est de 10U, il est facile de déclencher le montant minimum de l’ordre limite de la paire de trading. Il y a donc plusieurs Aucune commande n’a été passée avec succès pour les paires de trading. Si l’utilisation réelle nécessite de prendre en compte des situations plus pratiques, ce plug-in peut être optimisé pour une meilleure utilisation. Ce code est uniquement utilisé pour l’enseignement de la communication.
Il existe de nombreux plug-ins intéressants dans le terminal de trading APP mobile de la plateforme de trading quantitative FMZ, venez les explorer ensemble !
/upload/asset/16b436307a4ce5c246c2.mp4
La nouvelle fonction de terminal de trading de l’application mobile FMZ deviendra votre bras droit sur le marché des actifs numériques, vous permettant de réagir de manière plus flexible aux fluctuations et aux opportunités du marché. Ne vous limitez plus aux stratégies de trading traditionnelles, grâce à des plug-ins personnalisés, vous pouvez créer des stratégies de trading plus intelligentes, plus efficaces et plus adaptables au marché. Commençons ce nouveau chapitre passionnant du trading quantitatif et améliorons vos compétences de trading et vos profits.