En la carga de los recursos... Cargando...

Novato, comprueba Te llevará al comercio cuantitativo de criptomonedas (3)

El autor:No lo sé., Creado: 2022-04-20 11:46:56, Actualizado: 2022-04-20 16:53:34

Novato, comprueba Te llevará al comercio cuantitativo de criptomonedas (3)

Mensaje de error

En los artículos anteriores, hemos aprendido que el llamado comercio programado y cuantitativo es un programa de script basado en los datos obtenidos de las plataformas, después de una serie de cálculos, juicios y disparadores para realizar algunas operaciones y operar las cuentas de la plataforma para operar. Estas acciones de adquisición de datos y operaciones de cuentas se llevan a cabo a través de las interfaces API de la plataforma. En pocas palabras, los programas de script interactúan con las plataformas. Dado que es interacción, debe haber interacción normal e interacción anormal. Cuando ocurre una interacción anormal, una interfaz devuelve la información de excepción.

Por supuesto, los sistemas de negociación programados y cuantitativos en el mercado o programas desarrollados por uno mismo tendrán varios mensajes y mensajes de error. Estos mensajes de error no se limitan a los mensajes de error reportados por las API de la plataforma. También hay otros errores, como: error de excepción del programa durante la operación, error de configuración, error de sintaxis del programa y así sucesivamente.

