[TOC]

В сфере количественной торговли простые и удобные в использовании инструменты количественной торговли всегда были одним из ключей к достижению роста благосостояния и управлению рисками. Однако по мере того, как конкуренция на рынке становится все более жесткой, традиционных торговых инструментов уже недостаточно для удовлетворения быстро меняющихся потребностей рынка. Чтобы трейдеры, занимающиеся количественным трейдингом, могли сохранить свое конкурентное преимущество в этом развивающемся мире цифровых активов, в мобильное приложение FMZ была добавлена новая важная функция: торговый терминал. Эта функция не только повысит эффективность вашей торговли, но и позволит вам использовать пользовательские плагины для помощи в торговле, привнося новую энергию в вашу торговую карьеру.
На количественной торговой платформе FMZ,Страница загрузки мобильного приложенияВы можете загрузить количественное мобильное приложение FMZ. После загрузки и установки откройте мобильное приложение FMZ и войдите в свою учетную запись FMZ.

Следует отметить, что FMZ Quant разделен на международный сайт FMZ.COM и внутренний сайт FMZ.CN (поддерживающий разные рынки). При входе в систему необходимо выбрать соответствующий сайт. Разные учетные записи сайта независимы и не универсальны.
Мобильное приложение-терминал количественной торговой платформы FMZ — это инструмент количественной торговли, который инкапсулирует и централизует API основных бирж. Он может быстро переключаться между различными биржами и, используя различные функции платформы FMZ, может осуществлять сбор и анализ данных, мониторинг данных в реальном времени, программную вспомогательную торговлю, полуавтоматическую и ручную торговлю и другие операции.
После входа в FMZ Quantitative Mobile APP вы увидите функцию «Торговый терминал» на главном интерфейсе. Нажмите на нее, чтобы войти в интерфейс торгового терминала.
До того, как FMZ запустил мобильный торговый терминал APP, веб-терминал FMZ уже запустил функцию торгового терминала. Как веб-торговый терминал, так и мобильный торговый терминал APP должны бытьРазверните хотя бы одно приложение хостера。 Поскольку все фактические запросы на взаимодействие, отправляемые на биржу, выполняются кастодианом, а не в мобильном приложении, это безопаснее. Это также позволяет избежать проблем, связанных с привязкой API KEY к IP-адресу и невозможностью его использования в случае изменения IP-адреса мобильного телефона.

1. Основной интерфейс торгового терминала:
После открытия торгового терминала вы увидите основной интерфейс торгового терминала. Щелкните область красного поля, чтобы открыть интерфейсы конфигурации «Custodian», «Exchange» и «Trading Pair».

2. Торговая площадь:
В торговой зоне отображаются данные о глубине рынка; С помощью торговых элементов можно задать цену ордера, объем ордера, направление ордера, кредитное плечо и другие параметры.

Метки в нижней части основного интерфейса отображают такую информацию, как «Ордера», «Позиции» и «Активы», что позволяет вам быстро просматривать свои средства, позиции и ордера.
3. График K-линии:
Если вы хотите взглянуть на график японских свечей при размещении заказа, здесь предусмотрен удобный элемент управления складным дисплеем, позволяющий развернуть мини-график японских свечей текущего продукта.

Если вам нужна большая область для отображения графика K-line, показывающая записи рыночных транзакций, глубину и другую информацию, вы можете нажать на этот значок K-line, чтобы перейти на профессиональную страницу графика K-line.

Профессиональный интерфейс графика K-line:

Профессиональный интерфейс графика K-line также может отображаться горизонтально:

Что может плагин торгового терминала?
Какие языки программирования и инструменты используются для разработки плагинов?
Что я могу получить?
В сообществе FMZ пользователи выдвинули такое требование:
Используйте js для обхода всех валют контрактов U на бирже Binance и откройте позицию 10u (длинную) для каждой валюты. Как написать этот код?
Этот сценарий спроса может быть полностью реализован с помощью плагина торгового терминала, а торговый терминал бесплатен для запуска стратегий плагина. По сравнению с долгосрочной стратегией в реальном времени, торговля с помощью плагина торгового терминала, несомненно, хороший выбор.
Давайте посмотрим, как спроектировать и реализовать это требование пользователей.
Для начала необходимо создать плагин торгового терминала и добавить в стратегию плагина 3 параметра:

Затем приступаем к написанию плагина:
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)
}
После того, как плагин торгового терминала написан, его можно протестировать:
В торговом терминале мобильного приложения нажмите кнопку «…», чтобы открыть список плагинов торгового терминала. Все плагины торгового терминала в текущей библиотеке стратегий счета FMZ будут отображены в этом списке, и вы можете выберите их для использования.

После завершения операции в мобильном приложении мы используем следующий код для запроса активов на диске моделирования 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)
}
Запрос данных:
[{
"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"
}]
Вы видите, что открыто 6 позиций. Это потому, что при размещении ордера легко сработать по предельной цене, так как это смоделированный ордер. Кроме того, поскольку ордер составляет 10U, легко сработать по минимальной сумме ордера лимит торговой пары. Таким образом, есть несколько ордеров, не размещенных успешно для торговых пар. Если фактическое использование требует рассмотрения более практических ситуаций, этот плагин может быть оптимизирован для лучшего использования. Этот код используется только для обучения общению.
В мобильном торговом терминале количественной торговой платформы FMZ есть много интересных плагинов, приходите и исследуйте вместе!
/upload/asset/16b436307a4ce5c246c2.mp4
Новая функция торгового терминала мобильного приложения FMZ станет вашей правой рукой на рынке цифровых активов, позволяя более гибко реагировать на колебания рынка и возможности. Больше не ограничиваясь традиционными торговыми стратегиями: с помощью пользовательских плагинов вы можете создавать более интеллектуальные, эффективные и легко адаптируемые к рынку торговые стратегии. Давайте начнем эту захватывающую новую главу количественной торговли и улучшим ваши торговые навыки и прибыль.