En el campo de la negociación cuantitativa, las herramientas de negociación cuantitativa simples y fáciles de usar siempre han sido una de las claves para lograr el crecimiento de la riqueza y la gestión de riesgos. Sin embargo, con la creciente competencia del mercado, las herramientas de negociación tradicionales ya no son suficientes para satisfacer las demandas del mercado que cambian rápidamente. Para mantener una ventaja competitiva para los comerciantes cuantitativos en el mundo de los activos digitales en constante evolución, FMZ Mobile App ha agregado una nueva característica significativa: Terminal de negociación. Esta característica no solo mejorará su eficiencia comercial, sino que también lo empoderará a través de programas de complemento personalizados para ayudar en la negociación, inyectando nueva vitalidad en su carrera comercial.
En la plataforma de comercio de FMZ Quant, puede descargar la aplicación móvil FMZ Quant desde elPágina de descarga de aplicaciones móvilesDespués de descargar e instalar, abra la aplicación móvil FMZ y inicie sesión con su cuenta FMZ.
Tenga en cuenta que FMZ Quant se divide enFMZ.COMsitio internacional yFMZ.CNChina sitio nacional (que admite diferentes mercados). Al iniciar sesión, debe elegir el sitio correspondiente. Las cuentas de los diferentes sitios son independientes y no intercambiables.
El terminal de comercio móvil APP de la Plataforma de Comercio Cuantitativo FMZ es una herramienta de comercio cuantitativo que encapsula las API de los principales intercambios. Permite cambiar rápidamente entre varios intercambios, y con la ayuda de varias características de la plataforma FMZ, puede realizar análisis de captura de datos, monitoreo de datos en tiempo real, comercio asistido por programa, operaciones comerciales semiautomáticas / manuales, etc.
Después de iniciar sesión en la aplicación móvil FMZ Quant, puede ver la función
Antes de que FMZ lanzara su terminal de negociación de APP móvil, la versión web de FMZ
Interfaz principal de la terminal de negociación:
Después de abrir la terminal de negociación, puede ver la interfaz principal de la terminal de negociación.
2. Zona de comercio:
La zona de negociación muestra los datos de profundidad de mercado; Los widgets de negociación se pueden configurar con el precio de la orden, la cantidad de la orden, la dirección de la orden, el apalancamiento y otros ajustes.
Las pestañas inferiores de la interfaz principal muestran información como
3. Diagrama de líneas K:
Si desea ver el gráfico de líneas K mientras realiza un pedido, se ha implementado un diseño reflexivo aquí: un widget de pantalla plegable que despliega el mini gráfico de líneas K del producto actual.
Si desea ver el gráfico de línea K en un área más grande, mostrar los registros de transacciones de mercado, información de profundidad y más, puede hacer clic en este icono de línea K para saltar a la página del gráfico de línea K profesional.
La interfaz de gráfico de línea K profesional:
La interfaz de gráfico profesional de línea K también se puede mostrar en el modo paisaje:
¿Qué puede hacer un complemento de terminal comercial?
¿Qué lenguajes de programación y herramientas se utilizan para desarrollar plugins?
¿Qué puedes conseguir?
En la comunidad FMZ, un usuario ha presentado una solicitud como esta:
Utilice js para recorrer todas las monedas de los contratos U del intercambio Binance, y abra una posición de 10u (largo) para cada moneda.
Este escenario de requerimiento se puede implementar con plugins de terminales de negociación en realidad, y ejecutar estrategias de plugins en el terminal de negociación es gratuito.
Veamos cómo diseñar e implementar la solicitud del usuario.
En primer lugar, necesitamos crear un complemento de terminal de comercio y añadir tres parámetros a su estrategia:
Entonces empieza a escribir el programa de complemento:
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)
}
Después de escribir el complemento de terminal de negociación, se puede probar:
En el terminal de negociación de la aplicación móvil, haga clic en el botón
Después de completar la operación en la APP móvil, usamos el siguiente código para consultar la posición del bot de simulación 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)
}
Los datos 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"
}]
Se puede ver que se han abierto 6 posiciones, esto se debe a que al colocar órdenes reales en el bot de simulación, es fácil activar los precios límite; además, debido al monto de la orden de 10U, es fácil activar el límite mínimo del monto de la orden de los pares comerciales; por lo tanto, algunos pares comerciales no se ordenaron con éxito. Si necesita usar esto en la realidad, se deben considerar situaciones más prácticas para optimizar este complemento para un mejor uso.
El terminal de operaciones de la aplicación móvil FMZ Quant Trading Platform tiene muchos complementos interesantes. Ven a explorar juntos!
https://www.fmz.com/upload/asset/16b436307a4ce5c246c2.mp4
La nueva función de terminal de trading de la aplicación móvil FMZ se convertirá en su poderoso asistente en el mercado de activos digitales, permitiéndole responder de manera más flexible a las fluctuaciones y oportunidades del mercado.