En la plataforma de negociación de FMZ Quant, los mensajes de error se pueden dividir aproximadamente en varias categorías:

  • Error de sintaxis de la estrategia Este tipo de error es el error más común, que generalmente es causado por la situación de que los principiantes no están familiarizados con la programación, y el código que escriben durante el estudio tiene errores de sintaxis.

    img

    El código fue escrito sin caracteres como paréntesis. Para este tipo de error, el mensaje de error generalmente se puede ver en la página de edición de la estrategia, y bajo la circunstancia, la estrategia no puede ejecutarse (una vez que se ejecuta la estrategia, se reportará un error, como se muestra en la imagen).

    imgPor lo tanto, puede hacer un hábito de echar un vistazo a la página de edición de la estrategia después de terminar de escribir el código, para ver si hay una pequeña cruz roja; si hay uno, que significa que definitivamente hay un error obvio.

  • Excepción del programa durante el funcionamiento causada por el programa de estrategia BUG Si un programa tiene errores durante su operación, el disparador de la excepción hará que el programa se detenga anormalmente, y este tipo de mensajes de error se mostrarán.

    img

    img

    Este tipo de errores pueden causar la excepción del programa, y detener el programa de ejecución.

  • Error causado por configuración y configuración incorrectas

    En la plataforma FMZ, todos los pares de negociación se definen en la forma deX_Y, en el que X representa el nombre de la moneda de negociación, y Y representa el nombre de la moneda de cotización (la moneda de cotización del par de negociación en contratos futuros de criptomonedas con margen generalmente se expresa en USD, y eso se introduce en los artículos anteriores).BTC_USDT; supongamos que lo escribo mal, lo escribo enBTC-USDT.

    img

    Notificación de errores en el sistema de backtest en la plataforma FMZ:

    img

    Informe de errores en un bot:

    img

    O, el error más común que los principiantes a menudo encuentran:

    img

    Este tipo de error es causado por la invalidación de laAPI KEYen el objeto de intercambio configurado después de la modificación de la contraseña de una cuenta FMZ (las claves API de los usuarios están todas cifradas por el extremo del navegador y configuradas en la plataforma FMZ). Eso hará que una estrategia no pueda comenzar, lo que causará un error reportado.

  • Error causado por la interfaz de llamada

    En los artículos anteriores hemos estudiado y aprendido que las interfaces en la plataforma FMZ se dividen en:Interfaces que hacen solicitudes de redyInterfaces que no hacen solicitudes de red. El error de interfaz no hará que el programa de estrategia se detenga directamente. Por lo general, debido a la excepción de llamada de interfaz, se devuelven los datos incorrectos, y la estrategia no hace la tolerancia a fallas. Luego, el error de excepción de programa causado por los datos incorrectos hace que el programa se detenga (el concepto de tolerancia a fallas ya se introdujo en los artículos anteriores).

    Aquí enumero varios mensajes de error de las interfaces que hacen solicitudes de red:

    • Tiempo de espera de la red

      img

      Uno de los mensajes de error que a menudo encuentran los principiantes es causado por el uso de un dispositivo de red doméstica (PC o servidores domésticos).

    • Error de HTTP 429

      img

      Es uno de los mensajes de error clásicos; la razón es que una interfaz de plataforma se llama con demasiada frecuencia, superando el límite de frecuencia de la plataforma. (mencionado en los artículos anteriores). Algunos estudiantes nuevos pueden decir que el error no se plantearía si solicitan claves API de varias plataformas más o varias cuentas de plataforma más. Necesitamos saber que el límite de frecuencia de acceso a las interfaces por plataformas generalmente se basa en direcciones IP. En pocas palabras, siempre y cuando todas las solicitudes enviadas desde una dirección IP se cuenten en la dirección, el servidor de la plataforma negará el acceso a la IP, si el número de solicitudes excede el límite.

    • Error del servicio de interfaz de plataforma

      El tiempo de espera y los errores 429 mencionados anteriormente son errores en la capa de red. Si hay un problema en la capa del servicio de interfaz de la plataforma, también se reportará un error. Por ejemplo, quiero obtener las cotizaciones del mercado al contado, pero configuro un par de operaciones no existente. Lo pruebo en la herramienta de depuración de la plataforma FMZ. La herramienta de depuración es una herramienta de prueba muy conveniente, que es muy adecuada para la prueba real de bot de llamadas de funciones y adquisición de datos.

      img

      El resultado de la ejecución de la herramienta de depuración; no hay diferencia entre la ejecución de la herramienta de depuración y la ejecución del bot.img

      Huobi	error 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}
      

      El mensaje de error aquí significa que el par de operaciones es inválido (ver aquí:"err-msg":"invalid symbol") y de la Comisión). Por ejemplo, hay muchos errores relacionados con el servicio. Por ejemplo, al establecer apalancamiento, algunas plataformas no admiten valores de apalancamiento con decimales. Si un valor de apalancamiento tiene decimales, también causará un error en la llamada de la interfaz.

    Enumere una llamada de interfaz que no genere una solicitud de red:

    • Código del contrato de futuros establecidos Algunas interfaces solo establecen algunas variables globales en el sistema y no realizan solicitudes de red. Por ejemplo:

      img

      Sin embargo, si los parámetros se pasan o se escriben incorrectamente, también se reportarán errores.

      img

    No importa qué tipo de error sea, el mensaje de error que se muestra es la información clave para encontrar el problema, es decir, puede distinguir el problema del mensaje de error. Puede usar una herramienta de traducción para traducir la información de error en el idioma que puede leer, para extraer las palabras clave."err-msg":"invalid symbol"Probablemente usted puede saber que el error es causado por la configuración incorrecta del par de negociación, para el símbolo por lo general representa el código de negociación y el par de negociación en inglés. Para los mensajes de error, cerraremos la discusión aquí. Tenemos un post donde se recogen las preguntas frecuentes y se actualizarán constantemente, para buscar:https://www.fmz.com/bbs-topic/1427.

Sistema de pruebas de retroceso

El sistema de backtest también es el punto clave de una herramienta cuantitativa. El sistema de backtest puede probar fácilmente el prototipo de una estrategia, y inicialmente comprobar los posibles errores y problemas lógicos en la estrategia, pero el sistema de backtest necesita ser visto racionalmente.

La siguiente es una breve descripción del sistema de backtest en la plataforma FMZ desde el nivel de los diferentes lenguajes de estrategia soportados por FMZ. (Algunas introducciones del sistema de backtest se mencionaron en los artículos anteriores.)

  • JavaScript también

    La prueba de retroceso se realiza en el navegador, y utiliza los recursos de hardware locales.

  • Python

    En el backtest en un docker, puede elegir a qué docker asignar (ya sea el docker desplegado por usted mismo, o el docker público de la plataforma FMZ). En vista de la gran carga del docker público en la plataforma FMZ, se recomienda usar el backtest del docker local (Eso también será más rápido. En el backtest del docker público, cuando está sobrecargado, algunas tareas de backtest se cancelarán, con el resultado de la interrupción del backtest).

  • C++

    A diferencia de los lenguajes de scripting, las estrategias de lenguaje C++ necesitan ser compiladas y luego ejecutadas. La estrategia de lenguaje C++ se compilará primero en la plataforma FMZ (servidor) (si hay un problema con la escritura del código, la compilación puede no pasar, y un mensaje de error será solicitado directamente).

  • El tamaño de la lengua

    La capa subyacente es implementada por JavaScript, y la backtest también se realiza en el navegador.

  • Visualización

    La capa inferior está implementada por JavaScript, y el backtest también se realiza en el navegador

