[TOC]

No campo da negociação quantitativa, ferramentas de negociação quantitativa simples e fáceis de usar sempre foram uma das chaves para alcançar crescimento patrimonial e gerenciamento de riscos. No entanto, à medida que a concorrência no mercado se torna cada vez mais acirrada, as ferramentas de negociação tradicionais não são mais suficientes para lidar com as rápidas mudanças nas demandas do mercado. Para que os traders quantitativos mantenham sua vantagem competitiva neste mundo em evolução de ativos digitais, um novo recurso importante foi adicionado ao aplicativo móvel FMZ: terminal de negociação. Esse recurso não só melhorará sua eficiência de negociação, mas também permitirá que você use plug-ins personalizados para auxiliar na negociação, injetando nova vitalidade em sua carreira de negociação.
Na plataforma de negociação quantitativa FMZ,Página de download do aplicativo móvelVocê pode baixar o aplicativo móvel quantitativo FMZ. Após baixar e instalar, abra o aplicativo móvel FMZ e faça login na sua conta FMZ.

Deve-se notar que o FMZ Quant é dividido em site internacional FMZ.COM e site doméstico FMZ.CN (com suporte a diferentes mercados). Você precisa selecionar o site correspondente ao fazer login. Contas de sites diferentes são independentes e não universais.
O terminal de negociação de aplicativo móvel da plataforma de negociação quantitativa FMZ é uma ferramenta de negociação quantitativa que encapsula e centraliza as APIs das principais bolsas. Ele pode alternar rapidamente entre várias bolsas e, contando com as várias funções da plataforma FMZ, pode realizar captura e análise de dados, monitoramento de dados em tempo real, negociação assistida programática, negociação semiautomática e manual e outras operações.
Após efetuar login no FMZ Quantitative Mobile APP, você pode ver a função “Trading Terminal” na interface principal. Clique nela para entrar na interface do terminal de negociação.
Antes da FMZ lançar o terminal de negociação de APP móvel, o terminal web da FMZ já havia lançado a função de terminal de negociação. Tanto o terminal de negociação baseado na web quanto o terminal de negociação baseado em APP móvel devem serImplantar pelo menos um aplicativo hoster。 Como todas as solicitações de interação reais enviadas à bolsa são executadas pelo custodiante, e não no aplicativo móvel, é mais seguro. Ele também evita o problema de a API KEY estar vinculada a um endereço IP e não poder ser usada se o IP do celular mudar.

1. Interface principal do terminal de negociação:
Após abrir o terminal de negociação, você pode ver a interface principal do terminal de negociação. Clique na área da caixa vermelha para abrir as interfaces de configuração “Custodian”, “Exchange” e “Trading Pair”.

2. Área de negociação:
A área de negociação exibe dados de profundidade de mercado; Os controles de negociação podem definir o preço do pedido, a quantidade do pedido, a direção do pedido, a alavancagem e outras configurações.

Os rótulos na parte inferior da interface principal exibem informações como “Pedidos”, “Posições” e “Ativos”, permitindo que você veja seus fundos, posições e pedidos rapidamente.
3. Gráfico de linhas K:
Se você quiser dar uma olhada no gráfico de velas ao fazer um pedido, há um controle de exibição dobrável projetado aqui para expandir o mini gráfico de velas do produto atual.

Se você quiser uma área maior para exibir o gráfico K-line, mostrando registros de transações de mercado, profundidade e outras informações, você pode clicar neste ícone K-line para pular para a página profissional do gráfico K-line.

Interface profissional de gráfico K-line:

A interface profissional do gráfico K-line também pode ser exibida horizontalmente:

O que o plugin do terminal de negociação pode fazer?
Quais linguagens de programação e ferramentas são utilizadas para desenvolver plugins?
O que posso obter?
Na comunidade FMZ, os usuários apresentaram uma demanda como esta:
Use js para percorrer todas as moedas de contrato U na Binance Exchange e abra uma posição 10u (longa) para cada moeda. Como você escreve esse código?
Este cenário de demanda pode ser completamente realizado usando um plug-in de terminal de negociação, e o terminal de negociação é gratuito para executar estratégias de plug-in. Comparado com a estratégia de longo prazo em tempo real, o plug-in de terminal de negociação assistido por negociação é, sem dúvida, uma boa escolha.
Vamos ver como projetar e implementar esse requisito levantado pelos usuários.
Primeiro, você precisa criar um plug-in de terminal de negociação e adicionar 3 parâmetros à estratégia do plug-in:

Então comece a escrever o 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)
}
Depois que o plug-in do terminal de negociação for escrito, ele poderá ser testado:
No terminal de negociação do APP móvel, clique no botão “…” para abrir a lista de plug-ins do terminal de negociação. Todos os plug-ins do terminal de negociação na biblioteca de estratégia da conta FMZ atual serão exibidos nesta lista e podem ser usados selecionando-os.

Após concluir a operação no APP móvel, usamos o seguinte código para consultar os acervos do disco de simulação da 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)
}
Dados da consulta:
[{
"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"
}]
Você pode ver que 6 posições estão abertas. Isso ocorre porque ao fazer uma ordem, é fácil acionar o preço limite porque é uma ordem simulada. Além disso, como a ordem é 10U, é fácil acionar o valor mínimo da ordem limite do par de negociação. Então, há vários Nenhum pedido foi colocado com sucesso para os pares de negociação. Se o uso real exigir a consideração de situações mais práticas, este plug-in pode ser otimizado para melhor uso. Este código é usado apenas para ensinar comunicação.
Existem muitos plug-ins interessantes no terminal de negociação de aplicativo móvel da plataforma de negociação quantitativa FMZ, venha explorar junto!
/upload/asset/16b436307a4ce5c246c2.mp4
A nova função de terminal de negociação do aplicativo móvel FMZ se tornará seu braço direito no mercado de ativos digitais, permitindo que você responda às flutuações e oportunidades do mercado com mais flexibilidade. Não mais limitado às estratégias de negociação tradicionais, com plug-ins personalizados, você pode criar estratégias de negociação mais inteligentes, mais eficientes e mais adaptáveis ao mercado. Vamos começar este novo e emocionante capítulo de negociação quantitativa e melhorar suas habilidades de negociação e lucros.