양적 거래 분야에서 단순하고 사용하기 쉬운 양적 거래 도구는 항상 부 성장과 위험 관리의 열쇠 중 하나입니다. 그러나 시장 경쟁이 증가함에 따라 전통적인 거래 도구는 빠르게 변화하는 시장 수요를 충족하기에 더 이상 충분하지 않습니다. 끊임없이 진화하는 디지털 자산 세계에서 양적 거래자에게 경쟁 우위를 유지하기 위해 FMZ 모바일 앱은 중요한 새로운 기능을 추가했습니다. 거래 터미널.이 기능은 거래 효율성을 향상시킬뿐만 아니라 사용자 지정 플러그인 프로그램을 통해 거래에 도움을 줄 수 있으며 거래 경력에 새로운 활력을 주입합니다.
FMZ 양자 거래 플랫폼에서 FMZ 양자 모바일 APP를 다운로드 할 수 있습니다모바일 앱 다운로드 페이지다운로드 및 설치 후, FMZ 모바일 앱을 열고 FMZ 계정으로 로그인합니다.
참고로 FMZ Quant는FMZ.COM국제 사이트 및FMZ.CN중국 국내 사이트 (다양한 시장을 지원합니다). 로그인 할 때 해당 사이트를 선택해야합니다. 다른 사이트의 계정은 독립적이며 교환되지 않습니다.
FMZ 양적 거래 플랫폼 모바일 APP 거래 단말기는 주요 거래소에서 API를 캡슐화하는 양적 거래 도구입니다. 다양한 거래소 간의 빠른 전환을 허용하며 FMZ 플랫폼의 다양한 기능의 도움으로 데이터 캡처 분석, 실시간 데이터 모니터링, 프로그램 지원 거래, 반 자동 / 수동 거래 작업 등을 수행 할 수 있습니다.
FMZ 퀀트 모바일 APP에 로그인 한 후, 주요 인터페이스에서
FMZ가 모바일 APP 거래 단말기를 출시하기 전에 FMZ의 웹 버전은 이미 이 기능을 상당히 일찍 출시했습니다. 웹 기반 거래 단말기 또는 모바일 APP 기반 단말기일지라도,적어도 한 개의 도커 프로그램이 배포되어야 합니다.... 이는 거래소에 전송되는 모든 실제 요청이 모바일 앱에서 아닌 도커에서 실행되기 때문에 더 안전합니다. 또한 API KEY 구속 IP 주소와 모바일 IP가 변경되면 사용할 수 없다는 단점도 피합니다.
거래 터미널의 주요 인터페이스:
트레이딩 터미널을 열면 트레이딩 터미널의 메인 인터페이스를 볼 수 있습니다. 빨간색 프레임의 영역을 클릭하면
2. 무역 구역:
거래 구역은 시장 깊이 데이터를 표시합니다. 거래 위젯은 주문 가격, 주문 양, 주문 방향, 레버리지 및 기타 설정으로 설정할 수 있습니다.
메인 인터페이스의 하단 탭은
3. K-라인 차트:
주문을 할 때 K 라인 차트를 보고 싶다면, 현 제품 소형 K 라인 차트를 펼치는 접이 가능한 디스플레이 위젯을 통해 신중한 디자인이 구현되었습니다.
더 넓은 영역에서 K-라인 차트를 보고, 시장 거래 기록, 깊이 정보 및 더 많은 것을 표시하고 싶다면 이 K-라인 아이콘을 클릭하여 전문 K-라인 차트 페이지로 이동할 수 있습니다.
프로 K-라인 차트 인터페이스:
프로 K-라인 차트 인터페이스는 또한 풍경 모드에서 표시 될 수 있습니다:
트레이딩 터미널 플러그인이 무엇을 할 수 있을까요?
플러그인을 개발하는 데 어떤 프로그래밍 언어와 도구가 사용됩니까?
뭐 가져갈 수 있어?
FMZ 커뮤니티에서 한 사용자가 다음과 같은 요청을 했습니다.
js를 사용하여 바이낸스 거래소의 모든 U 계약 화폐를 통과하고 각 화폐에 대해 10u (장) 의 포지션을 열십시오. 이 코드는 어떻게 작성됩니까?
이 요구 시나리오는 실제로 거래 단말기 플러그인을 통해 구현될 수 있으며, 거래 단말기에 플러그인 전략을 실행하는 것은 무료입니다. 장기적인 라이브 거래 전략에 비해, 거래 단말기 플러그인을 보조로 사용하는 것은 의심할 여지없이 좋은 선택입니다.
이제 사용자 요청을 설계하고 구현하는 방법을 알아보겠습니다.
첫째, 우리는 거래 단말기 플러그인을 만들고 전략에 세 가지 매개 변수를 추가해야합니다:
다음 플러그인 프로그램을 작성하기 시작:
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 모바일 앱의 새로운 거래 단말기 기능은 디지털 자산 시장에서 강력한 보조자가 될 것이며, 시장 변동과 기회에 더 유연하게 대응할 수 있습니다. 더 이상 전통적인 거래 전략에만 국한되지 않고 사용자 지정 플러그인 프로그램을 통해 시장에 더 잘 적응하는 더 똑똑하고 효율적인 거래 전략을 만들 수 있습니다. 함께 양적 거래의 이 흥미로운 새로운 장을 시작하고 거래 기술과 수익을 향상시킵니다.