[TOC]

定量取引の分野では、シンプルで使いやすい定量取引ツールが、常に富の増加とリスク管理を実現するための鍵の 1 つとなっています。しかし、市場競争がますます激しくなるにつれ、従来の取引ツールでは急速に変化する市場の需要に対応することができなくなっています。進化を続けるデジタル資産の世界で定量トレーダーが競争上の優位性を維持できるよう、FMZ モバイル アプリに新しい主要機能であるトレーディング ターミナルが追加されました。この機能により、取引の効率が向上するだけでなく、カスタム プラグインを使用して取引を支援できるようになり、取引キャリアに新たな活力が注入されます。
FMZ定量取引プラットフォームでは、モバイルアプリのダウンロードページFMZ定量モバイルアプリをダウンロードできます。ダウンロードしてインストールしたら、FMZ モバイル アプリを開き、FMZ アカウントにログインします。

FMZ Quant は、FMZ.COM 国際サイトと FMZ.CN 国内サイト (異なる市場をサポート) に分かれていることに注意してください。ログインするときに、対応するサイトを選択する必要があります。異なるサイトのアカウントは独立しており、汎用的ではありません。
FMZ 定量取引プラットフォームのモバイル APP 取引端末は、主要な取引所の API をカプセル化して一元化する定量取引ツールです。さまざまな取引所間を素早く切り替えることができ、FMZ プラットフォームのさまざまな機能を利用して、データのキャプチャと分析、リアルタイムのデータ監視、プログラム支援取引、半自動および手動取引などの操作を実現できます。
FMZ Quantitative モバイル アプリにログインすると、メイン インターフェイスに「取引ターミナル」機能が表示されます。それをクリックすると、取引ターミナル インターフェイスに入ります。
FMZがモバイルアプリ取引端末をリリースする前に、FMZウェブ端末はすでに取引端末機能を開始していました。ウェブベースの取引端末とモバイルアプリベースの取引端末の両方が必要です。少なくとも1つのホストアプリケーションをデプロイする。 取引所に送信される実際のやり取りのリクエストはすべて、モバイル アプリではなくカストディアンから実行されるため、より安全です。また、API KEY が IP アドレスにバインドされ、携帯電話の IP が変更された場合に使用できなくなるという問題点も回避できます。

1. 取引端末のメインインターフェース:
取引端末を開くと、取引端末のメインインターフェースが表示されます。赤いボックス領域をクリックすると、「カストディアン」、「取引所」、「取引ペア」の設定インターフェースが開きます。

2. 取引エリア:
取引エリアには市場の深さデータが表示されます。 取引コントロールでは、注文価格、注文数量、注文方向、レバレッジなどの設定を設定できます。

メインインターフェースの下部にあるラベルには、「注文」、「ポジション」、「資産」などの情報が表示され、資金、ポジション、注文を一目で確認できます。
3. Kラインチャート:
注文時にローソク足チャートを確認したい場合は、現在の製品のミニローソク足チャートを拡張するためにここで設計された配慮のある折りたたみ表示コントロールがあります。

市場取引記録、深度、その他の情報を表示する K ライン チャートをより広い領域に表示したい場合は、この K ライン アイコンをクリックして、プロフェッショナルな K ライン チャート ページに移動できます。

プロフェッショナルなKラインチャートインターフェース:

プロフェッショナルな K ライン チャートのインターフェイスは、水平方向に表示することもできます。

取引端末プラグインは何ができますか?
プラグインの開発にはどのようなプログラミング言語とツールが使用されますか?
何が手に入りますか?
FMZ コミュニティでは、ユーザーから次のような要求が出されています。
js を使用して、Binance Exchange のすべての U 契約通貨を横断し、各通貨に対して 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 定量取引プラットフォームのモバイル APP 取引端末には興味深いプラグインがたくさんあります。ぜひ一緒に探索してください。
/upload/asset/16b436307a4ce5c246c2.mp4
FMZ モバイル アプリの新しい取引端末機能は、デジタル資産市場におけるあなたの右腕となり、市場の変動や機会に、より柔軟に対応できるようになります。従来の取引戦略に限定されず、カスタム プラグインを使用すると、よりスマートで効率的、かつ市場に適応しやすい取引戦略を作成できます。定量取引のこのエキサイティングな新しい章を始めて、取引スキルと利益を向上させましょう。