리소스 로딩... 로딩...

자바스크립트 전략 백테스팅은 크롬 브라우저의 DevTools에서 디버깅

저자:발명가들의 수량화 - 작은 꿈, 창작: 2022-06-24 14:10:02, 업데이트: 2023-09-25 19:50:23

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

자바스크립트 전략 백테스팅은 크롬 브라우저의 DevTools에서 디버깅

백테스팅 시스템에서 디버깅 전략을 위해, 일반적으로Log()함수가 사용할 수 있기 때문에 DEBUG는 매우 비효율적이고 경험이 적은 초보자 프로그램 테스트자에게는 어렵습니다.JavaScript언어,Chrome브라우저가 더 잘 지원하여 백테스팅 중에 브레이크포인트 디버깅, 싱글 스테이프 디버깅, 변수 값 모니터링, 표현식 모니터링 등을 구현할 수 있습니다.JavascriptFMZ 플랫폼에서 언어 전략 백테스팅. 이 디버깅 방법은 단지 지원되는 것을 참고하십시오.JavaScriptFMZ 플랫폼에서 언어 전략.

debuggerFMZ 플랫폼에서 명령

칩을 삽입합니다debuggerFMZ에서 자바스크립트 언어의 전략 코드에 명령하면 백테스팅 중에 프로그램 실행이 중단됩니다.

우리는 다음 테스트 전략 코드를 사용합니다.

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var n = 1 
    while (true) {
        var t = exchange.GetTicker()
        debugger
        var r = exchange.GetRecords()
        if (n == 1) {
            // When placing a purchase order, if there is an error here, an error will be reported, and null will be returned, and GetTicker will return data t with Buy attribute only, and the attribute name is case-sensitive without buy attribute
            var id = exchange.Buy(t.buy, 0.1)    
            var orderBuy = exchange.GetOrder(id)
        }
        Sleep(500)
    }
}

백테스팅에서 코드를 구성합니다.

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

여기서 우리는 우리가 백테스팅을 위해 추가한 거래소가 바이낸스 스팟이라는 것을 볼 수 있습니다.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

전략 코드를 계속 살펴보면debugger위탁var t = exchange.GetTicker()이 문장은 여기서 브레이크포인트에 도달하는 것과 같고 이 위치에서 프로그램 실행이 멈출 것입니다.debuggers는 전략 코드에서 사용할 수 있지만 그렇게하는 것이 권장되지 않습니다. 특정 위치에 단점만 사용하십시오. 그리고 그 다음의 단점은 브라우저의 DevTools 디버깅 기능에서 설정 할 수 있습니다.

우리는 문을 열어야 합니다DevTools백테스트를 실행하기 전에 크롬 브라우저의debugger전략 코드에서 정하는 바가 적용됩니다. 그렇지 않으면debugger무시 될 것이고, 백테스팅의 전략 프로그램은 중단되거나 중단 될 수 없습니다.DevTools전략을 역 테스트하기 위해, 전략 프로그램은 첫 번째 설정에서 중단됩니다debugger위치, 그리고debugger또한 전략 코드 전체 범위에서 설정할 수 있습니다.

우리는 두 가지 방법으로DevTools크롬 브라우저의 도구:

  • 1. 우리는 페이지에 오른쪽 클릭을 사용하여 팝업 메뉴를 열고

DevTools 인터페이스를 표시하기 위해 Check를 클릭합니다.

  • 2. 단축키 를 사용 하라

또한 단축키를 사용하여DevTools누르면Command+Option+I (Mac)또는Control+Shift+I (Windows, Linux).

열고 나면DevTools그림과 같이:

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

자바스크립트 언어 전략에 대한 브라우저에서 DEBUG의 인터페이스

위의 테스트를 거쳐, 우리가 버튼을 클릭 할 때 Start Backtest 전략의 역 테스트를 위해, 전략은 중지하고 대응 위치에서 기다립니다.debugger코드에 명령어가 설정되어 있습니다. 백테스트는 다음과 같이 고정되어있는 것 같습니다.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

그것은 전략에 의해 중단 표시된 위치에서 볼 수 있습니다debugger, 전체 프로그램은 n의 값이 1이고 t의 값이 함수로 반환되는 시장 데이터를 실행합니다.GetTicker당신은 위의 그림의 빨간색 상자에서 특정 변수 값을 볼 수 있습니다. 그래서 전략 실행 때 각 변수의 값을 쉽게 관찰 할 수 있습니다.

수동 디버깅을 위한 정지점을 설정합니다

우리는 코드 왼쪽에 있는 줄 번호를 클릭해서 정지점을 추가할 수 있습니다.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

스크립트 실행을 재개하기 위해 스크립트 실행을 재개하기 위해 재개 스크립트 실행을 클릭하면 프로그램이 다음 중단점으로 실행됩니다. 중단점이 없거나 프로그램이 예외를 일으키는 오류가있는 경우 백테스트가 종료됩니다.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

또한 실행할 수 있는 몇 가지 버튼이 있습니다. 예를 들어 다음 함수를 건너뛰고 다음 함수 호출로 이동하고, 현재 함수 호출에서 종료하고, 단일 단계를 실행하고, 모든 중단점을 무시합니다.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

코드 DEBUG를 테스트

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

이 시점에서 실행을 계속하기 위해 스크립트 실행 재개 버튼을 계속 클릭하면 전략 프로그램에서 예외가 발생하고 백테스트는 예외 오류 메시지가 인쇄되어 종료됩니다.

main:17:31 - TypeError: Cannot convert "undefined" to double

구조 기여 이름의 대문자 민감하지 않은 것은 초보자가 저지르는 일반적인 실수입니다.

var id = exchange.Buy(t.buy, 0.1)  //  When placing a purchase order, if there is an error here, an error will be reported, and null will be returned, and GetTicker will return data t with Buy attribute only, and the attribute name is case-sensitive without buy attribute

이 값은 교환에 전달됩니다. 구매 함수는 정의되지 않은 변수입니다. 이 변수는 프로그램 예외를 발생시키고 백테스트를 끝냅니다.

프로그램이 브레이크포인트 위치에서 멈출 때, 이 코드 라인은 실행되지 않습니다. 우리는 step into next function call 버튼을 계속 클릭합니다.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

거래소로 가세요. 구매 기능 전화.

JavaScript strategy backtesting is debugged in DevTools of Chrome browser

여기서 우리는 가격이 정의되지 않은 변수라는 것을 볼 수 있습니다.

위의 접근법을 사용하면 프로그램 버그를 단계적으로 알아내는 것이 쉽습니다. 많은 초보자들은 종종 실수를합니다. 예를 들어, 배열의 인덱스가 제한을 벗어나 액세스되고, 정의되지 않은 변수가 참조되고, 표현식이 잘못 작성되어 있습니다. 이 모든 것은 프로그램을 DEBUG하기 쉽습니다.


관련 내용

더 많은 내용