El sistema de backtest de la plataforma de comercio de FMZ Quant tiene dos modos de backtest (sin importar en qué idioma esté escrita una estrategia, el modo de backtest es un ajuste del sistema de backtest, y las opciones de ajuste son las mismas para todos los idiomas compatibles en FMZ).

img

Para la instrucción del sistema de backtest, puede consultar la parte relacionada del tutorial de escritura de estrategias en la plataforma FMZ:

https://www.fmz.com/bbs-topic/9091

    1. Prueba posterior del nivel de simulación El backtest de nivel de simulación, en términos generales, es generar los datos de precios de los nodos de tiempo sucesivos basados en datos de la línea K de manera simuladora.
    There are the highest, the lowest, open and close prices in one bar, which forms a price structure. Within the time range represented by the K-line, the prices are all in the price structure. Therefore, as long as the generated price is within the K-line structure of the four prices, the simulated price is reasonable.  
    

    Al igual que la simulación que se muestra en la siguiente imagen:img

    Claro, es un poco más complicado que lo que se muestra en la imagen para realizar la simulación en el sistema de backtest, que no se discutirá más aquí. Después de conocer el principio, es necesario prestar atención a los inconvenientes de la prueba de retroceso de nivel de simulación. Aunque la prueba de retroceso de nivel de simulación es muy rápida (porque los precios generados por la simulación no son precios reales segundo a segundo liberados sucesivamente). Sin embargo, si la estrategia coincide con elTendencia de cambio de la tick simulada, la estrategia funcionará excelentemente (pero en realidad, el precio puede no cambiar con la tendencia, aunque el precio esté dentro de la estructura de la barra de la línea K). La línea K utilizada para generar los datos de tick simulados aquí se llama la línea K inferior, y el período de la línea K se llamael período de la línea K inferior, que aparece en la página de configuración de la estrategia como la siguiente imagen:

    img

    Aquí establezco 1 minuto, lo que significa usar los datos de la línea K con un período de 1 minuto como fuente de datos para generar los datos de tick simulados.

    Hay un punto más que, para una estrategia de alta frecuencia, la prueba de retroceso a nivel de simulación obviamente no es apropiada, pero, para una estrategia de tendencia, la prueba de retroceso a nivel de simulación puede, en cierta medida, mostrar el rendimiento de la estrategia.

    1. Prueba de retroceso del nivel real del mercado Después de hablar sobre el nivel de simulación, hablemos sobre el nivel real del mercado. En términos generales, la prueba de retroceso del nivel real del mercado es liberar verdaderamente los datos de precios segundo por segundo en la prueba, y dejar que la estrategia retroceda el precio de cada segundo en el mercado. Este tipo de modo de prueba de retroceso puede probar algunas estrategias comerciales con alta frecuencia y obtener un resultado con un cierto valor de referencia. La desventaja es que la cantidad de datos de backtest a nivel del mercado real es demasiado grande, y no se puede probar en un amplio intervalo de tiempo (generalmente el intervalo de tiempo es inferior a 1 día).No hay necesidad de historial de operaciones(los datos del historial de las operaciones, y los datos de profundidad del mercado también tienen instantáneas segundo por segundo en el backtest de nivel de mercado real, por lo que la cantidad de datos de backtest de nivel de mercado real es enorme).

    img

