초보자용 암호화폐 양적 거래 - 암호화폐 양적 거래에 더 가까워지도록 (4)

저자:리디아, 창작: 2022-07-29 16:32:47, 업데이트: 2023-09-21 21:05:29

img

초보자용 암호화폐 양적 거래 - 암호화폐 양적 거래에 더 가까워지도록 (4)

이전 기사에서는 많은 암호화폐, 프로그래밍 및 양적 거래의 기본 개념을 배웠습니다. 마지막으로 주제로 이동하여 전략 자체에 대해 이야기 할 수 있습니다. 이 기사에서는 간단한 전략을 함께 구현하는 법을 배우겠습니다. 그리드 전략에 대해, 양적 거래를 한 사람이 그것을 들어야합니다, 하지만 당신이하지 않았다면 중요하지 않습니다.거래소자사의 프로그램 및 양적 거래 기능을 시작했으며 가장 쉽고 사용하기 쉬운 전략은네트워크 전략하지만 각 거래소에서 제공하는 그리드 전략 기능과 세부 사항은 다릅니다. 우리는 암호화폐 양적 거래로 전환할 계획이기 때문에, 왜 우리 스스로 그리드 전략을 구현하지 않겠습니까?

이 때, 누군가가 이렇게 말할 수도 있습니다. 난 코드를 쓸 수 없어! 코드를 보면 두통이 났어요!

그것은 사실입니다. 그것은 컴퓨터 소프트웨어에 주요하지 않은 사람이나 프로그래밍 작업에 참여하지 않은 사람이 스스로 완전한 거래 전략을 개발하는 것이 매우 어렵습니다. 왜냐하면 교환 인터페이스를 도킹하는 시작부터 일련의 사전 작업을 수행해야하기 때문입니다. (아마도 당신의 거래 논리 프로그램은 100 줄 만이지만, 다른 코딩 작업은 꽤 많이 수행되어야하며, 거래 논리를 작성하는 것보다 더 어렵습니다.)

이 때, 당신이 손쉽게 도구를 가지고 있다면, 그것은 매우 간단합니다, 적어도 난이도가 70% 감소합니다. 당신은 단지 거래 논리를 작성하면 얼마나 편리하고 빠르는지 상상할 수 있습니다. 다른 모든 교환 인터페이스 연결, 서명 검증, 구성 파일, 운영 환경 구축, UI 인터페이스 작성, 대화형 작성 등이 모두 준비되어 있습니다.

믿지 않나요? 한번 해보자!

간단한 스팟 그리드 전략을 실행

우리가 사용하는 도구는: FMZ 양자 거래 플랫폼 (FMZ.COM). 그리드 전략 설계의 핵심은 실제로 그리드 구매 및 판매의 논리입니다. 그래서 이것은 전략을 설계하기 전에 명확히 해야 할 것입니다. 우리의 목표는 전략 디자인을 간단하고 이해하기 쉽도록 만드는 것입니다. 따라서 매개 변수가 적고 논리가 단순하면 더 좋습니다.

