이전 기사에서 우리는 프로그래밍, 양적 거래라고 불리는 것은 스크립트 프로그램이 거래소에서 얻은 데이터에 따라 일련의 계산, 판단, 트리거를 통해 거래를 수행하고 거래소 계정을 조작하는 행위입니다. 이러한 데이터 획득, 거래소 계정을 조작하는 행위는 모두 거래소 API 인터페이스를 통해 수행됩니다. 간단히 말해서 스크립트 프로그램과 거래소가 상호 작용하는 것입니다. 상호 작용이 있기 때문에 정상적인 상호 작용, 비정상적인 상호 작용이 있어야합니다. 비정상적인 상호 작용이 발생하면 인터페이스가 비정상적인 정보를 반환합니다.
물론 시장에 있는 프로그램화, 양적 거래 시스템, 또는 자체 개발된 프로그램에는 다양한 오류 팁, 오류 메시지가 있습니다. 이러한 오류 메시지는 거래소 API 인터페이스에 제한되지 않습니다. 또한 프로그램 실행에 있어서의 비정상적인 오류, 구성 오류, 프로그래밍 오류, 문법 오류 등이 있습니다.
발명가 양적 거래 플랫폼에서 오류는 다음과 같은 몇 가지 범주로 나눌 수 있습니다.
전략적 문법 오류 이러한 오류는 가장 흔하며, 일반적으로 새로운 프로그래밍에 익숙하지 않기 때문에, 학습 테스트 단계에서 코드를 작성하는 문법 오류가 발생합니다. 예를 들어:
코드에는 괄호와 같은 문자가 적어지지 않습니다. 이러한 오류는 일반적으로 편집 정책 페이지에서 오류 지시를 볼 수 있으며 정책도 실행되지 않습니다.
그래서 정책을 작성한 후 플랫폼 정책 편집 페이지의 습관을 살펴보고 빨간색 작은 XX가 있는지 확인하면 분명히 오류가 있습니다.
정책 프로그램 BUG로 인한 실행 프로그램 오류 프로그램에는 BUG가 존재하며, 프로그램이 실행되는 동안, 이 오류를 일으키는 것은 프로그램이 비정상적으로 중단되는 것을 초래하며, 이러한 오류 메시지를 표시합니다.
이러한 오류는 모든 프로그램에서 오류가 발생하여 프로그램이 실행을 중단합니다.
잘못된 구성, 설정으로 인한 오류
FMZ 플랫폼에서 거래는 통상적으로X_Y
이러한 형식에서는 X는 거래 화폐의 이름을, Y는 요금 화폐의 이름을 나타냅니다. 예를 들어, USD로 표기되는 화폐는 일반적으로 USD로 표기됩니다.BTC_USDT
그리고 만약 제가 트랜잭션 쌍을 엉망으로 쓸 경우,BTC-USDT
。
FMZ 플랫폼의 검색 시스템에서 오류가 발생했습니다:
실생활에서 발생한 오류:
그리고
이러한 오류는 FMZ 플랫폼 계정의 암호가 변경되어서 인해 구성된 거래소 객체에서 오류가 발생합니다.API KEY
실패 (사용자의 API KEY는 브라우저에서 암호화 된 후 FMZ 플랫폼에 구성되었습니다) 정책이 시작되지 않아 오류가 발생했습니다.
인터페이스 호출 오류 보고
인터페이스 호출 오류는 실행 정책에서 자주 발생합니다. 이전 기사에서 우리는 FMZ 플랫폼의 인터페이스에 대해 배웠습니다.네트워크 요청을 생성하는 인터페이스、네트워크 요청을 생성하지 않는 인터페이스▲ 인터페이스 오류 보고는 정책 프로그램이 중지되는 것을 초래하지 않으며, 일반적으로 인터페이스 호출의 특이한 이유로 잘못된 데이터를 반환하고, 그 다음 정책이 오류를 범하지 않고, 잘못된 데이터를 사용해서 발생하는 프로그램 특이한 오류로 인해 프로그램이 중단됩니다. (실패 허용의 개념은 이전 기사에서 언급되었습니다.)
여기 몇 가지 네트워크 요청을 생성하는 인터페이스 오류 메시지가 나열되어 있습니다:
인터넷 시간 초과
신규 거래자가 자주 접하는 오류 중 하나는 국내 네트워크의 장치를 사용한다는 것입니다. 대부분의 거래소가 벽에 둘러싸여 있기 때문에 국내 네트워크는 기본적으로 많은 거래소에 액세스 할 수 없습니다.
http 429 오류
기존의 오류 메시지 중 하나는 거래소 인터페이스를 너무 자주 호출하여 거래소 제한을 초과하는 경우가 많다는 것입니다.
몇몇 신입생들은 아마 이렇게 말할지도 모릅니다.API KEY
또는 여러 개의 거래소 계정을 더 많이 요청하면 작동하지 않습니다. 우리는 거래소가 인터페이스 접근 빈도를 제한하는 것을 알아야합니다. 일반적으로 IP 주소에 기반합니다. 간단히 말해서, IP 주소에서 전송된 모든 요청이 이 IP 주소에서 통계를 받으면 해당 IP를 초과하면 교환 서버는 접근을 거부합니다.
거래소 인터페이스 비즈니스 레벨 오류 보고
위의 타임아웃, 429은 네트워크 차원의 오류입니다. 거래소 인터페이스 비즈니스 차원의 문제가 발생하면 오류가 발생합니다. 예를 들어 현장 시장을 얻고 싶지만 존재하지 않는 거래 쌍을 설정했습니다. FMZ 플랫폼의 디뷰팅 도구에서 테스트했습니다. 디뷰팅 도구는 매우 편리한 테스트 도구이며 실제 디스크 테스트 기능 호출, 데이터 획득 등의 필요에 적합합니다.
디뷰팅 도구 실행 결과, 디뷰팅 도구 실행 및 실제 디스크 실행은 차이가 없습니다.
Huobi 错误 GetTicker: Invalid ticker: {"Info":{"err-code":"invalid-parameter","err-msg":"invalid symbol","status":"error","ts":1620872079355},"High":0,"Low":0,"Sell":0,"Buy":0,"Last":0,"Volume":0,"OpenInterest":0,"Time":0}
이 오류 메시지는 거래가 무효라는 것을 의미합니다."err-msg":"invalid symbol"
ᅳᅳ
이와 같은 사례와 비즈니스 관련 오류는 많이 있습니다. 예를 들어, 레버리지를 설정할 때 일부 거래소가 소수 부분의 레버리지를 지원하지 않는 경우, 레버리지가 소수 부분의 경우도 인터페이스 호출 오류를 초래합니다.
네트워크 요청을 생성하지 않는 인터페이스 호출을 나열합니다.
미래 계약 코드 설정 일부 인터페이스는 단지 시스템 내의 특정 범용 변수를 설정하는 것일 뿐이고 네트워크 요청을 생성하지 않습니다. 예를 들어:
그러나 변수 전달 오류 또는 오인 오류도 발생할 수 있습니다.
그러나 어떤 종류의 오류이든, 표시된 오류 메시지는 문제를 찾는 데 중요한 정보이며, 일반적으로 오류 메시지에서 문제가 무엇인지 알 수 있습니다. 번역 도구를 사용하여 오류 정보를 번역하고 중요한 정보를 추출할 수 있습니다. 예를 들어 위의 예시에서."err-msg":"invalid symbol"
, 번역:
리테스트 시스템은 또한 양적 도구의 중점이며, 리테스트 시스템은 편리한 테스트 전략 프로토타입, 초기 테스트 전략의 잠재적인 BUG, 논리 문제 등. 리테스트 시스템에 대한 합리적인 견해가 필요합니다. 리테스트 시스템은 어느 정도 전략의 문제를 반영 할 수 있습니다.
아래는 FMZ에서 지원되는 다양한 전략 언어 레벨에 대한 간단한 설명입니다.
자바스크립트
웹 브라우저에서 검색하여 네이티브 하드웨어 자원을 사용합니다.
파이썬
호스트가 재검토할 때, 어떤 호스트에 특정 할당을 선택할 수 있다 (자신 배포한 호스트, FMZ 플랫폼의 공용 호스트 모두) FMZ 플랫폼에서 공용 호스트의 부하가 크기 때문에, 로컬 호스트 재검토를 사용하는 것이 좋습니다.
C++
스크립트 언어와 달리, C++ 정책은 먼저 컴파일되고 실행되어야 한다. C++ 언어의 정책은 FMZ 플랫폼 (서버) 에서 먼저 컴파일된다.
메어어
기본 구현은 자바스크립트이며, 검색을 할 때 브라우저에서 검색합니다.
시각화
기본 구현은 자바스크립트이며, 검색을 할 때 브라우저에서 검색합니다.
발명가들의 양적 거래 플랫폼의 리테스트 시스템 리테스트 모드는 두 가지로 나
리테스트 시스템에 대한 설명은 플랫폼 튜토리얼에서 볼 수 있습니다.
1, 모형 수준 재검토 아날로그 레벨 재검토의 간단한 통용은 K선 데이터에 기반하여 시간 단위별로 생성된 가격 데이터를 아날로그화하는 것이다.
K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。
이 그림은 이 그림과 비슷합니다.https://www.fmz.com물론 실제 리모델링 시스템이 이 모형을 구현할 때 상황은 그림보다 조금 더 복잡하다. 여기서 깊이 들어가지 않고, 리모델링 수준의 리모델링 메커니즘을 이해하면 된다. 이 원리를 알게 되면, 아날로그 레벨 리코딩의 단점을 주의해야 할 것이다. 비록 아날로그 레벨 리코딩은 빠른 속도 (아날로그로 생성된 가격이 실제 초당 가격은 아니기 때문에) 이다. 그러나 전략이 적합하다면).시뮬레이션된 틱 변화 추세하지만 실제 상황에서는 가격이 K선 기둥의 프레임 안에 있기는 하지만, 가격이 그런 움직임이 아닐 수도 있습니다. 여기 모형 틱 데이터를 생성하는 K 라인은 밑줄 K 라인이라고 불립니다.하위 K선 주기는, 정책 설정 페이지에서 아래와 같이 설정합니다:
여기서 1분으로 설정하면 1분 주기가 있는 K선 데이터를 애널로그 틱을 생성하는 데이터 소스로 사용한다는 것을 의미합니다.
또 다른 점은, 높은 주파수 전략에 대해, 아날로그 레벨 리코딩을 사용하는 것이 명백히 적합하지 않다는 것이다. 그러나 트렌드 전략에 대해서는, 아날로그 레벨 리코딩을 사용하는 것이 전략의 성과를 어느 정도 반영할 수 있다는 것이다.
2, 실제 디스크 수준 재검토 아날로그 수준의 리코딩에 대해 이야기하자면, 실제 수준의 리코딩에 대해 이야기하자. 간단히 말해서, 실제 수준의 리코딩은 리코딩을 할 때 실제적으로 발행되는 초당 가격 데이터이다. 전략이 시장에서 초당 가격을 리코딩하도록 한다. 이러한 리코딩 모드에서는 거래 빈도가 높은 몇 가지 전략을 리코딩할 수 있으며, 어느 정도의 참조 값을 얻을 수 있다. 단점은 실제 디스크 수준의 재검토 데이터의 양이 너무 커서 더 큰 시간 범위의 재검토 (일반적으로 시간 범위는 1 일 미만) 는 불가능하다는 것입니다.분할 데이터, 깊이 데이터 기하급수 (거래 단절 데이터, 디스크 깊이 데이터는 실제 디스크 수준 리모터에서 초당 스냅샷이 있습니다. 따라서 실제 디스크 수준 리모터 데이터의 양이 크습니다.) 를 감소하여 적절히 리모터 범위를 증가시킵니다.
발명자 양자 거래 플랫폼 리코드 시스템의 데이터 소스는 어디입니까? 리코드 시스템은 FMZ 플랫폼의 데이터 센터를 기본으로 사용합니다. FMZ 플랫폼 데이터 센터는 자동으로 설정된 각 거래소의 각 통화 시장 데이터를 수집하여 플랫폼의 리코드 시스템에 제공합니다.
1 FMZ 데이터센터를 기본으로 사용하는 데이터 이 글의 한 부분에서는 다음과 같이 언급했습니다.https://www.fmz.com/bbs-topic/6857#量化交易平台플랫폼에서 제공하는 리모컨 데이터는 제한된 거래 쌍만을 지원합니다. (전 시장, 전 통화 리모컨 데이터는 천문학적인 수치이며, 모두 현실적이지 않고, 플랫폼은 주류 거래소, 주류 통화 시장 데이터를 수집합니다.)
2., 사용자 정의 데이터 소스 데이터를 사용 재검토 페이지의 옵션을 사용하여 사용자 정의 데이터 소스를 설정할 수 있습니다. 간단히 말해서, 만약 당신이 어떤 거래소에서 데이터를 가지고 있다면 FMZ 플랫폼의 형식 요구 사항에 따라 FMZ 플랫폼의 재검토 시스템을 제공하여 재검토 할 수 있습니다.
사용자 지정 데이터 소스 FMZ API 문헌에는 다음과 같은 설명이 있습니다.https://www.fmz.com/api#自定义数据源
FMZ 라이브러리에는 다음과 같은 프로그램들이 있습니다:
이 글은 유저들의 관심과 관심사를 담고 있습니다.
이 프로젝트의 주제는배우기、테스트、생각하기ᅳ 문제로 생각하는 것은 빈 공간에서 생각할 수 없다는 것이 효과적이지 않습니다. 문제를 해결하고 문제를 생각하는 것이 가장 효과적입니다.정보 검색그리고시도해보세요.、사고 분석이 문서는 이 문제를 해결하지 못하면 위의 동작을 반복하십시오.
하지만 보통
이 모든 것은 매우 어려운 일이었습니다.
은 반일 동안 을 봤는데, ! 이 안 들어서서 포기하고 싶어! 이 모든 것은
FMZ 플랫폼에 접속하는 것은 매우 간단합니다. 먼저 정보를 검색하는 데 능숙해야 합니다.
그리고 직접적인 능력, 재검토 시스템, 디제이팅 도구를 사용하여 매우 편리한 테스트를 할 수 있습니다. 여기서는 완전한 전략을 테스트하는 것이 아닙니다. 사실, 완전히 0 기반이라면 FMZ 양적 재검토 시스템에서 JavaScript 프로그램의 기초를 배울 수도 있습니다.
이 사이트는 제가 자주 배우는 JS 튜토리얼 사이트입니다.https://www.runoob.com/js/js-loop-for.htmlJS 뿐만 아니라 다양한 IT 지식도 검색하고 배울 수 있습니다. 예를 들어, 제 JS의 정규 표현식은 어떻게 해야 할지 모르겠어요. 어떻게 해야 할까요? 물론, 먼저 정보를 확인하고, 직접 시도해보세요~
저는 이 사례를 보았습니다.저는 테스트를 하고 싶고, FMZ 플랫폼의 재검토 시스템으로 테스트를 배울 수도 있습니다.
리테크 시스템에서 거래소를 쉽게 설정합니다.
다음 코드를 테스트합니다:
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
function main() {
var strEmailAddress1 = "13512345678"
Log(strEmailAddress1, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress2))
}
이 모든 것을 통해, 우리는 우리 자신을 더 많은 것을 배울 수 있습니다. 예를 들어, 자바스크립트 언어의 루킹 로직을 쓰는 법을 배우고 싶으면,
루크는 배열의 순서에 따라 배열 변수에서 각 요소를 인쇄합니다:
function main() {
var arr = [{coinName: "BTC", price: 10000}, {coinName: "LTC", price: 100}, {coinName: "ETH", price: 2000}, {coinName: "ETC", price: 500}]
for (var i = 0 ; i < arr.length ; i++) {
Log(arr[i])
}
}
이 순간, 학습이 동기를 부여받는 느낌인가? 사실 FMZ에서는 자바스크립트 튜토리얼을 보면서 자바스크립트 기초를 직접 학습할 수 있습니다. 자바스크립트 문법은 거의 익히고 있습니다.디뷰팅 도구실제 인터페이스 테스트를 수행합니다.
그리고는 더 많은 생각을 하고, 한 대 세를 던지고, 테스트를 하고, 검증하고, 비교 분석을 하고, 이런 식으로 공부를 시작하면 아주 빠르게 됩니다.