[TOC]

¿Cuál es la mayor dificultad para los principiantes en el trading cuantitativo y el trading programático? En términos generales, hay varios.
Con el desarrollo de la tecnología de IA, se pueden encontrar soluciones a los problemas mencionados hasta cierto punto. Recientemente popularChat GPTSe puede utilizar como herramienta para aprender, investigar y crear operaciones cuantitativas. Con la nueva actualización del editor de estrategias en la plataforma FMZ, también se ha conectado Chat GPT, lo que ha mejorado enormemente la productividad cuantitativa. Vamos a explorarlo juntos.Nuevas funciones del editor de estrategias FMZ!
Aunque las funciones de Chat GPT ya son muy potentes y su nivel de comprensión de las preguntas planteadas por los humanos ya es muy alto. Pero la respuesta que da sigue siendoCompletitud de la descripción del problema、Precisión de la descripciónFactores como la entrada y salida del usuario son muy sensibles. Si el escenario descrito o el contenido de la pregunta son inexactos, Chat GPT no podrá dar una respuesta perfecta. Por lo tanto, al usarlo para resolver algunos problemas, es necesario intentar expresarlo de forma correcta y completa.
A continuación, utilizaremos la función Chat GPT del editor de estrategias de la plataforma FMZ para resolver un problema de diseño de código. Inicie sesión en la plataforma FMZ y vaya a una página de edición de estrategias.

Utilice el menú de clic derecho en un espacio en blanco, seleccione la opción ChatGPT y haga clic para abrirla.Chat GPT,oUtilice ⌘K para invocar ChatGPT。
Si ahora soy un principiante en el trading cuantitativo, tengo un requisito: “Utilizar la línea K de un minuto para sintetizar los datos de la línea K de cualquier período”. Como soy principiante, mis habilidades de programación son débiles y realmente no puedo escribir un algoritmo de este tipo. En el pasado, solo podía buscar información y pedir ayuda a los expertos. Ahora, con Chat GPT, puedo pedirle la respuesta directamente. Por supuesto, como se mencionó anteriormente, describa directamente este requisito:“Utilice la línea K de un minuto para sintetizar datos de la línea K de cualquier período”. Es muy probable que GPT no le brinde una respuesta 100% utilizable y deberá describir el problema lo más completamente posible. Tomando este requisito como ejemplo, seguí ajustando mis preguntas y pregunté muchas veces antes de obtener la respuesta utilizable que quería. A continuación, describamos este requisito un poco más completamente:
在FMZ平台上调用exchange.GetRecords(60)函数可以获取一分钟K线数据,数据结构是:
[{
Time : 毫秒时间戳, // 周期的起始时间
Open : 1000,
High : 1500,
Low : 900,
Close : 1200,
Volume : 1000000
}, ...]
请设计一个算法,使用一分钟K线数据合成任意分钟的K线数据,对于可以整除60分钟的周期,需要从整点的0分开始统计,使用Javascript语言实现,
这个算法单独写成一个函数,测试在function main()函数中测试,使用$.PlotRecords(KLineData, "name")画图。
Después de llamar a ChatGPT, puede completar el contenido de la pregunta optimizada anterior.

ChatGPT comienza a funcionar.

Espera hasta que esté terminado.

a vecesChat GPTEnvuelva el código”Símbolo que indica en Markdown que el contenido incluido es código. Así que simplemente borramos la primera y la última línea. Porque la pregunta que le hice la uso$.PlotRecords(KLineData, “name”)`Dibujo, por lo que la estrategia debe hacer referencia a la biblioteca de dibujo de líneas para dibujar. El dibujo consiste en verificar si los datos de la línea K sintetizados por el código proporcionado por Chat GPT son correctos.
En cuanto a qué es la biblioteca de plantillas, no entraré en detalles aquí. Puedes consultar la documentación de la API de FMZ.Dirección de la biblioteca de dibujo lineal
Chat GPTEl código proporcionado se puede probar directamente. Establecí el período de línea K predeterminado del sistema de prueba retrospectiva en 5 minutos para comparar el gráfico de línea K dibujado por los datos de línea K calculados por el algoritmo proporcionado por Chat GPT.


A primera vista, el algoritmo proporcionado por ChatGPT para utilizar la línea K de 1 minuto para sintetizar la línea K de 5 minutos es correcto.
/*
合成任意分钟的K线数据
@param {Array} records - 一分钟K线数据
@param {Number} period - 合成的周期,单位为分钟
@return {Array} - 合成后的K线数据
*/
function composeKLineData(records, period) {
var result = [];
var index = 0;
var open = records[0].Open;
var high = records[0].High;
var low = records[0].Low;
var close = records[0].Close;
var volume = records[0].Volume;
var time = records[0].Time - records[0].Time % (period * 60 * 1000);
for (var i = 1; i < records.length; i++) {
var record = records[i];
if (record.Time < time + period * 60 * 1000) {
high = Math.max(high, record.High);
low = Math.min(low, record.Low);
close = record.Close;
volume += record.Volume;
} else {
result[index] = {
Time: time,
Open: open,
High: high,
Low: low,
Close: close,
Volume: volume
};
index++;
open = record.Open;
high = record.High;
low = record.Low;
close = record.Close;
volume = record.Volume;
time = record.Time - record.Time % (period * 60 * 1000);
}
}
result[index] = {
Time: time,
Open: open,
High: high,
Low: low,
Close: close,
Volume: volume
};
return result;
}
function main() {
var records = exchange.GetRecords(60);
var kLineData = composeKLineData(records, 5); // 合成5分钟K线数据
$.PlotRecords(kLineData, "KLineData");
}
ChatGPT integrado en FMZ no solo te ayudará a escribir código, sino que también te ayudará a explicar el código. Seleccione el código que ChatGPT acaba de escribir.composeKLineDataFunción, haga clic derecho para que aparezca el menú:


ChatGPT incluso puede ofrecer sugerencias de optimización y código optimizado.

Esta actualización del editor FMZ agrega la función ChatGPT. Optimiza y mejora aún más la experiencia del usuario en la escritura de programas en línea y agrega muchas funciones convenientes.
Haga clic derecho en un espacio en blanco o cuando se seleccione el código para que aparezca un menú.

Muestra combinaciones de teclas de acceso directo para varias funciones.

Cambiar el nombre del símbolo, modificar el nombre de la variable local.


Solo se modificará la imagen de arriba.mainNombres de variables en funcionesrecords。
Cambiar todas las ocurrencias, seleccionar un nombre de variable o palabra y editar todo el mismo contenido en el texto al mismo tiempo.


Selección de formato, formatea el código seleccionado.
Formatear documento, formatear todos los códigos.

Ir a Definición, saltar a la definición. Vaya a Referencias, salte a referencias. Ir a Símbolo…, saltar al nombre de la variable, nombre de la función, etc.

Definición de Peek, vista previa de la definición. Ver la definición del código seleccionado sin salir de la línea de código actual. Referencias Peek, vista previa de referencias, ver las referencias a la línea de código actual en otras líneas de código sin salir de la línea de código actual y saltar rápidamente para comprender mejor la lógica y la estructura del código.