다음은 전략 설계의 기본 흐름입니다.

    1. 전략적 필요에 대한 요약

    간단히 말해서, 그것은 당신의 전략이 무엇을, 어떻게, 그리고 어떤 기능을 수행할 것인가입니다. 이 정보는 전략 코드를 작성하기 전에 문서 (노트북 또는 그 어떤 것) 에 작성될 수 있습니다. FMZ에서 전략을 개발하는 것은 매우 간단합니다. 플랫폼은 이러한 요구 사항에 대한 솔루션을 준비했습니다. 그리고 저는 이러한 요구 사항을 노트북에 작성할 필요가 없습니다. 전략 메모에 직접 전략 요구 사항을 작성합니다.

    img

    끝낸 후에 전략을 저장하는 것을 기억하고, 그리고 우리는 전략 요구 사항을 작성할 것입니다 (전략 요구 사항은 정적이 아니며 개발 중에 기록하는 것도 가능합니다).

    • 이 전략은 거래 쌍과 함께 스팟 거래 전략으로 설계되었습니다.XXX_USDT, 예를 들어BTC_USDT.
    • 그리드는 균등하게 떨어져있도록 설계되어 있습니다. 그 말은 단순히 그리드의 두 인접한 점 사이의 거리는 고정된 거리가 된다는 뜻입니다.
    • 그리드는 무한대로 확장될 수 있는 무한한 그리드로 설계되었습니다.
    • 주문을 하기 위해 시장 주문을 사용
    1. 그리드 데이터 구조를 구성합니다:

    명확하지 않은 아이디어에 대해서는 처음부터 그림을 그리고 분석할 수 있습니다.

    img

    그리드는 기본점으로서의 시작 가격에서 위와 아래 두 방향으로 구성될 수 있다. 그리드는 계층별 구매선과 판매선이다. 그래프를 살펴보면 각 계선에는 두 가지 가능성이 있음을 알 수 있다.

    1. 가격은 SMA를 넘었습니다.
    2. 가격은 SMA 밑으로 넘어갔습니다. 가격이 SMA를 넘을 때, 그것은 가격이 상승하고 판매가 필요하다는 것을 의미합니다. 그리고 가격이 하락하고 이익을 얻기 위해 구매를 기다립니다. 가격이 SMA 아래로 넘어가면 가격이 하락한다는 것을 의미합니다. 당신은 그것을 사야 합니다. 그리고 가격이 상승할 때까지 기다리고 수익을 내기 위해 팔아야 합니다. 그래서 각 그리드 라인은 거래의 두 가지 방법이 있습니다: 구매 및 판매. 그리고 각 그리드 라인은 고유한 특성을 가지고 있습니다. 이 라인이 표시하는 가격입니다. 예를 들어 차트에서 A/B/C/D의 표현입니다. 전략을 세울 때,뭐야?우리가 먼저 하고 싶은 것이 있고, 그 다음에는 쉽게 할 수 있습니다.

    그리드 데이터 구조를 구성하는 함수를 쓰세요:

    function createNet(begin, diff) {   // begin, diff are parameters, begin is the initial price, diff is the grid spacing (the spacing of the equal difference grid is the price)
        var oneSideNums = 10            // The grid generates 10 bars on the upward and downward sides. The above chart is a side of the generation of 2 bars (AB side, CD side) and the generation of 10 bars, you can imagine them by yourself.
        var up = []                     // Used to store the upward "grid line" data structure
        var down = []                   // Used to store the downward "grid line" data structure
        for (var i = 0 ; i < oneSideNums ; i++) {    // Determine the number of times according to the size of oneSideNums, and construct the "grid line" data structure cyclically
            var upObj = {                            // Construct an upward "gridline" data structure
                buy : false,                         // Buy marker, initial marker is false, meaning no buy
                sell : false,                        // Sell marker ...
                price : begin + diff / 2 + i * diff, // The price level represented by this "grid line" can be observed according to the cycle, and the price level is rising in turn.
            }
            up.push(upObj)                           // The constructed "gridline" data structure is placed into the up array
    
            var j = (oneSideNums - 1) - i            // The change in j during the loop is: 9 ~ 0
            var downObj = {
                buy : false,
                sell : false,
                price : begin - diff / 2 - j * diff,
            }
            if (downObj.price <= 0) {                // The price cannot be less than or equal to 0 
                continue
            }
            down.push(downObj)                       // The constructed "gridline" data structure is placed in down array
        }    
    
        return down.concat(up)                       // Add up after down to form a grid array structure with grid line prices from small to large
    }
    

    이 함수를 별도로 실행하면 효과를 볼 수 있습니다. [Debugging Tools] 또는 FMZ에서 [Backtesting System]는 이 작은 코드를 디버깅하는 데 매우 편리합니다.

    img

    생성된 데이터는 관찰할 수 있습니다.

    [
        {"buy":false,"sell":false,"price":5},
        {"buy":false,"sell":false,"price":15},
        {"buy":false,"sell":false,"price":25},
        {"buy":false,"sell":false,"price":35},
        {"buy":false,"sell":false,"price":45},
        {"buy":false,"sell":false,"price":55},
        {"buy":false,"sell":false,"price":65},
        {"buy":false,"sell":false,"price":75},
        {"buy":false,"sell":false,"price":85},
        {"buy":false,"sell":false,"price":95},
        {"buy":false,"sell":false,"price":105},  // 100 is the starting price, starting from 105 and going up the first line, with an interval of 10
        {"buy":false,"sell":false,"price":115},  // ... 
        {"buy":false,"sell":false,"price":125},
        {"buy":false,"sell":false,"price":135},
        {"buy":false,"sell":false,"price":145},
        {"buy":false,"sell":false,"price":155},
        {"buy":false,"sell":false,"price":165},
        {"buy":false,"sell":false,"price":175},
        {"buy":false,"sell":false,"price":185},
        {"buy":false,"sell":false,"price":195}
    ]
    
    1. 거래 논리 분석

    그리드의 데이터 구조를 분석한 후, 그리드 전략의 특정 거래 논리를 고려해야 합니다. 사실, 구매 및 판매의 논리는 매우 간단합니다. 우리는 이미 위의 차트에서 그렸습니다. 구매는 아래의 특정 선을 넘는 것을 의미하며 판매는 위의 특정 선을 넘는 것을 의미합니다. 그렇다면 위와 아래의 교차를 어떻게 표시합니까? 그것은 또한 매우 간단하며, 우리는 두 순간의 가격 위치를 비교하여 판단 할 수 있습니다.

    여전히 이전 차트를 사용하고 있습니다.

    img

t1은 순간이고, t2는 t1 이후의 순간입니다.P1 < C그리고P2 > C- 네 마찬가지로, 직선 B 아래의 가로수를 판단하려면P1 > B그리고P3 < B- 네 그 때, 우리는 단지 가로질러 (횡단 일반적으로하나씩 보세요그레이드 배열의 각 선을 가로지르거나 가로지르는지 판단합니다. 간단할까요?

가격의 위와 아래의 교차를 잡았을 때, 이러한 동작이 발생했을 때 주문을 할 수 있습니까? 분명히, 그것은 불가능합니다. 만약 가격이 한 줄에서 상위와 아래를 반복적으로 넘어가면, 동일한 가격 수준에서 반복적으로 트랜딩하는 수수료를 낭비하지 않을까요? 따라서, 여전히 상위와 아래의 가격 넘어가기를 유발하는 일련의 판단 조건이 있습니다. 이것은 우리가 방금 구축한 격자선 데이터 구조에서 구매/판매 마커를 사용하는 것을 요구합니다. (예를 들어: {buy:false,"sell ":false,price:5}).

읽어주셔서 감사합니다. 다음 기사 에서 계속 설명 하고 배울 것 입니다.


관련

더 많은