FMZ 양자 거래 플랫폼에서 개발자로 일하는 파트너는 종종 다음과 같은 요구를 가질 수 있습니다.
임대 전략을 개발할 때, 전략에 대한 다른 자본 제한과 전략 임대 계약 (전략 운영을 제한하는 거래소) 에 대한 다른 교환 제한 또는 전략을 임대하고자 할 때 교환 계좌 구성에 대한 제한을 가질 수 있습니다 (이 전략은 미리 합의된 계좌에서만 운영 될 수 있으며 전략 사용자가 다른 계정을 사용할 때 거래를하지 않을 것이라고 명시하십시오).
이 조건들은 분명히 코드에 쓰일 수 없습니다. 왜냐하면 만약 그들이 코드에 쓰여진다면, 모든 사용자들이 이 조건에 적용될 것이고, 다른 사용자 그룹에 대해 다른 사용 권한을 가진 컨트롤을 만드는 것은 불가능할 것이기 때문입니다.
위의 수요 시나리오를 기반으로 FMZ 양 거래 플랫폼은 새로운 기능으로 확장됩니다: 전략 임대 등록 코드 메타 데이터 설정
등록 코드를 만들 때, 당신은 메타데이터를 지정할 수 있습니다Meta
주의: 등록 코드를 생성 할 때 메타의 길이는 190 문자를 초과할 수 없습니다.
예를 들어, 만약 내가 전략 개발 하트샷이고 BTC_USDT에 대한 스포트 거래 쌍을 개발 한 경우, 그리고 그것은 단지 긴 간다 (가격 통화만 있습니다QuoteCurrency
처음에, 즉, USDT; 구매 후, 거래 통화BaseCurrency
이 전략을 빌리고 싶습니다.test1
.
전략의 제한된 디자인은 전략의 특정 상황에 따라 설계되어야한다는 것을 볼 수 있습니다. 예제는 스팟 전략의 시범입니다. 전략이 선물 전략이라면 어떻게 될까요? 그렇다면 선물 위치 정보를 제한해야합니다. (GetPosition에서 반환하는 위치 데이터에 따라). 전략이 위치가 한계를 초과한다는 것을 발견하면, 포지션을 여는 논리를 실행하지 않을 것입니다. (다른 논리는 포지션을 닫는 것과 같이 정상적으로 실행해야합니다.)
따라서 이러한 디자인은 전략 자체에 구체적이어야 합니다. 여기 있는 예제는 단순한 예제일 뿐이고 실용적인 용도가 없을 수도 있습니다.
전략 소스 코드:
function main() {
// The maximum asset value of the denominated currency allowed by the strategy
var maxBaseCurrency = null
//Obtain the metadata when creating the registration code
var level = GetMeta()
// Detecting the conditions corresponding to Meta
if (level == "level1") {
// -1 is not limited
maxBaseCurrency = -1
} else if (level == "level2") {
maxBaseCurrency = 10
} else if (level == "level3") {
maxBaseCurrency = 1
} else {
maxBaseCurrency = 0.5
}
while(1) {
Sleep(1000)
var ticker = exchange.GetTicker()
// Detect asset values
var acc = exchange.GetAccount()
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// Stop executing strategic trading logic
LogStatus(_D(), "Positions exceeding the usage limit of the registration code will no longer execute the strategy trading logic!")
continue
}
// Other trading logic
// Output the status bar information normally
LogStatus(_D(), "The strategy is running properly! ticker data:\n", ticker)
}
}
등록 코드를 만들 때 전략 라이브러리에서 전략 테스트1를 찾아 오른쪽의 행동 항목을 클릭하고
그리고
등록 코드 메타데이터를 설정하기 위해
다음에는 메타 컨트롤에 자격을 부여해야 하는 정보를 입력합니다. 예를 들어 이 예제에서 설계된 여러 전략 사용 레벨과 같이:
· 1급: 직위 제한이 없습니다. · 레벨2: 최대 10개의 동전으로 포지션 수를 제한합니다. · 레벨3: 1개의 동전으로 최대 포지션 수를 제한합니다. · 메타 설정이 없습니다: 메타 설정이 없을 때 기본 최대 포지션 제한은 0.5 동전입니다.
먼저,level1
메타 컨트롤에 대한, 생성 된 등록 코드가level1
테스트1 전략의 수준.
등록 코드 생성:
Purchase address: https://www.fmz.com/m/s/282900
Registration code: 7af0c24404b268812c97b55d073c1867
전략 임차인은 등록 코드를 전략 임차인에게 보내죠.
전략 임차자는 실제 봇을 만들고, 전략 테스트1을 사용해서, WexApp Spot Exchange 객체를 추가합니다 (WexApp는 FMZ 플랫폼의 데모입니다), 실행합니다.
전략 등록 코드가 사용되었을 때, 전략 개발자가 발행된 등록 코드의 메타 데이터를 조정해야 할 경우도 수정 할 수 있습니다.
메타 데이터는 전략 라이브러리, 판매 기록에서 수정할 수 있습니다.
이전 등록 코드의 메타 데이터를level3
,
그 다음 전략 사용자는 테스트를 다시 시작합니다.
임대 전략이 다른 사용자 그룹과 다른 지불 수준에 기반할 때, 메타 데이터는 계층적 전략 통제를 달성하기 위해 특별히 구성됩니다.
물론, 위의 것은 가장 일반적인 제한 및 제어 요구 사항만을 나열합니다. 이 함수를 사용하여 구현 할 수있는 다양한 유사한 요구 사항이 있습니다.