¿Dónde está la fuente de datos del sistema de backtest de FMZ Quant? El sistema de backtest utiliza los datos del panel de control en la plataforma de FMZ por defecto. El panel de control de FMZ recopila automáticamente los datos del mercado de cada moneda en cada plataforma y los proporciona al sistema de backtest de la plataforma.

    1. Utilice los datos del panel de FMZ Se menciona en los artículos anteriores:El objetivo de la medida es reducir el riesgo de pérdida de mercado de los activos financieros.¿ Qué pasa? Los datos de backtest proporcionados por la plataforma solo admiten un número limitado de pares de operaciones. (los datos de backtest de todo el mercado y todas las monedas son de un número astronómico, y no es realista recopilarlos todos. La plataforma ha recopilado datos de mercado de plataformas y monedas convencionales).
    1. Utilizar los datos del origen de datos personalizado Puede seleccionar las opciones en la página de backtest para configurar un origen de datos personalizado. En pocas palabras, si usted tiene datos de una plataforma usted mismo, puede proporcionarlo al sistema de backtest en la plataforma FMZ para backtest, de acuerdo con los requisitos de formato de la plataforma FMZ.

    img

También hay algunas instrucciones sobre el origen de datos personalizados en la documentación de la API de FMZ:La información de los datos de los Estados miembros sobre las actividades de los Estados miembros en el ámbito de la protección del medio ambiente y la protección de la salud pública se incluye en el anexo II.

También hay algunos esquemas en el Digest en la plataforma FMZ. Los principiantes, que estén interesados en eso, pueden consultar esos esquemas y estudiarlos.

Estudia, prueba y piensa

No se puede hacer un comercio programado y cuantitativo sinestudiando, pruebasyPensamiento¿ Qué pasa? Es ineficiente pensar en preguntas desde la nada.búsqueda de informaciónEntonces...Prueba por ti mismo., yPiensa y analizaSi el problema no se resuelve, repita las acciones anteriores.

Pero, por lo general, cuando los principiantes encuentran problemas, se sentirán:

¡Oh, escribir estrategias programadas y cuantitativas es muy difícil! ¡Todavía estoy confundido, incluso yo lo he estado estudiando por un tiempo! ¡Sólo quiero rendirme antes de empezar! - ¿ Qué?

Comenzar con la plataforma FMZ es en realidad muy fácil y simple. En primer lugar, debe ser bueno en la búsqueda de información. Hay mucha información en Square, Forums y Digest en la plataforma de comercio de FMZ Quant.

img

Luego, está la capacidad operativa; usando el sistema de backtest y la herramienta de depuración puede hacer fácilmente una prueba. Esto no significa probar una estrategia completa. De hecho, si tienes completamente cero conceptos básicos, incluso puedes aprender los conceptos básicos de los programas JavaScript directamente en el sistema de backtest de FMZ Quant.

Este es el sitio web de tutoriales donde a menudo estudio JS:https://www.runoob.com/js/js-loop-for.html; el sitio web no se limita a JS, y todos los tipos de conocimientos de TI se pueden consultar y aprender aquí. Por ejemplo, no sé cómo usar la expresión regular de JS, ¿qué debo hacer? Por supuesto, busque la información primero, y luego pruebe!

Vi un ejemplo como este:imgSi quiero probarlo, puedo usar el sistema de backtest de FMZ para probarlo para su estudio.

Coloca una plataforma al azar en el sistema de pruebas.img

Prueba el siguiente código:

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, " Is it the email address? ", " Answer:", IsEmail(strEmailAddress1))
    
    var strEmailAddress2 = "123456789@qq.com"
    Log(strEmailAddress2, " Is it the email address? ", " Answer:", IsEmail(strEmailAddress2))
}

img

¡Qué maravillosa herramienta para estudiar! Por ejemplo, si quiero aprender a escribir la lógica del bucle del lenguaje JavaScript, y luego probarlo:

De acuerdo con la secuencia de una matriz, imprima cada elemento de una variable de matriz en un bucle:

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])
    }
}

img

¿Se siente motivado a aprender inmediatamente? De hecho, en FMZ, puedes aprender completamente los conceptos básicos de JavaScript probando operaciones en el sistema de backtest mientras ves los tutoriales de JavaScript. Después de que la sintaxis de JavaScript esté casi dominada, puedes entrar en la siguiente etapa, para usar realmente la interfaz de la plataforma para obtener datos y probar. También puedes usar elherramienta de depuraciónen FMZ para llevar a cabo pruebas de interfaz reales. Luego, necesitas pensar más, extraer inferencias de un caso, con pruebas, verificación y análisis comparativo, etc. Eso hace que aprender y comenzar sea muy rápido.


Más.