Cómo crear un cBot mediante ChatGPT
La IA generativa está en auge y crear un cBot sin tener que escribir una sola lÃnea de código ya no es un sueño, es una realidad. En este artÃculo y su vÃdeo correspondiente, le mostraremos cómo puede crear un cBot utilizando ChatGPT. También demostraremos cómo puede evaluar el código cBot proporcionado por ChatGPT y asegurarse de que su bot generado por IA esté operativo en solo unos minutos.
Crear el prompt correcto
Para los fines de este vÃdeo, utilizaremos el modelo GPT-3.5. Es gratuito para todos y, a pesar de carecer de funciones en comparación con los modelos GPT más nuevos, produce excelentes resultados.
La primera parte de crear un gran cBot con ChatGPT es escribir el prompt correcto. Estas son algunas reglas para crear un buen prompt:
1. Anime a ChatGPT a intentar actuar como un desarrollador profesional de cBot.
Puede lograrlo escribiendo un prompt inicial con las palabras "Juguemos a que eres un desarrollador de algoritmos cualificado para cTrader..." o algo como "Finge ser un desarrollador profesional de cBots para cTrader..."
2. Sea especÃfico.
Cuantos más detalles proporcione a ChatGPT, mejor. Los prompts como "Crea un cBot rentable para mÃ..." darÃan lugar a mucha confusión por parte de la IA.
Recomendamos especificar cada parte de su cBot con la mayor precisión posible. Considere qué parámetros debe tener, a qué condiciones debe reaccionar y qué operaciones de trading debe realizar. Si está creando un panel de trading personalizado, considere qué elementos de la interfaz de usuario debe tener y dónde deben colocarse.
3. Sea educado y respetuoso.
Esto puede sonar sorprendente, pero las investigaciones han demostrado que ser educado con ChatGPT en realidad mejora la calidad de los resultados. Incluya frases como "Le agradecerÃa si...", "SerÃa bueno si..." o algo similar.
Crear un cBot de trading por color
Para empezar, solo queremos crear un cBot simple que coloque una nueva orden de mercado en cada apertura de barra. La dirección de la orden depende de si la barra anterior fue verde o roja. Si la barra fue roja, queremos colocar una orden de venta y si fue verde, queremos colocar una orden de compra.
Asà es como podemos hacerlo proporcionando los prompts correctos.
- Frase inicial: "Finge ser un desarrollador profesional de cBots para cTrader, escribe código muy simple y comprensible."
- Requisitos especÃficos: "Crea un cBot. En cada barra, debe colocar una nueva orden de mercado sin mecanismos de protección. El volumen de la orden (en unidades) debe ser un parámetro personalizable. Se debe colocar una orden de compra si la barra anterior fue verde. Se debe colocar una orden de venta si la barra anterior fue roja."
- CortesÃa: "Le agradecerÃa mucho si realiza esta tarea, ¡gracias!"
El código exacto que produce ChatGPT puede variar, pero en cualquier caso podemos simplemente copiarlo y pegarlo en la ventana del editor de código para ver si es correcto y si implementa la lógica que deseamos.
Por lo general, solo hay un par de errores no crÃticos que necesitan corrección. En nuestro caso, lo único que requirió corrección fue cambiar el objeto Symbol en el método ExecuteMarketOrder por la cadena SymbolName. Aquà está el código final que obtuvimos después de hacer todo esto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Como de costumbre, guardamos y compilamos el bot. En la aplicación Trade, adjuntamos la instancia del bot a un gráfico y vemos si funciona como se pretende. El bot funciona a la perfección y reacciona al color de las barras pasadas colocando nuevas órdenes. El volumen de la orden también es un parámetro personalizable.
Nota
Tenga en cuenta que ni siquiera tuvimos que leer el código generado por ChatGPT. Simplemente corregimos cada advertencia mostrada en el editor de código y luego lanzamos el bot.
Crear un cBot de trading de tendencia
Aunque el cBot anterior funcionaba muy bien, utilizaba una lógica simple y no prestaba atención a las tendencias del mercado. Intentaremos crear algo más complejo utilizando el mismo enfoque para los prompts que antes.
- Frase inicial: "Imaginemos que eres un desarrollador experto de cBot para cTrader. Yo seré tu cliente."
- Requisitos especÃficos: "Crea un cBot. En cada barra, debe comprobar si la media móvil de 50 dÃas está por encima o por debajo de la media móvil de 200 dÃas. Si está por encima, el bot debe colocar una orden de compra. Si está por debajo, el bot debe colocar una orden de venta. El bot no debe colocar una orden si ya existe una posición abierta en la misma dirección. El volumen de la orden debe ser un parámetro personalizable."
- CortesÃa: "¡Gracias por la ayuda!"
Una vez más, simplemente copiaremos y pegaremos el código que nos da ChatGPT en la ventana del editor de código e intentaremos compilar el bot. Aquà están todos los errores de compilación que obtenemos:
- El código está utilizando el miembro obsoleto de la API
MarketSeries. Podemos reemplazarlo con la colecciónBars.ClosePrices. - Una vez más, tenemos que reemplazar el argumento
SymbolconSymbolName. - También debemos eliminar algunos argumentos innecesarios de los métodos
ExecuteMarketOrderya que no encajan en ninguna de las sobrecargas de método disponibles.
También podemos echar un vistazo a cómo se realizó nuestra lógica. En el método OnStart(), inicializamos nuestras medias móviles. ChatGPT hizo que los perÃodos de las medias móviles fueran parámetros personalizables aunque no se lo pedimos. Podemos dejarlo como está sin afectar la lógica central.
Sin embargo, en el método OnBar(), podemos ver que el bot solo coloca nuevas órdenes cuando no hay posiciones abiertas (Positions.Count ==0). Esto no es lo que queremos ya que también queremos comprobar la dirección de la posición. Podemos modificar ligeramente el código para terminar con el siguiente bot.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Hemos utilizado el método Positions.FindAll(string label) para obtener todas las posiciones con una etiqueta dada y calcular su cantidad.
Cuando compilamos el bot, podemos añadirlo a un gráfico. También añadiremos medias móviles de 50 y 200 dÃas para poder evaluar los comportamientos del cBot. Después de esperar un poco, podemos ver que el bot funciona como se esperaba. Se colocan nuevas órdenes cuando es necesario, pero no existe más de una posición abierta en una dirección determinada.
Crear un cBot utilizando otra IA
Resumen
ChatGPT puede ser una herramienta valiosa cuando necesita crear rápidamente un cBot con una lógica definida con precisión. Aunque ChatGPT produce algunos errores, generalmente son insignificantes y se pueden corregir rápidamente.
