Marco estratégico y funciones de la API
En las estrategias escritas enJavaScript
, Python
ycpp
, elSleep()
En el comercio en vivo, se utiliza para controlar los intervalos de votación de la estrategia, y también controlar la frecuencia de solicitud de acceso a la interfaz API del intercambio.
function onTick(){
//Write strategy logic here, and it will be called constantly, such as printing ticker information
Log(exchange.GetTicker())
}
function main(){
while(true){
onTick()
// The function "Sleep" is mainly used to control the polling frequency of cryptocurrency strategies to prevent accessing the exchange API interafce too frequently
Sleep(60000)
}
}
def onTick():
Log(exchange.GetTicker())
def main():
while True:
onTick()
Sleep(60000)
void onTick() {
Log(exchange.GetTicker());
}
void main() {
while(true) {
onTick();
Sleep(60000);
}
}
Ejemplos básicos de estrategias de marco de criptomonedas:
function onTick(){
// It is just an example; for all the assets will be used to place orders fast during backtest or in live trading, do not implement the example in live trading
exchange.Buy(100, 1)
}
function main(){
while(true){
onTick()
// The pause period can be customized in millisecond (1 second = 1000 milliseconds)
Sleep(1000)
}
}
def onTick():
exchange.Buy(100, 1)
def main():
while True:
onTick()
Sleep(1000)
void onTick() {
exchange.Buy(100, 1);
}
void main() {
while(true) {
onTick();
Sleep(1000);
}
}
Tomemos el ejemplo más simple, si quiero colocar una orden de compra con un precio de 100 y una cantidad de 1 en el intercambio cada segundo, puedo escribirlo así:
A continuación se muestran las funciones de API comúnmente utilizadas en el desarrollo y diseño de estrategias.Manual de la API de la plataforma de negociación cuántica FMZ.
Función global
Nombre de la función |
Breve introducción |
Versión |
Devuelve el |
número de versión actual del sistema |
|
- ¿ Qué pasa? |
Función del sueño |
Parámetro es el valor de milisegundos para pausar |
|
Es virtual |
Determinar el |
En el entorno de ejecución, devuelve un valor verdadero para indicar un backtest
el medio ambiente.
¿Qué es eso?CorreosEnvía un correo electrónico.
¿Qué es eso?¿ Qué pasa?Es asíncrono.
La versión de laMail
la función.
¿Qué es eso?Seleccionar el filtro de errorErro de filtro
los registros, el parámetro es una cadena de expresiones regulares, los registros de errores
coinciden con esta expresión regular no se cargará en el registro
El sistema.
¿Qué es eso?- ¿ Qué pasa?Consigue el robot.
El proceso de identificación.
¿Qué es eso?Obtener el último errorConsigue el último.
Mensaje de error
¿Qué es eso?Obtener el comandoConsigue una estrategia.
Los comandos de interacción, la estrategia y la configuración de control de interacción pueden ser
Encuestado: [control de interacción]
¿Qué es eso?ObtenerMetaConsigue el valor de
Meta escrito al generar el código de registro de la estrategia.
¿Qué es eso?Marca el número.Se usa para el crudo
el acceso al enchufe.
¿Qué es eso?HttpQuery (cuestionario de búsqueda)Envía una solicitud HTTP.
¿Qué es eso?HttpQuery_Go es una aplicación de búsqueda de datos.Es asíncrono.
La versión de laHttpQuery
la función.
¿Qué es eso?CodificaciónEncriptación de datos.
la función.
¿Qué es eso?UnixNano tambiénTienes un nanosegundo.
las marcas de tiempo.
¿Qué es eso?UnixTienes que ir al segundo nivel.
las marcas de tiempo.
¿Qué es eso?¿ Qué haces?Consigo un sistema
información.
¿Qué es eso?El MD5Calcule el MD5.
¿Qué es eso?DBExec tambiénLa base de datos.
funciones que se pueden utilizar para ejecutar instrucciones SQL y realizar
operaciones de base de datos.
¿Qué es eso?UUIDGenerar el UUID.
¿Qué es eso?Loop de eventosEscucha los eventos.
y regresar después de cualquier websocket es legible o tareas concurrentes tales comoexchange.Go
, HttpQuery_Go
, etc. se completan, esta función
sólo está disponible para operaciones en vivo.
¿Qué es eso?_GEn el caso de los datos, los registros son muy pequeños.
Esta función implementa una función de diccionario global que se puede guardar.
estructura es una tabla KV, que se almacena en la base de datos local del docker
archivo permanentemente.
¿Qué es eso?- ¿ Qué pasa?El manipulador de sello de tiempo, convierte
una marca de tiempo de milisegundos o objeto de fecha en una cadena de tiempo.
¿Qué es eso?- ¿Qué es?Formatando un punto flotante
número, por ejemplo_N(3.1415, 2)
eliminará el valor de 3.1415 después
dos decimales, y la función devuelve 3.14
¿Qué es eso?_CPrueba de nuevo la función para
Tenga en cuenta que, por ejemplo, la tolerancia a fallas para
Elexchange.GetTicker
la función es_C(exchange.GetTicker)
y no_C(exchange.GetTicker())
|
| _CruzLa función de juicio cruzado,_Cross()
funcións valor de retorno es un número positivo indica
el período de la penetración ascendente, un número negativo indica el
El precio de la moneda de la Unión Europea es el precio de la moneda de la Unión Europea.
Es el mismo.
¿Qué es eso?JSONParseParsing JSON, que puede
correctamente analizar las cadenas JSON que contienen valores más grandes, se analizará más grande
los valores a un tipo de cadena.JSONParse()
función no es compatible
en el sistema de backtesting.
Funciones de registro
Nombre de la función |
Breve introducción |
Registro |
Registros de salida, soporte para configurar el color del texto de registro, soporte para configurar push, soporte para imprimir imágenes después de la codificación base64 |
Registro de ganancias |
Los datos de pérdidas y ganancias de salida, los valores de pérdidas y ganancias impresos y las curvas de rendimiento de gráficos basadas en los valores de pérdidas y ganancias |
LogProfitReset (Registro de ganancias) |
Vaciar elLogProfit Resultados de la función todos los registros de ganancias, gráficos de ganancias |
Registro de estado |
Información de salida en la barra de estado, soporte para diseñar controles de botones en la barra de estado, soporte para la salida de formularios |
Habilitar el registro |
Activar o desactivar el registro de información de pedidos |
Gráfico |
Funciones de gráficos, basadas en la biblioteca de gráficos Highcharts/Highstocks |
Los resultados de las evaluaciones |
Función de dibujo de estilo de lenguaje Pine, que se utiliza para dibujar personalizado en el tiempo de ejecución de la estrategia utilizando un estilo de dibujo de lenguaje similar a Pine |
LogReset (Regreso de registro) |
Limpiar registros, soporte para retener un cierto número de registros recientes a través de la configuración de parámetros |
LogVacuo |
Recuperar recursos de SQLite para recuperar el espacio de almacenamiento ocupado por SQLite al eliminar datos después de borrar el registro llamando elLogReset() Función |
console.log |
Información de depuración de salida en la columna Información de depuración de la página de negociación en vivo |
console.error |
La información de error se muestra en la columna Información de depuración de la página de operaciones en vivo |
Funciones del ticker
Funciones de las transacciones
Nombre de la función |
Breve introducción |
exchange.Buy |
Envíe una orden de compra, los contratos de futuros deben prestar atención a que la dirección de la transacción se establezca correctamente, si la dirección de la transacción y la función de la transacción no coinciden, se reportará el error! |
exchange.Sell |
Enviar órdenes de venta, contratos de futuros cuando la colocación de órdenes debe prestar atención a la dirección de la transacción se establece correctamente, si la dirección de la transacción y la función de la transacción no coinciden, se informará de un error |
exchange.CreateOrder |
Enviar una orden y especificar el tipo de transacción, dirección de la transacción, precio y cantidad a través de parámetros |
exchange.CancelOrder |
Cancelar la orden |
exchange.GetOrder |
Obtener la información del pedido, la estructura de datos esEl ordenestructura |
exchange.GetOrders |
Obtener pedidos sin completar con la estructura de datosEl ordenmatriz de estructuras (lista) |
exchange.GetHistoryOrders |
Obtener las órdenes históricas del par de operaciones y el contrato actuales; soporte para especificar productos comerciales específicos |
exchange.SetPrecision |
Establezca la precisión del precio y la cantidad de pedido del objeto de intercambio, después de establecer el sistema ignorará automáticamente la redundancia de datos. |
exchange.SetRate |
Establecer el tipo de cambio |
exchange.IO |
Para otras llamadas de interfaz relacionadas con objetos de intercambio |
exchange.Log |
Producción, registro de registros de transacciones y no realizar órdenes |
exchange.Encode |
cálculo de cifrado de la firma |
exchange.Go |
Funciones de soporte asíncrono con múltiples hilos |
exchange.GetAccount |
Obtener información de la cuenta |
exchange.GetAssets |
Solicitar información sobre el activo de la cuenta de cambio |
exchange.GetName |
Obtener el nombre del objeto de intercambio |
exchange.GetLabel |
Obtener la etiqueta del objeto de intercambio |
exchange.GetCurrency |
Obtener el par de operaciones actual |
exchange.SetCurrency |
Cambiar de par de operaciones |
exchange.GetQuoteCurrency |
Obtener el nombre de la moneda del par de operaciones actual |
Funciones futuras
Nombre de la función |
Breve introducción |
[intercambio.GetPositions ((/guía de sintaxis#fun_exchange.getpositions) ] |
Obtener posiciones de futuros con la estructura de datosPosiciónmatriz de estructuras (lista) |
exchange.SetMarginLevel |
Establecer el apalancamiento |
exchange.SetDirection |
Función utilizada para establecer elexchange.Buyfunción,exchange.SellFunción para ejecutar la dirección de la orden del contrato de futuros |
exchange.SetContractType |
Establecer el código del contrato, por ejemplo:exchange.SetContractType("swap") función establece el código del contrato aswap , que establece que el contrato para la operación actual es un contrato perpetuo |
exchange.GetContractType |
Obtener el código del contrato de conjunto actual |
exchange.GetFundings |
Obtener los datos actuales de los futuros de cambio de contratos perpetuos de financiación de la tasa |
Funciones de red
Múltiples hilos de JavaScript
La plataforma de negociación de FMZ Quant realmente admite la función de múltiples hilos de laJavaScript
La estrategia de lenguaje desde abajo del sistema, y pone en práctica los siguientes objetivos:
Objetos |
Direcciones |
Las observaciones |
el hilo |
Objeto global con múltiples hilos |
Funciones de los miembros:Thread , getThread , mainThread , etc. |
El hilo |
Objeto de hilo |
Funciones de los miembros:peekMessage , postMessage , join , etc. |
Enlace de hilo |
Objeto de bloqueo de hilo |
Funciones de los miembros:acquire , release Se pueden pasar al entorno de hilo como parámetros de la función de ejecución de hilo. |
Enlace Evento |
Objeto de evento |
Funciones de los miembros:set , clear , wait , isSet Se pueden pasar al entorno de hilo como un parámetro de la función de ejecución de hilo. |
ThreadCondition (Condición del hilo) |
Objeto de condición |
Funciones de los miembros:notify , notifyAll , wait , acquire , release Se pueden pasar al entorno de hilo como un parámetro de la función de ejecución de hilo. |
ThreadDict es el nombre de la serie |
Objeto del diccionario |
Funciones de los miembros:get , set Se pueden pasar al entorno de hilo como parámetros de la función de ejecución de hilo. |
Manual de sintaxis de la plataforma de negociación cuántica FMZ:Múltiples hilos de JavaScript
Web3
Biblioteca de indicadores de TA
Nombre de la función |
Breve introducción |
TA.MACD |
Calcular el indicador promedio de divergencia suavizada exponencial |
TA.KDJ |
Cálculo de los indicadores estocásticos |
TA.RSI |
Calcular el indicador de resistencia |
TA.ATR |
Calcular el indicador medio de volatilidad verdadera |
TA.OBV |
Cálculo de los indicadores de marea energética |
TA.MA |
Cálculo de los indicadores de la media móvil |
TA.EMA |
Cálculo de los indicadores de las medias exponenciales |
TA.BOLL |
Calcular el indicador de la banda de Bollinger |
TA.Alligator |
Calcule el indicador de la línea del cocodrilo |
TA.CMF |
Cálculo del indicador de flujo de caja de Chaikin |
TA.Highest |
Calcular el precio máximo del período |
TA.Lowest |
Calcular el precio mínimo del período |
TA.SMA |
Calcular los indicadores de la media móvil simple |
Talib Indicador Biblioteca
La biblioteca de indicadores talib tiene numerosos indicadores comerciales, tales como:talib.CDL2CROWSPuedes saltar al manual de sintaxis para más detalles.
Funciones de entrada de la estrategia
Librerías de plantillas