손잡이 손잡이 어떻게 오래된 전략으로 웹소켓 시장에 무선 연결 인터페이스를 제공하는 방법을 알려줍니다

저자:작은 꿈, 2019-09-26 15:47:53, 업데이트: 2023-10-18 19:54:36

img

손잡이 손잡이 어떻게 오래된 전략으로 웹소켓 시장에 무선 연결 인터페이스를 제공하는 방법을 알려줍니다

이 모든 것은전략 광장그리고 그 때 디지털 화폐 거래소가 주로 사용되었던 많은 흥미로운 전략들이 있습니다.rest많은 전략은rest또한, 최근에는 몇몇 거래소들도 등장하고 있습니다.rest인터페이스 장애로 인해 정책이 사용할 수 없는 경우. 정책 변경에 따라websocket인터페이스 지원은 정책 코드에 약간의 변경을 요구하며 일반적으로 더 번거로울 수 있습니다. (정책 변경의 난이도는 다시 쓰는 것보다 훨씬 높습니다.) 어떻게 전략을 바꾸지 않고 사용할 수 있을까요?websocket그리고 어떤 인터페이스가 있을까요? 이것은 발명가의 양적 거래 플랫폼의 강력한 유연성을 잘 보여줍니다.

  • 1, "템플릿 클래스 라이브러리" 정책을 사용하십시오.
  • 2 입니다.exchange.GetTicker하우크는 함수와 함수들의 수를 계산합니다.

이 방법은, 하나의 줄의 코드를 변경하지 않고,websocket이 경우, 데이터 드라이버가 작동합니다. 코드 작성 언어 사용JavaScript언어는

분석 전략

예를 들어, 우리는 "아이스브레이커"라는 고전적인 전략을 바꾸려고 합니다.

전략적 주소

먼저 전략 코드를 살펴보면, 이 전략은 틱 시장에 의해 주도되고, 주로ticker데이터에서BuySellLast이 두 가지 특징은tickerFMZ 플랫폼의 API 함수:exchange.GetTicker그리고 우리는 이 모든 것을 가지고 있습니다. 우리는 이 모든 것을 가지고 있습니다.exchange.GetTicker함수Hook다른 버전으로 다시 쓸 수 있습니다. 그러나 우리는 얼음 깰 전략에 대해 다시 쓸 수 없습니다. 그것은 전략에 영향을 미칠 것입니다. 우리는 없는 연결을 원합니다! 그래서 다음 주인공이 출연해야 합니다.

템플릿 라이브러리 기능과init함수의 협조

우리는 "템플릿 클래스 라이브러리"를 만들었습니다.매듭 없는 CONWS, 공백 초기 코드.

img

그 다음매듭 없는 CONWS템플릿 2개 매개 변수를 설정합니다

  • IsUsedWebSocket
  • Hook_GetTicker@IsUsedWebSocket

img

사용 여부를 제어합니다.websocket인터페이스 기능, 특정 산업 인터페이스가 열리는 것을 지정하는 제어.exchange.GetTicker인터페이스는 hook 동작을 합니다. 그래서 매개 변수로는 열기만 합니다.GetTicker인터페이스는 웹소켓 모드의 제어 매개 변수: Hook_GetTicker.

템플릿이 만들어지면, 템플릿에 특정 거래소를 입력할 수 있습니다.websocket인터페이스, 특정 산업에 가입하고 거래소가 데이터를 밀어내는 것을 기다리는 이러한 기능 코드는 없습니다. 구체적인 코드는 더 이상 설명되지 않습니다. SeamlessConnWS 코드 (공개되었습니다) 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("切换为ws接口只针对 exchange 交易所对象(即第一个添加的交易所对象)")
        }
        var isFound = false 
        for (var name in _DictConnectCreater) {
            if (exchange.GetName() == name) {
                connectCreater = _DictConnectCreater[name]
                isFound = true
            }
        }

        if (!isFound) {
            throw "没有找到实现"
        }
        
        if (Hook_GetTicker) {
            var symbol = exchange.GetCurrency()
            _ConnMap.GetTicker = connectCreater("GetTicker", symbol)
            exchange.GetTicker = function () {
                return _C(_ConnMap.GetTicker.Read)
            }
        }
        // ... 
        
    }
}

이 템플릿은 단지 두 개의 거래소를 구현하는 것을 볼 수 있습니다websocket이 지표는 동전 현금, 토큰 현금 등의 거래 인터페이스입니다.init이 함수는 "아이스브레이커"라는 전략에서 인용할 수 있는 것입니다.매듭 없는 CONWS템플릿 다음, 실제 디스크가 실행되면 먼저 실행됩니다.init이 함수들은 자동으로exchange.GetTicker함수 컨텐츠를 사용으로 교체합니다websocket인터페이스의 코드 구현, 이를 통해 원활한 연결을 구현websocket

SeamlessConnWS 템플릿 주소

어떻게 활용할 수 있을까요?

아주 간단합니다.매듭 없는 CONWS템플릿이 자신의 정책 리포터에 복사된 후, "아이스브레이커" 전략 참조에만 사용할 수 있습니다.

img

이 문서는 다른 문장과 비교하여 매우 간단합니다.

"아이스 브레이커" 전략, 실제 로봇, 거래소가 바이안을 선택imgᅳ 시작매듭 없는 CONWS템플릿의 제어 파라미터.img

img

이 자료를 쉽게 볼 수 있도록, 저는 157줄의 코드와 함께 인쇄용 로그를 추가하여 거래소에서 전송된 자료를 출력했습니다.img

로봇 로그에 표시된 것:img

이 방법은 하나의 정책 코드 라인을 수정하지 않고 웹소켓 시장 인터페이스와 정책 원활한 연계를 구현합니다.

이 경우는 단지exchange.GetTicker벡터 인터페이스 함수의 전략에 대한 설명, 다른 벡터 인터페이스에 대한 설명exchange.GetDepthexchange.GetTradesexchange.GetRecords예를 들어, 예를 들어, 예를 들어, 예를 들어,매듭 없는 CONWS이 글은 이보다 더 많은 글을 올릴 수 있습니다.

템플릿의 특정 링크websocket이 프로젝트의 실행, 사용Dial함수 ((API 문서 다이얼 함수 참조), 필요에 따라 조정할 수 있습니다. 예를 들어,read()함수 지정 변수-2다시 돌아오는 것websocket연결된 데이터 수신자 버퍼 영역에서 최신 데이터를 얻습니다.

감사합니다.


관련

더 많은

콩콩009코, 파이썬 버전 좀 더 좀 해주시겠어요?

신부도 마찬가지입니다.좋은 것, 일찍 공유해야지.

작은 꿈좋은 것, 추천 감사합니다.