Resumen de las preguntas frecuentes (Actualización...)

El autor:- ¿ Por qué?, Creado: 2023-07-13 14:44:41, Actualizado: 2024-02-05 20:04:06

[TOC] ¿Qué quieres decir?

img

Resumen de las preguntas frecuentes (Actualización...)

  • Busque en FAQ para ver fácilmente. ¿Cómo buscar una palabra clave en las publicaciones? UtilizaciónCtrl + fpara abrir la página y buscar; introduzca una palabra clave, por ejemplo: docker. Luego se buscará la ubicación en la página con la palabra docker.

  • Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • - ¿ Qué es eso?

    img

Interfaz de la API

  • ¿ Por qué?Comprar un precioyVender un precioobtenido porGetTickery los obtenidos porGetDepth¿Son diferentes?

    Los datos deGetTickeryGetDepthLos datos obtenidos por el sistema de información de la red de trenes de transporte de pasajeros pueden no ser obtenidos al mismo tiempo.GetTickerserá un poco más rápido, para los datos es menor que los datos obtenidos porGetDepth.

  • exchang.GetOrdersObtiene las órdenes inacabadas, así que, ¿dónde conseguir las órdenes ejecutadas?

    Hay otra API para consultar órdenes, es decir,exchange.GetOrderSe consultan órdenes de todo tipo, segúnIDIntroduzca el ordenIDPor lo tanto, para obtener órdenes ejecutadas, es necesario ver si las plataformas proporcionan este tipo de interfaces; las interfaces proporcionadas por cada plataforma son muy diferentes.

  • En elJavaScriptestrategias, el resultado de la cadena de tiempo conversión a la marca de tiempo es incorrecto.

    Tienes que tener en cuenta la zona horaria en la configuración de tiempo del sistema.

    img

  • ¿Por qué el precio de apertura y el precio de cierre que imprimí son los mismos?

    1.Quizás en el momento en que imprimió, no había realmente ninguna negociación en la plataforma, por lo que los precios de apertura, cierre, máximo y mínimo de BAR son los mismos todo el tiempo. 2.Necesita comprobar si el BAR que observó es el último BAR, ya que los precios de apertura, cierre, más alto y más bajo del último BAR son los mismos.

  • Errores de verificación del tiempo con el servidor, tales comoSignature not valid:Invalid submission time or incorrect time format

    Este error es el problema de los viejos sistemas operativos comowindows2000/2003/XP, por favor, consulte:

https://support.microsoft.com/en-us/help/821893/the-system-clock-may-run-fast-when-you-use-the-acpi-power-management-t

Le sugerimos que useLinuxservidor, o puede instalar software de sincronización de tiempo en estoswindowslos sistemas en los que se produzca el error, para sincronizar el tiempo a alta frecuencia y evitar que se produzca el error de verificación del tiempo.

  • ¿Por qué hay una diferencia entre los valores calculados porATR (TR) de Mylanguage y las calculadas porTA/talib¿En la biblioteca?

