O recurso está a ser carregado... Carregamento...

FMZ Mobile APP Trading Terminal, capacitando sua experiência quantitativa de negociação

Autora:FMZ~Lydia, Criado: 2023-10-30 11:57:31, Atualizado: 2024-11-10 18:51:41

img

No campo da negociação quantitativa, ferramentas quantitativas simples e fáceis de usar sempre foram uma das chaves para alcançar o crescimento da riqueza e a gestão de riscos. No entanto, com a crescente concorrência no mercado, as ferramentas de negociação tradicionais não são mais suficientes para atender às demandas do mercado em rápida mudança. Para manter uma vantagem competitiva para os comerciantes quantitativos no mundo dos ativos digitais em constante evolução, o FMZ Mobile App adicionou um novo recurso significativo: Terminal de negociação. Este recurso não só melhorará sua eficiência comercial, mas também o capacitará por meio de programas de plug-in personalizados para ajudar na negociação, injetando nova vitalidade em sua carreira de negociação.

Guia para iniciantes do terminal de negociação:

O que é o terminal de negociação da FMZ Mobile APP?

Na plataforma de negociação FMZ Quant, você pode baixar o FMZ Quant Mobile APP doPágina de download de aplicativo móvelApós baixar e instalar, abra o aplicativo móvel FMZ e faça login com sua conta FMZ.

img

Observe que o FMZ Quant está dividido emFMZ.COMsite internacional eFMZ.CNSite doméstico da China (suportando diferentes mercados). Ao fazer login, você precisa escolher o site correspondente. As contas para diferentes sites são independentes e não são intercambiáveis.

O terminal de negociação móvel APP da FMZ Quantitative Trading Platform é uma ferramenta de negociação quantitativa que encapsula APIs de principais exchanges.

Como aceder e habilitar a função do terminal de negociação?

Depois de entrar no FMZ Quant Mobile APP, você pode ver a função Trading Terminal na interface principal.

Antes da FMZ lançar seu terminal de negociação de aplicativos móveis, a versão web da FMZ já tinha lançado este recurso muito cedo.pelo menos um programa docker deve ser implantado- Não. Isso ocorre porque todas as solicitações reais enviadas para as exchanges são executadas a partir do docker, não no aplicativo móvel, o que é mais seguro.

img

Explicação pormenorizada da interface do terminal de negociação

Interface principal do terminal de negociação:

Depois de abrir o terminal de negociação, você pode ver a interface principal do terminal de negociação.

  • Docker: Todos os programas docker implantados sob a sua conta FMZ atual serão listados aqui para seleção.
  • Intercâmbio: Os objetos de intercâmbio (configurados com informações API KEY, etc.) criados na sua conta FMZ atual também aparecerão nas listas correspondentes para seleções de operações específicas.
  • Mercados: Configure o par de negociação ou contrato que este terminal de negociação irá operar.

img

2. Zona comercial:

A zona de negociação exibe dados de profundidade de mercado; Os widgets de negociação podem ser definidos com preço da ordem, quantidade da ordem, direção da ordem, alavancagem e outras configurações.

img

As guias inferiores da interface principal exibem informações como Orders, Assets, tornando seus fundos e ordens claros de uma olhada.

Gráfico de linhas K:

Se desejar ver o gráfico de linhas K ao fazer um pedido, foi implementado aqui um design cuidadoso - um widget de exibição dobrável que desdobra o mini gráfico de linhas K do produto atual.

img

Se você deseja visualizar o gráfico de linha K em uma área maior, exibir registros de transações de mercado, informações de profundidade e muito mais, você pode clicar neste ícone de linha K para ir para a página do gráfico de linha K profissional.

img

A interface profissional do gráfico de linhas K:

img

A interface profissional do gráfico de linhas K também pode ser exibida no modo paisagem:

img

Plugin de negociação

O que pode fazer um plugin de terminal de negociação?

  • Cálculo e exibição de dados de mercado em tempo real.
  • Colocação de pedidos e gestão de pedidos.
  • Implementar a gestão de riscos.
  • Estratégias de negociação auxiliares semi-automáticas.

Que linguagens de programação e ferramentas são usadas para desenvolver plugins?

  • píton
  • JavaScript
  • c++

O que é que consegues?

  • Compartilhe seu plugin com a comunidade para aprendizado mútuo com desenvolvedores.
  • Aprenda com outros desenvolvedores e inspire-se.
  • Interagir com outros entusiastas do comércio quantitativo.

Dê um exemplo baseado num cenário de aplicação da vida real:

Na comunidade FMZ, um usuário apresentou um pedido:

Use js para atravessar todas as moedas do contrato U da exchange Binance, e abra uma posição de 10u (longo) para cada moeda.

Este cenário de requisitos pode ser implementado com plugins de terminais de negociação, e executar estratégias de plugins no terminal de negociação é gratuito.

Vamos ver como conceber e implementar a solicitação do utilizador.

Primeiro, precisamos criar um plugin de terminal de negociação e adicionar três parâmetros à sua estratégia:

img

Então comece a escrever o programa de 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("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)
}

Após o plug-in do terminal de negociação ser escrito, ele pode ser testado:

No terminal de negociação do aplicativo móvel, clique no botão ... para abrir a lista de plugins de terminal de negociação.

img

Depois de concluir a operação no aplicativo móvel, usamos o seguinte código para consultar a posição do bot 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 
    }

    // View positions
    return pos.filter(item => Number(item.positionAmt) != 0)
}

Dados encontrados:

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

Pode-se ver que 6 posições foram abertas, isso porque, ao colocar ordens reais no bot de simulação, é fácil acionar os preços limite; Além disso, devido ao valor da ordem de 10U, é fácil acionar o limite mínimo do valor da ordem dos pares de negociação; portanto, alguns pares de negociação não foram ordenados com sucesso. Se você precisa usar isso na realidade, situações mais práticas devem ser consideradas para otimizar este plugin para melhor uso.

Outros interessantes plugins embutidos no FMZ

O terminal de negociação de aplicativos móveis da FMZ Quant Trading Platform tem muitos plugins interessantes.

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

O fim

O novo recurso de terminal de negociação do aplicativo móvel FMZ se tornará seu poderoso assistente no mercado de ativos digitais, permitindo que você responda de forma mais flexível às flutuações e oportunidades do mercado. Não mais limitado a estratégias de negociação tradicionais, através de programas de plug-in personalizados, você pode criar estratégias de negociação mais inteligentes e eficientes que são melhor adaptadas ao mercado.


Mais.