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.
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.
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.
Après vous être connecté à l'application mobile FMZ Quant, vous pouvez voir la fonction
Avant que FMZ lance son terminal de trading mobile APP, la version web de FMZ
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.
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.
Les onglets inférieurs de l'interface principale affichent des informations telles que
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.
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.
L'interface professionnelle du diagramme de ligne K:
L'interface professionnelle du graphique K-line peut également être affichée en mode paysage:
Que peut faire un plugin de terminal de trading?
Quels langages de programmation et quels outils sont utilisés pour développer des plugins?
Tu peux avoir quoi?
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:
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
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.
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 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é.