La razón es que el método de cálculo de los indicadores de Mylanguage es inconsistente con el algoritmo subyacente deTA/talibambas son correctas, pero los algoritmos son diferentes.MACDAlgunos usan uno.DIF-DEA, y algunos usan dos vecesDIF-DEA, que ambos son correctos.

  • ¿Qué representa, si el nombre de la plataforma esFutures_Esunny?

    Representa el objeto de intercambio deProtocolo de Esunny, que puede ser devuelto por la funciónexchange.GetName()¿ Qué pasa? Actualmente, la estación internacional de FMZ solo admite negocios de criptomonedas.https://www.fmz.cn.

    • Mylanguage se refiere a los datos en varios períodos, después de#EXPORTTEST...#ENDdeclaró las variables en la referencia del bloque de código de varios períodos.REFCuando se utiliza la referencia en la estrategia, los datos se referenciarán de acuerdo con el período actual, que es diferente de lo que se esperaba.

    Los datos de varios períodos que necesite se procesarán en#EXPORTTEST...#END, para que puedas usarlo directamente externamente.

  • No encuentro la documentación de la API de FMZ.

    Puede ingresar directamente la dirección de la página:https://www.fmz.com/api, o haga clic en el enlace de la siguiente imagen:

    img

  • ¿ Por qué?MACDCalculado por FMZ es diferente de la calculada por plataformas?

    Al comparar, es necesario prestar atención a si los períodos de la línea K son los mismos, si elMACDLos parámetros del indicador son los mismos, los períodos de tiempo son los mismos, y los símbolos son los mismos.MACD; algunos sonDIF-DEA, y algunos son2*(DIF-DEA); DIFyDEAdebe ser consistente.

  • ¿Qué se conecta al número de línea K obtenido, cuando se obtienen los datos de línea K de la historia?

    Cuando se accede a laexchange.GetRecordsEn este caso, el docker llamará a la interfaz para obtener los datos del historial de operaciones de la plataforma cuando la estrategia llame.exchange.GetRecords. La interfaz de datos sintetiza la K-línea de acuerdo con el historial de operaciones). Las K-líneas recibidas por el docker se acumularán continuamente juntas, y es necesario acceder a laexchange.GetRecordsInterfaz con una cierta frecuencia, de lo contrario, la continuidad de los datos puede verse afectada.

  • Me parece que llamando a la funciónexchange.BuySólo las devolucionesIDen la documentación de la API, pero ¿por qué devuelve tanta información cuando opero?

    Las funciones que pueden generar la exportación de registros en las funciones de la API FMZ, tales comoLog, exchange.Buy, exchange.CancelOrder, etc., todos pueden ser seguidos por algunos parámetros adicionales después de los parámetros necesarios.exchange.CancelOrder(orders[i].Id, orders[j])Además, exporta la información del pedido al cancelarorders[j].

  • ¿Cómo ejecutar WeChat Push mensaje en un bot?

    WeChat push sólo es válido en bots; añadir'@'al final de laLogLa información impresa de la función, y luego laLogpuede ser empujado; puede encontrar los detalles en el documento API en:https://www.fmz.com/api#LogActualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn¿ Qué pasa? El empuje de WeChat solo se admite en la estación doméstica de FMZ.

  • ¿Pueden los futuros de materias primas utilizar contratos principales continuos y contratos de índice?

    Apoya los principales contratos continuos y contratos de índice de futuros de materias primas. Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • var records = exchange.GetRecords(PERIOD_D1)¿Qué debo escribir si quiero obtener el contrato específico diario datos K-line, tales como los datos K-line de RB o I?

    Deberías ponercódigo del contratoEn el caso de los contratos de trabajo, el código de contrato debe ser establecido una vez antes de obtener el TAQ (al menos una vez desde el comienzo del programa).SetContractType("rb1805"), Establecer el contrato operado actual arb1805Llame de nuevo a la API que obtiene TAQ, puede obtener los datos de TAQ del contrato rb1805. Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • ¿Cómo escribir el código del contrato de futuros de materias primas?

    Puede consultar la documentación de la API de FMZ. Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • ¿ Qué quieres?exchange.GetAccount¿Es más conveniente para los usuarios usarlo de esta manera? ¿Por qué no lo hace el funcionario de FMZ? ¿Por qué no lo hace el funcionario de FMZ?

    Habrá fallas que requieren que los usuarios hagan tolerancia a fallos. La capa subyacente de FMZ no procesa datos, y los datos devueltos a los usuarios son datos sin procesar. El método o lógica de tolerancia a fallos específico está formulado por la estrategia específica. Porque si se procesa, puede afectar a la decisión de los usuarios, y la decisión será procesada por la estrategia, que se refiere específicamente ainformación de error de filtroo bienIntentar de nuevoy otros métodos de procesamiento.

  • ¿Cuál es la unidad del volumen de pedidos del contrato OKEX? ¿Es el importe de la moneda o el importe del contrato?

    El volumen de pedidos del contrato OKEX se calcula por el importe del contrato; por ejemplo,exchange.Buy(1000,1)significa la colocación de una orden al precio de 1000, con el importe del contrato de 1.

  • ¿Quiere decir que debo hacer órdenes de límite cuando llame?exchange.Sellyexchange.Buy¿En FMZ?

    Para obtener detalles, debe ver el primer parámetro enviado (el primer parámetro es el precio de la orden).-1Los significados del volumen de compra y el volumen de venta son de alguna manera diferentes (el segundo parámetro), y si el precio no es el mismo, el valor de la compra es el mismo que el de la venta.-1En la mayoría de las interfaces de órdenes de plataformas al contado, el volumen de orden de la orden de compra del mercado esimporte del activoNo lo escantidad de monedasEn las interfaces de orden de las plataformas de futuros de criptomonedas, el volumen de orden es generalmente un número entero del importe del contrato.

    Mira las interfaces de orden:https://www.fmz.com/api#exchange.buyprice-amount https://www.fmz.com/api#exchange.sellprice-amount

  • Función de correo

    Mail("smtp.qq.com", "xxxx@qq.com", "xxx", "xxx@qq.com", "test title", "test body")
    

    Acceso a los smtp de QQ203.205.232.7En la actualidad, la mayoría de los servidores en la nube están protegidos del puerto 25, excepto para los servidores físicos, los operadores no protegerán el puerto 25.

  • Parámetros de la plantilla para Pine language, Mylanguage: el número de períodos máximos de la variable afecta al cálculo del indicador

