Saltar a contenido

Cómo crear un bot de operaciones de forex en Python utilizando IA

Este artículo y vídeo demuestran cómo crear un bot de operaciones gratuito en Python para cTrader con IA.

Nota

cTrader es la única plataforma importante que ofrece compatibilidad nativa con Python, lo que permite a cualquiera crear potentes robots en Python para automatizar estrategias de operaciones. No se utiliza ningún adaptador ni solución compleja.

Aunque se utiliza ChatGPT para la demostración, los mismos pasos para crear bots de operaciones con IA se aplican a Gemini, Claude, DeepSeek y otros.

Seleccionar una plantilla de Python

Abra cTrader Algo en cTrader Windows o Mac y, a continuación, haga clic en Nuevo para empezar a crear un nuevo bot de operaciones.

En el asistente de creación de algoritmos, cree un nuevo algoritmo y asígnele un nombre.

Elija Python como lenguaje de programación y, a continuación, seleccione la opción Usar una plantilla.

cTrader ofrece una amplia variedad de plantillas de Python que abarcan todos los tipos de estrategias, estilos de análisis o actividades de operaciones automatizadas. Estos algoritmos prediseñados ya contienen una lógica de operaciones completa y parámetros ajustables, por lo que están listos para usarse una vez que los guarde y compile.

Nota

La colección completa de plantillas de algoritmos está disponible en el asistente de creación de algoritmos en cTrader Windows o Mac, y también puede acceder a ellas en nuestro repositorio público.

Supongamos que nos especializamos en operaciones de ruptura. Por lo tanto, elegimos Sample Breakout cBot.

Nota

Las descripciones detalladas de las plantillas de algoritmos populares, incluido Breakout cBot, están disponibles en nuestra Base de conocimientos.

Breakout cBot aprovecha el movimiento del precio más allá de un nivel predefinido de soporte o resistencia, y el indicador Bollinger Bands impulsa sus decisiones. Vamos a crear el bot de operaciones y hacerle un backtesting.

Pulse Ctrl+B o haga clic en Compilar en la parte superior del editor de código.

Una vez que la compilación se realice correctamente, haga clic en cualquier instancia disponible bajo el nombre del cBot.

En la cuadrícula principal, vaya a la pestaña Backtesting. Realice un backtesting de un año utilizando los parámetros predeterminados para evaluar los resultados del robot. El cBot produce una ganancia del 22% para este período, entregando 74 operaciones ganadoras de 194 según lo registrado en la pestaña Estadísticas de operaciones.

Actualizar el cBot con IA

Con la asistencia de la IA, puede actualizar el código del bot de operaciones para obtener mejores resultados e identificar combinaciones de parámetros que produzcan mayores rendimientos.

El RSI es un indicador de impulso que filtra las rupturas débiles o las señales falsas. Este indicador debería combinarse perfectamente y complementar las Bollinger Bands utilizadas en Sample Breakout cBot. Como referencia, puede obtener la integración del RSI para Super cBot proporcionada en un artículo del Centro de Ayuda.

Tome el fragmento de integración del RSI, adjúntelo a un mensaje que contenga toda la información necesaria y, a continuación, introduzca todo en la herramienta de IA:

Prompt

Estudia la integración del RSI en Super cBot y luego implementa los mismos filtros de RSI en Special cBot.

[Código de Special cBot]

[Código de Super cBot con RSI integrado]

La IA piensa y luego proporciona el código para Special cBot integrado con RSI.

 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *

# Import trading wrapper functions
from robot_wrapper import *

