이 페이지에는 많은 흥미로운 전략이 있습니다 (https://www.fmz.com/square그 당시 대부분의 암호화폐 거래소 API 인터페이스는rest
많은 전략은rest
또한 거래소에서 코트 업데이트가 느린 경우도 있습니다.rest
인터페이스가 가까운 미래에 실패한 결과 전략이 제대로 작동하지 않습니다.
전략이 수정되는 한, 웹소켓 인터페이스에 대한 지원을 추가하는 것은 전략 코드에 몇 가지 변경을 요구하며, 이는 일반적으로 상당히 번거로울 수 있습니다 (전략을 변경하는 어려움은 다시 쓰는 것보다 훨씬 높습니다).
어떻게 전략 코드를 변경하지 않고 웹소켓 시장 코트 인터페이스를 사용할 수 있습니까?
여기 FMZ 퀀트 플랫폼의 모든 유연성이 있습니다.
전략
거래소 코팅을 위한 exchange.GetTicker
.
따라서, 전략 코드를 변경하지 않고,websocket
시장 인터페이스
코드 작성 언어는 자바스크립트 프로그래밍 언어를 사용합니다.
예를 들어, 우리가 고전적인 전략을 수정해야 할 때
전략 주소:https://www.fmz.com/strategy/9929
전략 코드를 살펴보고 전략이tick
시장 가격. 그것은 주로Buy
, Sell
, 그리고Last
에ticker
데이터ticker
FMZ Quant 플랫폼의 API 함수에서 데이터를 얻습니다.exchange.GetTicker
이제 목표가 명확해졌어요exchange.GetTicker
함수Hook
동작 (즉 다른 버전으로 대체)
그러나 우리는 그것을 "아이스브레이커" 전략 코드에서 다시 쓸 수 없습니다, 그것은 전략 논리에 영향을 미칠 것입니다, 우리는 웹 소켓에 원활한 도킹을 원합니다!
그래서 다음 주인공이 데뷔해야 합니다.
우리는
다음 2 매개 변수를 설정SeamlessConnWS
template.
이 둘은websocket
이 문서의 한계 때문에, 우리는 단지 preformhook
대행exchange.GetTicker
인터페이스. 따라서 우리는 매개 변수를 활성화해야 합니다.Hook_GetTicker
) 의GetTicker
인터페이스websocket
mode.
일단 템플릿이 생성되면, 우리는 교환websocket
템플릿에 인터페이스, 특정 인용구에 가입, 그리고 교환의 기능 코드를 데이터를 푸시하기 위해 기다립니다. 특정 코드는 여기에 설명되지 않습니다, 당신은 참조할 수 있습니다SeamlessConnWS
코드 (이미 오픈 소스) 및 FMZ Quant 공식 API 문서.init
템플릿에 있는 함수와 글로벌 변수_DictConnectCreater
, _ConnMap
:
코드 부분:
var _DictConnectCreater = {
"Huobi" : WSConnecter_Huobi,
"Binance" : WSConnecter_Binance,
}
var _ConnMap = {}
function init () {
if (IsUsedWebSocket) {
var connectCreater = null
if (exchanges.length != 1) {
Log("Switching to the ws interface only for the "exchange" exchange object (ie, the first added exchange object)")
}
var isFound = false
for (var name in _DictConnectCreater) {
if (exchange.GetName() == name) {
connectCreater = _DictConnectCreater[name]
isFound = true
}
}
if (!isFound) {
throw "Did not find an implementation"
}
if (Hook_GetTicker) {
var symbol = exchange.GetCurrency()
_ConnMap.GetTicker = connectCreater("GetTicker", symbol)
exchange.GetTicker = function () {
return _C(_ConnMap.GetTicker.Read)
}
}
// ...
}
}
이 템플릿은websocket
두 거래소의 시장 인터페이스, 즉 Binance와 Huobi.init
SeamlessConnWS
템플릿init
실제 시장 실행 진행 중에 먼저 실행됩니다.
우리는 그 내용을 대체 할 수 있습니다exchange.GetTicker
함수와 함께websocket
인터페이스, 따라서 웹 소켓 시장에 원활한 도킹을 달성.
SeamlessConnWS
템플릿 주소https://www.fmz.com/strategy/167755
케이크 한 조각!SeamlessConnWS
템플릿을 확인하고 저장 버튼을 클릭하세요.
제어 매개 변수를 열기SeamlessConnWS
template.
실행해:
푸시드 데이터를 쉽게 볼 수 있도록 157호선에는 프린트 로그 코드를 추가했습니다. 이는 교환에서 푸시드 데이터를 출력합니다.
로봇 로그에 표시:
이 방법으로, 우리는 전략 코드의 어떤 라인도 수정할 필요가 없습니다,websocket
시장 인터페이스
이 예제는 단지exchange.GetTicker
시장 인터페이스 기능, 다른 시장 인터페이스exchange.GetDepth
, exchange.GetTrades
그리고exchange.GetRecords
같은 루틴입니다! 표준 템플릿을 위해SeamlessConnWS
, 당신은 그것을 더 확장 시도할 수 있습니다.
특별 연결을 구현하기 위해websocket
템플릿에서Dial
기능 (디얼 기능에 대한 API 문서를 참조), 필요에 따라 조정할 수 있습니다. 예를 들어, 당신은 파라미터 -2를 지정 할 수 있습니다read()
이 함수는 버퍼의 최신 데이터만 반환합니다.websocket
연결이 허용됩니다.
읽어주셔서 감사합니다