De forma predeterminada, el número máximo de periodos variable es 600, si el parámetro del indicador se establece demasiado grande, por ejemplo, calculando MA ((1000).

Reporte de errores

  • Mensaje de error emergente: SyntaxError: se espera el nombre de variable.

Compruebe el área de edición de código de estrategia para cualquier solicitud de error. Verifique si falta un nombre de variable al declarar una variable, como olvidarse de escribir el nombre en var name = a. También, compruebe si se utilizaron palabras clave de lenguaje de programación al establecer parámetros de interfaz de estrategia. No se recomienda usar palabras clave de lenguaje de programación comúnmente utilizadas como nombres de variables, ya que puede conducir a conflictos, incluso si el lenguaje de programación actual no tiene esa palabra clave específica.

  • BITMEX429 error,{"error":{"message":"Rate limit exceeded retry in 1seconds……"}}

    Cuando ves el error 429, significa que la frecuencia de acceso a una plataforma es demasiado alta.

  • Only support CTPel error

    Eso significa que llamaste a unCTP de futuros de materias primasinterfaz o biblioteca en unestrategia de criptomonedas¿ Qué pasa? Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • BittrexError en los bots:{"success":false,"message":"NOT_ALLOWED","result":null}

    Indica que la plataforma limita los privilegios.Bittrex, y comprobar si es necesario verificar la información, como el acuerdo del usuario.

  • Error de operación del bot:TypeError:value has no property at

    img

    Debido a que los errores reportados en el backtest y el bot son diferentes, este error no se puede detectar durante el backtest.

  • unable to open databaseel error

    imgSi el sistema esMac OSSistema, prestar atención a comprobar si es el problema de un permiso. O, podría ser el error causado por el espacio lleno del disco duro del dispositivo, que deshabilitó la creación del archivo de la base de datos de bots.

  • El error:do not support the function

    Se refiere a la situación en que el objeto de intercambio agregado durante la prueba de retroceso es una plataforma spot de criptomonedas, pero la función API de futuros se llama en el código.

  • El error:in SetCurrency OSError: exception: access violation reading 0x000000FCF25F0000

    En un futuro de criptomonedasPythonEn el caso de la estrategia, el sistema de backtest utiliza un docker privado, y el par de operaciones se cambia en el código, lo que hace que se reporte el error. La razón es que el sistema de backtest no admite backtest de futuros de criptomonedas para cambiar pares comerciales.

  • Error descifrado [Imagen]imgDebido a que la contraseña de la cuenta FMZ fue modificada, que hizo que la clave de API configurada no fuera válida, y planteó el error. Solución: configurar la plataforma API KEY de nuevo, detener y reiniciar el docker, y luego tratar de reiniciar el bot.

  • Pythonlos informes de las pruebas de retroceso locales del motorEOFerror.

    EOFEl error es el error al final de la prueba de retroceso.Pythonse apoya.

 # encoding: utf-8  

 '''backtest
 start: 2021-08-30 00:00:00
 end: 2022-09-05 00:00:00
 period: 1d
 basePeriod: 1h
 exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
 '''

 from fmz import *
 task = VCtx(__doc__)             # initialize backtest engine from __doc__  

 def main():  

     while not exchange.IO("status"):
         Sleep(1000)
     exchange.SetContractType("swap")
     
     while True:
         bars_1min = _C(exchange.GetRecords, PERIOD_M1)    # Get 1min K-line              
         print(len(bars_1min))
         _CDelay(2000)      

 # Calling the main function  

 try:
     main()
 except:
     print(task.Join(False))
  • Mylanguage implica un error muy oculto en el cálculo del período, y el valor calculado puede ser N/A, como en el siguiente ejemplo:

    img

    La razón es que el parámetro del período de cálculo excede el intervalo de datos, lo que resulta en el cálculo del valor N/A. Método de procesamiento:

    img

  • Se produjo un error en Mylanguage: error de análisis, y la estrategia solo tiene código simple, el número de líneas de error es muy largo, y no se puede encontrar la causa del error.

    Puede ser un error causado por el problema de las primeras plantillas de Mylanguage. Solución: 1. Exportar la estrategia como un archivo xml. 2. Crear una nueva estrategia Mylanguage vacía. 3. Importar el archivo xml en la estrategia vacía recién creada. 4. Agregar un bot para probar.

  • El error:fatal error:unexpected signal during runtime execution...go routine 11[syscall,locked to thread]

    Compruebe si la estrategia escrita enC++utiliza un puntero nulo, y sugiero que utilice la prueba de retroceso de modo tolerante a fallas para detectar.

    img

  • Error de llamadaexchange.SetMarginLevel(10): Futures_OP 0:403:{"error":{"message":"Access Denied","name":"HTTPError"}}

    Compruebe si los privilegios relacionados de laAPI KEYaplicadas por la plataforma están encendidas.

  • Error de prueba de retroceso:symbol not set

    Esto se debe a que usted no ha establecido el contrato en el código durante la backtest de la plataforma de futuros; puede referirse a laexchange.SetContractTypefunción en la documentación de la API.

  • Error en el sistemaERR_INVALID_POSITION

    Si el sistema de backtest reporta el error, generalmente es un error causado por errores de escritura de estrategia. Si intenta colocar una orden para cerrar una posición cuando no hay posición o el número de posiciones es insuficiente, se reportará el error. Compruebe si hay alguna congelación de posición causada por órdenes no completadas.

  • Error en el sistemaERR_INVALID_ORDERSi el sistema de backtest reporta el error, generalmente es un error causado por errores en la redacción de la estrategia. Debe tener en cuenta verificar el precio del pedido (los futuros de criptomonedas en el sistema de backtest no admiten temporalmente órdenes de mercado), si el volumen del pedido es 0, un número negativo o una fracción decimal (el volumen del pedido de contratos de futuros se calcula por el monto del contrato, que es un número entero).

  • Error en el sistemaERR_INSUFFICIENT_ASSET

    Si el backtest reporta el error, normalmente indica que el monto del activo disponible ya no es suficiente para realizar el pedido actual.

  • Binding Error:Cannot passnon-string to std::stringInformación de error

    En los códigos de estrategia, el error generalmente es causado por la declaración errónea de un nombre de atributo (usando un atributo no definido).

  • Error en el sistema{"status":6004,"msg":"timestamp is out of range"}

    El error significa que la marca de tiempo del servidor está fuera del rango, y usted necesita actualizar el tiempo del servidor, sin gran desviación.

  • Error en el sistematimeout

    El error es un error de tiempo de espera, que indica un error reportado debido a que no se obtienen los datos de respuesta de la interfaz de la plataforma durante un cierto período de tiempo después de acceder a la interfaz de la plataforma.

  • Error en el bot de ejecución después de escribir la estrategia:syntax error invalid label

    Fuente del error:

    function main(){
        if(1){
            continue
        }
    }
    //That will cause the error during operation 
    

    continue¡La declaración debe usarse en el bucle!

  • El error:(CTP_T@9999)Error:140CTP:change the password when first log in, and please log in again after changing¿Qué contraseña se ha modificado?

    Aquí se indica para modificarsimnowcontraseña de la cuenta; cuando utiliza una cuenta específica de la empresa de futuros para iniciar sesión, también debe modificar la contraseña para el primer inicio de sesión (una nueva cuenta tiene una contraseña inicial y no puede utilizar la cuenta sin modificar la contraseña inicial). Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • El error:400:{"error":{"message":"Nonce is not increasing.This nonce:1523891993165,last nonce:1523891993165","name":"HTTPError"}}

    Es unanonceerror de verificación, y la información de error relacionada connoncePuede intentar sincronizar la hora del sistema donde se encuentra el bot docker.

  • Error en el sistemaSecretkey decrypt failed

    img

    El error indica el fracaso del descifradoAPI KEYCompruebe si ha modificado la contraseña de la cuenta FMZ después de configurar elAPI KEYIntenta configurar elAPI KEYen la página Añadir plataforma de FMZ, reinicie el docker y ejecute el bot nuevamente para probar.

  • Posición abierta de futuros de materias primas Error:CTP: only close position

    Hay muchas razones por las que el relato muestra el estado decan only close position. Puede ser que la cuenta haya sido congelada (no se ha utilizado durante mucho tiempo, más de 1 año), o puede haber iniciado sesión en el canal equivocado (CTP tiene muchos asientos). Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • ¿Qué razón podría ser si el error:GetOrder(455284455):Error:invalid order id or order canceled.Siempre se levanta cuando llamo.exchange.Getorder?

    Significado literal: el pedido ha sido cancelado o el ID de pedido es inválido. Razón: en algunas plataformas, si cancela un pedido, la información del pedido no se mantendrá y se eliminará. Por lo tanto, cuando consulta el pedido enexchange.GetOrder, se informará del error, o el ID de pedido que solicita es incorrecto originalmente.

  • Error: límite de tasa, 429 Demasiadas solicitudes

    img

    rate limit, 429 Too Many Requestsindica que la frecuencia de acceso a una interfaz de plataforma es demasiado alta, por lo que debe reducir la frecuencia de acceso a la interfaz de plataforma.

  • Siempre sube.Invalid order price/amounten el bot y backtest

    Este tipo de errores son causados por el precio incorrecto y el volumen de orden pasado en al llamar a la función de ordenexchange.Buyo bienexchange.SellPara...volumen de orden negativo, 0y otros métodos de detección de errores: puede llamarLogpara exportar el parámetro de precio o el parámetro de volumen que se debe pasar antes de realizar una orden porexchange.Buyo bienexchange.Sell, para determinar el problema.

  • ¿Qué tipo de error esGetOrders:400:{"code":-1121,"msg":"Invalid symbol."}?

    El error significa:Pares de negociación no válidosNecesitas comprobar si la configuración del par comercial está mal.

  • ¿Qué significa si hay algunos códigos de error cuando los registros de bots informan un error?

    Puede ver las explicaciones de los códigos de error devueltos por las diferentes interfaces de la plataforma en la documentación API de esas plataformas.

El bot

  • Tiempo de impresión de la curva de rendimiento del mercado real de Pine language y Mylanguage Imprima regularmente de acuerdo con los ajustes de los parámetros de la plantilla Pine language/Mylanguage, e imprima cuando la estrategia esté completamente cerrada.

  • El bot de Mylanguage imprime el número de líneas de activación de la señal, pero no hay ninguna operación de orden.

    Puede ser que las configuraciones de parámetros de la plantilla Mylanguage sean inapropiadas, como precisión, volumen mínimo de pedidos y otros parámetros. La razón es que la capa de activación de la señal fue juzgada con éxito, y en la capa de ejecución de operaciones, se juzgó que la orden no podía colocarse debido a algunos problemas con los parámetros, y no se realizó ninguna orden. Puedes consultar las publicaciones relacionadas con Mylanaguage:https://www.fmz.com/bbs-topic/9788 https://www.fmz.com/bbs-topic/9791

  • ¿Por qué el bot no puede recibir la señal de solicitud cuando ya he establecido alerta de URL de webhook en Tradingview?

    Compruebe si la API KEY es correcta en la dirección de la url de webhook. La API KEY aquí se refiere a la API KEY extendida de FMZ, que se establece en la configuración de la cuenta en la esquina superior derecha de FMZ. Compruebe si el ID de bot en la url de webhook está rellenado correctamente. Compruebe si los privilegios de la API KEY extendida de FMZ están dados correctamente. Los privilegios están separados por comas en inglés. El valor predeterminado es *, lo que significa todos los privilegios. No escriba los nombres de las funciones con los privilegios directamente después de *.

  • ¿Por qué los símbolos de los pares de divisas están limitados en la configuración de pares de plataformas de negociación al agregar un bot?

    Puede configurar el control personalizado de los pares comerciales (sólo se puede configurar en bots; para los símbolos en el centro de datos de backtest son limitados, no se puede configurar en el backtest), como sigue:

    img

  • ¿Por qué no se pueden obtener tickers cuando ejecuto FutuOpenD en el servidor, y se pueden obtener los tickers en el dispositivo local?

    Necesitas comprobar si la dirección IP del servidor está en el extranjero, porque FutuOpenD tiene límites en direcciones IP en el extranjero. Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • No hay ninguna acción cuando se opera la estrategia Mylanguage, y sólo actualiza el TAQ al principio.

    Compruebe si utilizó el modelo de precio de cierre, que puede comprobarse mediante los parámetros de la plantilla de estrategia Mylanguage.

  • Futures de materias primas posición cerrada de ayer problema

    En CTP, solo la Bolsa de Futuros de Shanghai se puede utilizar para cerrar posiciones de hoy y posiciones de ayer.
    El backtest no distinguePosiciones de hoydesdeLas posiciones de ayer, por lo que no puede especificar el cierre de las posiciones de hoy o de ayer. Algunos símbolos en bots, comoIF, tiene el valor predeterminado de que si hay posiciones hoy, cerrará las posiciones hoy primero. En esta ocasión, no se puede especificar, y sólo se puede cerrar las posiciones hoy primero. Por lo tanto, la información de posición de hoy y ayer las posiciones se fusionan en una. Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

  • ¿Por qué la marca de tiempo de un Bar enBITMEX¿Los datos de línea K tienen un período más que el de la misma ubicación en otros datos de línea K de la plataforma?

    La razón esBITMEXtoma la hora final de la barra actual como la marca de tiempo de la línea K (algunos períodos de línea K no son compatibles conBITMEXPor ejemplo, la figura derecha:

    img

  • En la estrategia de futuros de materias primas, elProfiten los datos devueltos por la funciónexchange.GetPositiones diferente de las ganancias y pérdidas variables calculadas?

    Consulte la documentación de las API:https://www.fmz.com/api#exchange.getposition. ProfitEn elCTP protocolse define comoganancias y pérdidas de mercado, que representa el beneficio y la pérdida de su posición actual en relación con el precio de liquidación del día de negociación anterior. Actualmente FMZ International Station solo admite negocios de criptomonedas.https://www.fmz.cn.

Sistema de pruebas de retroceso

  • Error reportado por el sistema de backtesting: Error reportado por el sistema de backtesting:
Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.

Compruebe si se está utilizando la función Fuente de datos personalizada y si los datos proporcionados por el servicio de fuente de datos personalizada son correctos.

  • ¿Cómo se pagan las tasas de los participantes/fabricantes de las pruebas? Escenarios de prueba para las tasas de toma/fabricación.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-02-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var t = exchange.GetTicker()
    exchange.Buy(t.Last - 10, 100/(t.Last - 10))
  
    while(1){
        t = exchange.GetTicker()
        Sleep(1000)
    }
}
  • En el backtest de futuros de Binance yBITMEX, ¿se calcula la tasa de financiación en la curva de pérdidas y ganancias generada por el sistema de backtest?

    La tasa de financiación se calcula en la curva de pérdidas y ganancias generada por el sistema de backtest.

  • No se puede hacer clic en el botón Backtest.

    Debe comprobar si el proxy está activado, lo que influirá en la finalización de la carga de los archivos en la página de Backtest; comprobar si hay alguna información de error en la consola de la página.

  • En elEl verdadero tickbacktest, ¿por qué hay un límite de 50MB?

    El backtest de nivel de mercado real indica que en el Tick real, el TAQ se registra segundo a segundo. Además, hay instantáneas de mercado y datos de flujo de pedidos, que son de gran volumen, por lo que solo se admite un volumen de datos de 50 MB. Es decir, el rango máximo de tiempo del nivel de mercado real es de varias horas, y el tiempo de backtest no se puede extender.

  • ¿Por qué no funcionó cuando modificé los parámetros de las tarifas en el sistema de backtest?

    img

    En el sistema de backtest, cuando restablece los parámetros de tarifa, serán válidos después de eliminar el par de plataformas-negociación anterior y agregar el par de plataformas-negociación nuevamente; el par de plataformas-negociación añadido anteriormente no puede modificarse mediante el control en la página.

  • ¿Cómo hacer que el dibujo personalizado de backtest muestre más datos?

    Cuando usted dibuja un gráfico personalizado (por elChartEn el caso de las pruebas de retroceso, el volumen de datos del dibujo se relaciona con elgráficoEl parámetro de control es el número máximo de barras de un gráfico.chart.resetLa función se utiliza para borrar parte de los datos antiguos.

  • C++backtest no mostró nada, no hubo ningún error reportado ni registros, y nada en la página cambió después de que hice clic en el botón.

    Algunos errores deC++Por ejemplo: en los cálculos de indicadores, el número insuficiente de líneas K conduce a la comparación y al juicio deNANy tipo de número despuésNANse calcula, lo que causará el accidente del programa.

  • python¡El backtest está atascado!

    No se puede escribir la funciónSleepEn eltrydetección de errores, y la escritura en la imagen causará el atasco.

    img

  • En el backtest, ¿por qué solo hay varias opciones para la plataforma, y los símbolos para el par comercial también son limitados?

    Hay demasiados pares de operaciones en las plataformas, por lo que sólo unos pocos pares de operaciones representativos fueron seleccionados para la prueba en el sistema de backtest.Control de aduanaspara establecer los pares de negociación soportados por esas plataformas en bots.

  • ¿Por qué el backtest no soporta más pares comerciales?

    El sistema de backtest, por el momento, solo admite las monedas principales de algunas plataformas relativamente grandes, y algunas monedas aún no son compatibles. Si necesita probar una estrategia, puede reemplazar las monedas con otras monedas similares en la backtest. De hecho, excepto que las cotizaciones del mercado pueden verse afectadas, usar otras criptomonedas similares para backtestar la estrategia está bien. En pocas palabras, el sistema de backtest trata de apoyar pares comerciales principales, y la backtest no debe coincidir con un símbolo específico. Es decir, si la estrategia es efectiva, incluso si es una serie de cambios de cotización de mercado generados al azar con reglas de negociación, o las cotizaciones de mercado de otras monedas, debería haber beneficios básicamente positivos. Esta es la universalidad de una estrategia. Si solo puede coincidir con un período de historia o funcionar bien en cierto símbolo, entonces esta estrategia en realidad tiene riesgos o defectos potenciales.

  • En el sistema de backtest:Resultados y pérdidas de cierre, P&L de tenencia, Margen de interés, Rentabilidad estimada, USDT actualmente disponible

    P&L de cierre: Es el beneficio y pérdida acumulados de todas las operaciones abiertas y cerradas antes de la posición actual. P&L de tenencia: Es la ganancia y pérdida de la posición actual, si la posición actual no se mantiene, es 0, Margen: el importe del margen ocupado por la posición actual. Rendimiento estimado: La ganancia y pérdida generadas por el cierre de la posición actual al precio actual (hipotético) se suma a la ganancia y pérdida acumuladas de la posición cerrada para calcular el rendimiento estimado. En el caso de las entidades financieras, el valor de la inversión en efectivo se calcula en función de las posiciones que se abren.

  • Cálculo de la tasa de éxito en el sistema de backtest

    for (var i = 0; i < profits.length; i++) {
        if (i == 0) {
            if (profits[i][1] > 0) {
                winningResult++
            }
        } else {
            if (profits[i][1] > profits[i - 1][1]) {
                winningResult++
            }
        }
        if ((profits[i][1] + totalAssets) > maxAssets) {
            maxAssets = profits[i][1] + totalAssets
            maxAssetsTime = profits[i][0]
        }
        if (maxAssets > 0) {
            var drawDown = 1 - (profits[i][1] + totalAssets) / maxAssets
            if (drawDown > maxDrawdown) {
                maxDrawdown = drawDown
                maxDrawdownTime = profits[i][0]
                maxDrawdownStartTime = maxAssetsTime
            }
        }
    }
    

    Lo anterior es el algoritmo de tasa de ganancia, que se calcula de la siguiente manera: Después de que el sistema de backtest calcula regularmente la ganancia y pérdida flotantes, se calcula una curva de ganancias y pérdidas flotantes. Comience desde el primer punto para comparar con el siguiente punto. Si es mayor, se registrará como una ganancia, y si es menor, se registrará como una pérdida, y luego continúe la comparación con el siguiente punto.

El muelle

  • ¿Dónde está el video de enseñanza de despliegueLinux¿El muelle?

    Bilibili:https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • ¿Es necesario para detener el viejo cuando actualizar el docker, y borrar elrobotprograma, y ejecutarlo de nuevo?

    Puedes borrar directamente el viejorobotarchivo de programa sin detener el docker, luego descargar un nuevo paquete comprimido, descomprimir el nuevorobotEn este momento, el docker está actualizado, pero el bot en ejecución todavía usa la versión anterior en la memoria, y la versión más reciente se usará solo cuando el bot se reinicie.

  • Despliegue de Docker deLinuxel servidor

    Pasos para instalar un docker enLinux: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • Cuando se utilizascreenpara ejecutar el programa dockerrobot, -bash:screen:command not foundocurre, y el docker no puede ejecutarse.

    LinuxEl sistema no se instala.screensoftware, y la instalación general es suficiente.CentOSorden de instalación del sistema:yum install screen.

    El docker actual ya soportaSSHpara desconectar el interruptor para ejecutarse en segundo plano.screen, puede utilizar directamente el comando en elrobotdirectorio del programa docker:./robot -s node.fmz.com/xxxxxxx, y introduzca la contraseña de la cuenta FMZ; cuandoLogin OKSe muestra, significa que el despliegue es exitoso../robot -s node.fmz.com/xxxxxxxes el código de identificación único de cada cuenta FMZ, y simplemente ingrese el suyo propio (después de que la cuenta se inicie sesión, salte a la página docker, haga clic en Añadir docker a la página Añadir docker para ver); nota aquí no es sólo para ingresarxxxxxxx.

  • ¿Dónde está el registro del bot cuando un docker está ejecutando un bot?

    En elDB3archivo de base de datos en ellogsdirectorio donde se encuentra el programa docker, el nombre del archivo de la base de datos es eliddel bot, y la extensión esdb3.

  • En elLinuxSistema, uso./robot -lPara ver los nombres de las plataformas soportadas por el docker, ¿qué plataforma es elexchange¿Entre los nombres?

    El objeto de intercambio cuyonombreesexchangese refiere a la plataforma queProtocolo generalLos detalles del protocolo general:https://www.fmz.com/api#通用协议

  • La página del muelle no muestra los muelles en formato de lista.

    Si se añaden más de 5 puertos portuarios, aparecerá un control para mostrarlos en formato de lista.

    img

  • ¿Es normal que haya un docker no desplegado por mí mismo en la caja de combo del parámetro docker al crear un bot?

    El docker público proporcionado por FMZ es una herramienta de inicio rápido adicional para principiantes, por lo que los usuarios no necesitan implementar un docker al aprender, y es fácil para los principiantes comenzar. Sin embargo, se recomienda usar dockers privados para pruebas reales de bots. Después de todo, los recursos de hardware y las redes de los dockers públicos se comparten; la plataforma mantendrá estos dockers públicos de vez en cuando.

  • ¿Es la cadena de direcciones (./robot -s node.fmz.com/1234567¿Qué es lo que se puede hacer para que el sistema de navegación esté disponible exclusivamente para mí o para otros, cuando despliegue un docker?

    Esta dirección es la identificación de la dirección de cada usuario, y el valor de la/1234567parte de cada usuario es única para identificar al usuario. Al implementar un docker, haga clic en el botón Añadir docker enTablero de control-> haga clicAñadir un docker->Añadir una página de docker, y luego puedes ver esta dirección; copia y pega directamente y puedes usarla.

  • La variable ambiente del sistema donde se encuentra el docker ha añadidopython2.7, pero ¿por qué todavía se le pide que la variable de entorno no se puede encontrar?

    img

    ¿Cuándo?windowsEl sistema se instala por primera vezpython, es necesario establecer la variable de entorno y reiniciar para que sea válido.

Investigación

  • Error de EOF

    img

    La prueba de retroceso de Python se termina por la excepción EOF (porque a veces una estrategia puede ser un bucle infinito).

Función de la plataforma

  • ¿Cuántos bots puede ejecutar un docker?

    No hay límite en el número, dependiendo de la configuración del servidor y la complejidad de la estrategia. Específicamente, es necesario considerar si estos múltiples bots acceden a la misma interfaz de plataforma (teniendo en cuenta la frecuencia de las llamadas de interfaz, porque más bots significan una mayor frecuencia); generalmente 5 a 6 bots están bien.

  • Docker, Bot y otras explicaciones de conceptos básicos

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

  • El contenido de las páginas Bot y Docker desaparece

    Si el contenido del bot y la página docker han desaparecido, cuando el bot y el docker se ejecutan normalmente en el servidor, debe leer el mensaje de informe de error del navegador, para ver si el navegador tiene un complemento instalado, lo que causa el problema de contaminación de variables globales.

  • Para las estrategias oficiales de alquiler y alquiler de un servidor docker con un solo clic, ¿se renovará automáticamente la tarifa, siempre que el saldo de la cuenta FMZ sea suficiente?

    Las estrategias alquiladas no recargarán automáticamente las tarifas, y el alquiler de un docker con un solo clic se recargará automáticamente.

  • ¿Dónde está la función plantilla? Quiero separar algunas funciones en la plantilla, para que otras estrategias también puedan usarlas.

    La descripción enFMZ APIDocumentación:https://www.fmz.com/api#模板类库

  • ¿Tiene elwexAppplataforma de simulación de FMZ simulado bot sólo proporcionanBTC_USDT¿Cómo puedo personalizar otros pares comerciales?

    wexAppEl robot simulado solo admite unos pocos pares de operaciones tradicionales por el momento, y no todos los pares de operaciones son simulados.

  • Tengo un problema de llamadas concurrentes a la API extendida, es decir, un error de verificación annoce siempre se informa durante la concurrencia.

    Puedes crear múltiples plataformas FMZ extendidasAPI KEYs para solicitudes simultáneas.

  • ¿Los hilos de depuración creados en un docker registran el estado del registro cuando se utiliza la herramienta de depuración?

    Cuando se ejecuta la herramienta de depuración, si no se modifica nada por segunda vez, el objeto de intercambio creado antes se conservará y no se liberará.Modo de cambioo bienmodo de apalancamiento.

  • ¿Por qué cuando registré elwexAppSimulado plataforma y conectado, no había activos, tanto en la billetera y la sección de moneda?

    Después de registrarse, debe verificar su correo electrónico para activar su cuenta, y puede activar su cuenta en el centro personal.

  • La información del registro es relativamente larga y cortada, y al final mostró"... Pero necesito ver la estructura de los datos, ¿qué debo hacer?

    La solución consiste en utilizar elHerramienta de depuraciónen elTablero de control, y utilizar elreturnla declaración en la herramienta de depuración para devolver el contenido a mostrar, y la visualización del contenido no será truncada.

  • ¿Qué hacen las funciones que comienzan con$.En elJavaScript¿Qué significa estrategias?

    Las funciones con el comienzo de$.son funciones de exportación de plantillas, similares a las funciones de interfaz de módulos.https://www.fmz.com/api#模板类库

    Las funciones de exportación de lospythonLas estrategias se declaran conext.en el principio.

  • ¿Cómo dibujar líneas rectas en el gráfico de mercado del resultado de la prueba de retroceso?

    Hay dos tipos de gráficos que finalmente se muestran en el backtest: uno es generado por el sistema, que la estrategia no puede controlar.Chartfunción de la interfaz API FMZ en el código de estrategia.https://www.fmz.com/api#chart...

  • He borrado el validador de Google en mi teléfono por error, ¿cómo restablecer el validador de Google? En la página de configuración de la cuenta en la plataforma, no pude encontrar el lugar para restablecer por correo electrónico.

Puede iniciar sesión en la plataforma FMZ con otro navegador, y cuando necesite ingresar el código de verificación de Google, haga clic en Enable twofactor para saltar a la página para desvincular por correo electrónico.

Las demás

  • Plataforma de trabajoAPI KEYcontrol de seguridad

    ElAPI KEYFMZ no guarda la información de texto plano de la cuenta de la plataforma del usuario, y utilizaHttps protocol.

  • Asunto de seguridad estratégica

    Para eso, puede referirse a:https://www.fmz.com/bbs-topic/1657.

  • Sistema de facturación FMZ

    Normas de facturación para operaciones en vivo:

    1. La facturación se realiza una vez por hora para cada cuenta de negociación en vivo (0,05 USD / hora) y se basa en un período de uso de una hora.
    2. La interrupción y reinicio de la cuenta de negociación en vivo en el plazo de una hora no dará lugar a una facturación duplicada.
    3. Una cuenta de negociación en vivo que ya ha sido detenida no activará la facturación durante la próxima hora.
    4. Las cuentas de negociación en vivo recién creadas serán cobradas inmediatamente por una hora.

    img

    El tiempo de facturación mencionado se refiere al tiempo de procesamiento para las operaciones de facturación. Debido al tiempo requerido para estas operaciones de procesamiento, el tiempo de deducción puede retrasarse. Por ejemplo, si el tiempo de facturación actual es de 9:00, es posible que el tiempo de procesamiento para esta operación de facturación sea de 9:02 (como se muestra en la captura de pantalla). Esto se ajustará durante la próxima operación de facturación (el próximo tiempo de deducción será de 10:00, no una facturación anticipada).

  • La biblioteca talib maneja datos con una precisión limitada

    Si los datos son particularmente pequeños, se truncarán y finalmente se mostrarán como 0. Se refiere a:https://github.com/TA-Lib/ta-lib-python/issues/157


Más.