class SampleBreakoutcBot():
    Label = "Sample Breakout cBot"

    def on_start(self):
        # Bollinger Bands for breakout consolidation logic
        self.bollingerBands = api.Indicators.BollingerBands(api.Source, api.Periods, api.Deviations, api.MAType)

        # Track consolidation bars
        self.consolidation = 0

        # --- RSI filter (same style as grid cBot) ---
        self.rsi_period = getattr(api, "RsiPeriod", 14)
        self.rsi_overbought = getattr(api, "RsiOverbought", 70)
        self.rsi_oversold = getattr(api, "RsiOversold", 30)
        self.rsi = api.Indicators.RelativeStrengthIndex(api.Bars.ClosePrices, self.rsi_period)

    def on_bar(self):
        top = self.bollingerBands.Top.Last(1)
        bottom = self.bollingerBands.Bottom.Last(1)

        # Detect consolidation via band height
        if top - bottom <= api.BandHeightPips * api.Symbol.PipSize:
            self.consolidation += 1
        else:
            self.consolidation = 0

        if self.consolidation >= api.ConsolidationPeriods:
            volumeInUnits = api.Symbol.QuantityToVolumeInUnits(api.Quantity)

            # Breakout up
            if api.Ask > top:
                if self.passes_rsi_filter():
                    api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, volumeInUnits, self.Label, api.StopLossInPips, api.TakeProfitInPips)
                    self.consolidation = 0
                else:
                    api.Print("RSI filter blocked BUY breakout (RSI={:.2f}, range {}-{})"
                              .format(self.get_rsi_value(), self.rsi_oversold, self.rsi_overbought))

            # Breakout down
            elif api.Bid < bottom:
                if self.passes_rsi_filter():
                    api.ExecuteMarketOrder(TradeType.Sell, api.SymbolName, volumeInUnits, self.Label, api.StopLossInPips, api.TakeProfitInPips)
                    self.consolidation = 0
                else:
                    api.Print("RSI filter blocked SELL breakout (RSI={:.2f}, range {}-{})"
                              .format(self.get_rsi_value(), self.rsi_oversold, self.rsi_overbought))

    # --- Helpers copied in spirit from the grid cBot ---
    def get_rsi_value(self):
        # Use the last CLOSED bar for stability
        return self.rsi.Result.Last(1)

    def passes_rsi_filter(self):
        r = self.get_rsi_value()
        return (r > self.rsi_oversold) and (r < self.rsi_overbought)

A continuación, pida a la IA que recomiende configuraciones de parámetros óptimas para el bot de operaciones basadas en nuestra estrategia.

Prompt

Quiero que el cBot genere señales más suaves y lentas que se combinen de forma natural con el filtro RSI.
Prefiero menos operaciones, pero con rupturas más limpias.
Estoy configurando el periodo de consolidación en 1 porque quiero que el cBot actúe inmediatamente cuando
la volatilidad se comprime.

¿Qué tipo de media móvil es la más adecuada para esto?

La IA piensa y luego proporciona información útil. Recomienda Welles Wilder Smoothing como el mejor tipo de media móvil para nuestra estrategia.

Aplicar las recomendaciones de la IA

Vuelva al editor de código en cTrader y aplique los cambios recomendados. Pegue el código actualizado y, a continuación, compile el cBot actualizado.

Abra de nuevo la pestaña Backtesting. Establezca la media móvil en Welles Wilder Smoothing, según lo recomendado por la IA, y luego ejecute un backtesting para el mismo período de un año.

Esta vez, el informe de backtesting para el mismo período muestra una ganancia del 97%, una mejora masiva en comparación con el 22% entregado por la lógica original del cBot.

El nuevo resultado demuestra lo eficaz que puede ser la orientación de la IA para perfeccionar el rendimiento de los bots de operaciones y optimizar sus parámetros para ofrecer resultados excelentes. La tasa de aciertos del robot también mejoró significativamente, entregando 51 operaciones ganadoras de un total de 93.

Iniciar el cBot en la Nube

Gracias a la sincronización en la nube, el nuevo cBot está disponible automáticamente desde todas las apps de cTrader donde su cTrader ID esté activo. Incluso puede iniciar el bot de operaciones en cTrader Mobile o Web.

Simplemente pulse el icono Iniciar.

Debido a que el cBot se ejecuta en la Nube, continúa operando 24 horas sin parar, incluso si su app de cTrader está cerrada o su dispositivo está apagado. No se necesita VPS.

Monetice el cBot

Opcionalmente, puede monetizar su cBot en cTrader Store, una plataforma de compraventa segura y dinámica que conecta a compradores y vendedores de productos de operaciones.

Para publicar un producto, seleccione el cBot que desea vender directamente desde la Nube o suba un archivo, y luego proporcione los detalles necesarios. Una vez publicado, el algoritmo estará disponible en cTrader Store, donde millones de usuarios de cTrader podrán comprarlo.

Nota

La distribución de algoritmos a través de cTrader Store es completamente segura, ya que su código fuente nunca se revela ni se sube a ningún sitio. Su propiedad intelectual también se respeta, ya que cada compra de producto es para un solo usuario y no es transferible.

Image title