定量取引の分野では,シンプルで使いやすい定量取引ツールは,常に富の成長とリスク管理を達成するための鍵の一つとなっています.しかし,市場の競争が激化するにつれて,伝統的な取引ツールは急速に変化する市場の需要を満たすのにもはや十分ではありません. 絶えず進化するデジタル資産の世界で定量トレーダーの競争優位性を維持するために,FMZモバイルアプリは,重要な新しい機能"トレードターミナル"を追加しました.この機能は,あなたの取引効率を向上させるだけでなく,カスタムプラグインプログラムを通じて,取引を支援し,あなたの取引キャリアに新しい活力を注入します.
FMZ Quant トレーディング プラットフォームでは, FMZ Quant モバイル APP をモバイルアプリのダウンロードページダウンロードしてインストールした後 FMZモバイルアプリを開いて FMZ アカウントでログインします
FMZ Quant は 2 つに分かれていますFMZ.COM国際サイトとFMZ.CN中国国内サイト (異なる市場をサポートする).ログインする際には,対応するサイトを選択する必要があります.異なるサイトのアカウントは独立しており,互換性はありません.
FMZ定量取引プラットフォームモバイルAPP取引端末は,主要取引所のAPIをカプセル化した定量取引ツールである.さまざまな取引所の間で迅速に切り替えることを可能にし,FMZプラットフォームのさまざまな機能の助けにより,データキャプチャ分析,リアルタイムデータモニタリング,プログラム支援取引,半自動/手動取引業務などを行うことができます.
FMZ Quant モバイル APP にログインした後,メインインターフェースに"取引端末"の機能が表示されます.
FMZがモバイルAPP取引端末を立ち上げる前には,FMZのWeb版はかなり早くこの機能を立ち上げていた.Webベースの取引端末であれ,モバイルAPPベースの端末であれ,少なくとも 1 つのドッカープログラムが展開されなければならない.- わかった これは,取引所に送信されるすべての実際のリクエストが,モバイルアプリではなく,ドッカーから実行されるため,より安全である.また,API KEY 拘束 IP アドレスやモバイル IP 変更時に使用できないようなデメリットも回避する.
1. トレーディング・ターミナルのメインインターフェース:
トレーディング・ターミナルを開いた後,トレーディング・ターミナルのメインインターフェイスが表示されます.赤色フレームのエリアをクリックすると,
2. 貿易地域:
トレーディングゾーンでは市場深度データを表示します. 取引ウィジェットは,注文価格,注文量,注文方向,レバレッジ,その他の設定で設定できます.
メインインターフェイスの下部タブでは,
3.K線グラフ:
注文の際にK線チャートを表示したい場合は, 慎重に設計された - 折りたたむディスプレイウィジェットで, 現在の製品のミニK線チャートを展開します.
市場取引記録,深層情報,その他を表示したい場合は,このK線アイコンをクリックしてプロのK線チャートページにジャンプできます.
プロのK線チャートインターフェース:
プロのK線チャートインターフェースは,また,景観モードでも表示できます:
取引端末のプラグインは何ができるのか?
プラグインの開発にはどのプログラミング言語とツールが使用されていますか?
何をもらえるの?
FMZコミュニティでは,ユーザがこんな要求を提出しています:
js を使って,Binance 取引所のすべての U 契約通貨を横断し,各通貨に対して 10u (long) のポジションを開きます.このコードはどのように書きますか?
この要件シナリオは実際に取引端末プラグインで実装され,取引端末でプラグイン戦略を実行することは無料です.長期間のライブ取引戦略と比較して,取引端末プラグインを補助として使用することは間違いなく良い選択です.
ユーザのリクエストの設計と実装方法を見てみましょう.
戦略に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("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)
}
トレーディング・ターミナル・プラグインが書き上げられた後,テストできます.
モバイルAPPのトレードターミナルで,トレードターミナルプラグインのリストを開くために
モバイルAPPで操作を完了した後,次のコードを使用して,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)
}
データが見つかりました:
[{
"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量子取引プラットフォームのモバイルアプリ取引端末には多くの興味深いプラグインがあります. 一緒に探索してください!
https://www.fmz.com/upload/asset/16b436307a4ce5c246c2.mp4
FMZモバイルアプリの新しい取引端末機能は,デジタル資産市場であなたの強力なアシスタントとなり,市場変動と機会により柔軟に反応することを可能にします.もはや伝統的な取引戦略に限定されず,カスタムプラグインプログラムを通じて,市場により適したスマートで効率的な取引戦略を作成できます.一緒に定量取引のこのエキサイティングな新しい章を開始し,あなたの取引スキルと利益を向上させましょう.