첫 몇 개의 기사에서, 나는 암호화폐 서클뿐만 아니라 프로그래밍 및 양적 거래에 대한 많은 기본 개념을 배웠습니다. 마지막으로, 우리는 주요 주제로 자르고 전략 자체에 대해 이야기 할 수 있습니다. 기사에서, 우리는 간단한 전략을 구현하는 법을 배울 것입니다. [그리드 전략]에 대해 거래하는 학생은 그것에 대해 들어야합니다.기판자사의 프로그램 및 양적 거래 기능을 시작했으며 가장 흔하고 가장 쉽게 사용되는 전략은그리드 전략그러나 각 플랫폼에서 제공하는 그리드 전략 기능과 세부 사항은 다릅니다. 우리는 암호화폐 서클에 정량화를 입력할 계획이기 때문에, 왜 우리가 스스로 그리드 전략을 구현하지 않습니까?
그러면 어떤 학생들은 이렇게 말할 수도 있습니다.
난 코드를 쓸 수 없어!
그것은 사실입니다. 컴퓨터 소프트웨어의 주요 분야를 전공하지 않고 프로그래밍 작업에 종사하지 않은 학생들이 스스로 완전한 거래 전략을 개발하는 것은 매우 어렵습니다. 플랫폼 인터페이스를 도킹하는 일련의 사전 작업을 수행해야하기 때문입니다. (아마도 귀하의 거래 논리 프로그램은 100 줄 만이지만, 수행해야 할 다른 코딩 작업은 상당히 많으며 거래 논리를 작성하는 것보다 더 어렵습니다.)
이 때, 당신이 매우 편리한 도구를 가지고 있다면, 그것은 매우 간단할 것입니다, 적어도 난이도가 70% 감소합니다. 당신은 당신이 단지 거래 논리를 작성하면, 도킹 플랫폼 인터페이스, 서명 검증, 구성 파일, 운영 환경 구축, UI 인터페이스 작성, 대화형 글쓰기 및 기타 기능을 포함한 다른 작업을 상상할 수 있습니다.
믿지 않나요? 한번 해보자!
우리가 사용하는 도구는: FMZ 양자 거래 플랫폼 (FMZ.COM). 그리드 전략 설계의 핵심은 실제로 그리드 구매 및 판매의 논리이기 때문에 이것은 전략을 설계하기 전에 명확히 해야 할 것입니다. 우리의 목표는 전략 디자인을 간단하고 이해하기 쉽도록 만드는 것입니다. 따라서 매개 변수 수가 적고 논리가 단순하면 더 좋을 것입니다.
전략 수립의 기본 절차는 다음과 같습니다.
1.전략 요구 사항 요약
간단히 말해서, 그들은 당신의 전략이 무엇을 할 것인가, 어떻게 할 것인가, 그리고 어떤 기능이 있는지입니다. 그 정보는 실제로 전략 코드를 작성하기 전에 문서 (노트북과 같은 것) 에 작성될 수 있습니다. FMZ에서 전략을 개발하는 것은 매우 간단합니다. 플랫폼은 이러한 요구 사항에 대한 솔루션을 제공합니다. 그리고 당신은 어떤 노트북에 이러한 요구 사항을 작성할 필요가 없습니다. 당신은 전략 메모에 직접 전략 요구 사항을 쓸 수 있습니다.
당신이 작성 완료 할 때 전략을 저장 기억 하 고, 그 다음 우리는 전략 요구 사항을 작성 계속 (그 요구 사항은 변경되지 않습니다; 당신은 동시에 기록 및 개발 할 수 있습니다).
XXX_USDT
, 예를 들어BTC_USDT
.2.그리드 데이터 구조를 구축:
명확하지 않은 아이디어는 처음부터 분석할 수 있습니다.
그리드는 기본점, 초기 가격에서 위쪽과 아래쪽 두 방향으로 구성될 수 있습니다. 그리드라고 불리는 것은 입찰선과 요청선의 층으로 구성됩니다. 그래프를 보면 각 라인이 두 가지 가능성을 가지고 있음을 알 수 있습니다.
그리드 데이터 구조를 구성하는 함수를 코딩:
function createNet(begin, diff) { // begin and diff are parameters; begin is the initial price, and diff is the grid interval (the interval of the equal difference grid is a price)
var oneSideNums = 10 // The grid generates 10 lines on both upward and downward sides. The above image only shows the situation of generating 2 lines on both sides (A and B on on side; C and D on the other side), and you can imagine the situation of generating 10 lines.
var up = [] // used to store the data structure of the upward "grid lines"
var down = [] // used to store the data structure of the downward "grid lines"
for (var i = 0 ; i < oneSideNums ; i++) { // determine the number of times according to the number of oneSideNums; construct the "grid line" data structure by loop
var upObj = { // construct the data structure of a upward "grid line"
buy : false, // buy mark; the initial mark is false, which means no buying
sell : false, // sell mark ...
price : begin + diff / 2 + i * diff, // the price position represented by the "grid line", which can be observed and processed according to the loop; the price position is getting higher successively
}
up.push(upObj) // put the constructed "grid line" data structure into the up array
var j = (oneSideNums - 1) - i // when in the loop, j changes from 9 to 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) // put the constructed "grid line" data structure into the down array
}
return down.concat(up) // add "up" after "down", forming a grid array structure with grid line prices from low to high
}
당신은 개별적으로 결과를 보기 위해 기능을 수행 할 수 있습니다. FMZ에 있는
생성된 데이터는 관찰할 수 있습니다.
[
{"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 initial price, the first line goes up is from 105, and the interval is 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은 시간이고, t2는 t1 이후의 시간입니다. 직선 C가 위를 가로지르는지 아닌지를 판단하려면P1 < C
그리고P2 > C
- 네
같은 방식으로, B 직선이 아래로 가로지르는지 판단하려면P1 > B
그리고P3 < B
- 네
그 때, 우리는 단지 격자 배열의 각 선을 통과해야 합니다 (횡단 일반적으로하나씩 확인), 그리고 위와 아래를 결정합니다.
가격 상승과 하락의 동작을 감지했습니다. 이러한 동작이 발생했을 때 주문을 할 수 있습니까?
분명히 불가능합니다. 가격이 한 줄에서 반복적으로 상승과 하락하면 동일한 가격으로 반복되는 거래에 대한 처리 수수료를 낭비하지 않을까요? 따라서, 우리는 방금 구성 한 그리드 라인 데이터 구조에서 구매/판매 마크를 사용해야하는 상향과 상향을 촉발 한 후에도 일련의 판단 조건이 있습니다. (예를 들어: {
읽어 주셔서 감사합니다. 다음 기사 에서 설명 과 연구 를 계속 해 보겠습니다.