Descarga de la política de JavaScript en el navegador Chrome con DevTools

El autor:Un sueño pequeño., Creado: 2022-06-22 14:23:26, Actualizado: 2023-09-18 20:24:01

img

Descarga de la política de JavaScript en el navegador Chrome con DevTools

Para las políticas de depuración en sistemas de retroalimentación, normalmente sólo se puede usarLog()Función: DEBUG es muy bajo en eficiencia y es difícil para los principiantes con poca experiencia en pruebas de programas.JavaScriptLa estrategia de debujo de la lenguaChromeLos navegadores tienen un mejor soporte. Puede realizar interrupción de redirección, redirección de un solo paso, monitoreo de valores de variables, monitoreo de expresiones, etc. A continuación, vamos a aprender juntos cómo usar este método en FMZ.JavascriptLa política de lenguaje DEBUG cuando se vuelve a evaluar.JavascriptLas estrategias del lenguaje apoyan este tipo de programación.

En la plataforma de FMZdebuggerLas instrucciones

Inserción en el código de la política del lenguaje JavaScript en FMZdebuggerLa instrucción que permite interrumpir el programa en el momento de la revisión.

En la actualidad, la mayoría de los usuarios de Twitter usan el código de la estrategia de prueba:

/*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) {
            // 下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性,属性名区分大小写
            var id = exchange.Buy(t.buy, 0.1)    
            var orderBuy = exchange.GetOrder(id)
        }
        Sleep(500)
    }
}

El código de configuración de la prueba de retorno

/*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"}]
*/

Se puede ver que el intercambio que se añade a la revisión es Binance (Binancial) Cash, configurado como en la imagen de pantalla:

img

Si seguimos viendo el código de la estrategia, podemos ver quevar t = exchange.GetTicker()En esta frase, lo que escribimos es:debuggerLa instrucción, es como poner un punto de interrupción aquí y el programa se detiene cuando se ejecuta hasta este punto.debuggerSin embargo, no se recomienda hacer esto, incluso si se escribe una interrupción en un lugar, las interrupciones posteriores se pueden configurar en la función de depuración de DevTools del navegador.

En la actualidad, la mayoría de las aplicaciones de Google Chrome están abiertas.DevToolsLuego ejecuta la revisión, la cual está establecida en el código de la política.debuggerLa ley no se aplicará hasta que se aplique, si no.debuggerSe ignorará y el programa de la política de retraso no puede interrumpirse para detenerse en el punto de interrupción.DevToolsDespués de revisar la política, el programa de política se interrumpe en la primera configuración.debuggerLa ubicación.debuggerTambién se puede configurar en el ámbito global de la estrategia de código.

En el navegador de Chrome, el navegador de Google Chrome está abierto y el navegador de Google Chrome está abierto.DevToolsLa herramienta tiene dos formas:

  • Primero, hacemos clic derecho en el menú emergente de la página.

    img

    Si hacemos clic en "Verificar", se muestra la interfaz de DevTools.

  • 2. Utilice el teclado de acceso rápido.

    También puedes abrirlo con el teclado de acceso directo.Command+Option+I (Mac)¿Qué es esto?Control+Shift+I(Windows、Linux)¿Qué es esto?DevTools

¿Qué es esto?DevToolsDespués de esto:

img

Interfaz para DEBUG en el navegador de la política de lenguaje JavaScript

La siguiente prueba, cuando hacemos clic en el botón "Iniciar la revisión", la política de revisión se establece en el código.debuggerLas instrucciones, las políticas se interrumpen en el lugar correspondiente y esperan.

img

Como se puede ver, en la estrategiadebuggerMarcando la posición de la interrupción, el programa entero sólo ejecuta la asignación n como 1, la asignación t comoGetTickerLos datos de transacción que devuelve la función. En el gráfico de arriba se puede ver el valor de las variables específicas en el cuadro rojo, por lo que es conveniente observar el valor de cada variable cuando se ejecuta la política.

Configuración manual de desactivación del punto de interrupción

Podemos hacer clic en el número de la línea de la izquierda del código y añadir puntos de interrupción.

img

Al hacer clic en "resume script execution", el programa se ejecutará hasta el siguiente punto de interrupción. Si no hay interrupción o si el programa tiene un error que causa una excepción, la revisión terminará.

img

También hay algunos botones que se pueden implementar: saltar la siguiente función, ir a la siguiente llamada, saltar la llamada actual, ejecutar en un solo paso, ignorar todos los puntos de interrupción, etc.

img

DEBUG el código de la prueba.

img

En este momento, cuando seguimos haciendo clic en el botón "resume script execution" para continuar ejecutando, el programa de políticas se produce una anomalía, la revisión termina y imprime un mensaje de error de anomalía.

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

Este es un error que a menudo cometen los principiantes: no distinguir la mayúscula del nombre de un atributo estructural.

var id = exchange.Buy(t.buy, 0.1)  //  下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性。

导致传入exchange.Buy函数的价格是一个undefined变量,引起程序异常,回测结束。

Cuando el programa se detiene en el punto de interrupción, esta línea de código no se ejecuta. Continuamos haciendo clic en el botón "step into next function call".

img

跳转到exchange.Buy函数调用中。

img

El precio es una variable indefinida.

El uso de esta forma es fácil de encontrar el programa BUG paso a paso. Los errores que muchos principiantes cometen a menudo: por ejemplo, el acceso al índice de la matriz cruza la frontera, cita variables no definidas, errores de escritura de expresiones, etc. De esta manera, es fácil de DEBUG el programa.


Relacionados

Más.

No hay nada.El dormitorio, también puede ser así, 666!