Ir para o conteúdo

Cree un cBot en cTrader

Este artículo describe los pasos para crear un robot de operaciones para operaciones algorítmicas en Python o C#, implementar el robot y ejecutarlo en cTrader.

Dica

Con cTrader Windows o Mac, puede crear robots de operaciones rápidamente u obtener asistencia de la IA.

En la pestaña cBots de la aplicación Algo, haga clic en el botón Nuevo para abrir el asistente de creación de algoritmos.

Introduzca un nombre para su cBot y, a continuación, seleccione un lenguaje de programación entre C# y Python.

Elija un método de creación entre:

  • Desde cero: el nuevo robot de operaciones solo contendrá una plantilla básica.

  • Usando una plantilla: podrá seleccionar un algoritmo prefabricado de una lista de plantillas de Python# o C#, que cubren una amplia gama de tipos de cBot y acciones de operación automatizadas.

Nota

Los algoritmos prefabricados ya contienen lógica de operación y parámetros personalizables. Estos cBots están listos para ejecutarse una vez que los guarde y compile.

Después de hacer clic en Crear, se abre el editor de código y puede comenzar a editar el código del robot de operaciones.

Edite el código

Dependiendo del método de creación que haya elegido, el ejemplo del robot de operaciones contiene uno o más de los siguientes elementos:

 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
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SupercBot : Robot
{
    // === Fields ===
    // Declare indicators, variables or parameters, state flags, etc. here

    protected override void OnStart()
    {
        // Called once when the cBot starts
        // Initialize indicators, variables, parameters, or subscribe to events
    }

    protected override void OnTick()
    {
        // Called on every market tick
        // Useful for high-frequency strategies (but may be CPU-intensive)
    }

    protected override void OnBar()
    {
        // Called at the start of each new bar (candle)
        // Preferred for most strategies to reduce CPU load
    }

    protected override void OnStop()
    {
        // Called when the cBot is stopped
        // Useful for cleanup, logging, or resetting state
    }

    // === Custom Methods ===
    // Add your own helper methods below to modularize your logic

    private void ExampleMethod()
    {
        // A placeholder for your custom logic (e.g., strategy evaluation)
    }

    private void ClosePositions()
    {
        // Example of a method that could close open positions
    }

    private bool CheckCondition()
    {
        // Example of a method that could return a boolean condition
        return false;
    }
}

El atributo Robot del cBot junto con sus propiedades opcionales como TimeZone y AccessRights, precede a la declaración de la clase del cBot (SupercBot).

Estos métodos a menudo se incluyen por defecto:

  • El método OnStart() se invoca cada vez que se inicia una instancia de su cBot.
  • El método OnTick() se invoca en cada tick.
  • El método OnBar() se invoca en cada barra.
  • El método OnStop() se invoca cada vez que una instancia de su nuevo cBot deja de operar.

El método OnTick() realiza una determinada acción en cada tick, lo que lo hace intensivo en cuanto a uso de CPU. En muchos casos de operación, hay poca necesidad de realizar operaciones en cada tick. Es más práctico utilizar el método OnBar().

Los métodos y tipos de código mostrados en el fragmento de ejemplo anterior no son la única forma de configurar y establecer el comportamiento de un bot. Sin embargo, son los más fáciles de usar si está empezando a programar. Para obtener más información sobre algoritmos, comience con los conceptos básicos de C# y explore ejemplos de código de cBot.

Nota

Referências inclui todas as classes, eventos, métodos, variáveis, etc. para criar algoritmos no cTrader, enquanto exemplos completos de algoritmos e modelos estão disponíveis num repositório GitHub.

 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
class SupercBot():
    # === Fields ===
    # Declare indicators, variables, state flags, etc. here
    # self.example_indicator = None
    # self.some_flag = True

    def on_start(self):
        # Called once when the cBot starts
        # Initialize indicators, variables, parameters, or subscribe to events
        pass

    def on_tick(self):
        # Called on every market tick
        # Useful for high-frequency strategies (but may be CPU-intensive)
        pass

    def on_bar_closed(self):
        # Called at the start of each new bar (candle)
        # Preferred for most strategies to reduce CPU load
        pass

    def on_stop(self):
        # Called when the cBot is stopped
        # Useful for cleanup, logging, or resetting state
        pass

    # === Custom Methods ===
    # Add your own helper methods below to modularize your logic

    def example_method(self):
        # A placeholder for your custom logic (e.g., strategy evaluation)
        pass

    def close_positions(self):
        # Example of a method that could close open positions
        pass

    def check_condition(self):
        # Example of a method that could return a boolean condition
        return False

Estes métodos são frequentemente incluídos por predefinição:

  • O método on_start é invocado sempre que uma instância do seu cBot é iniciada.
  • O método on_tick é invocado em cada tick.
  • O método on_bar_closed é invocado em cada barra.
  • O método on_stop é invocado sempre que uma instância do seu novo cBot deixa de funcionar.

O método on_tick executa uma determinada ação a cada tick, o que o torna intensivo em termos de CPU. En muchos casos de operación, hay poca necesidad de realizar operaciones en cada tick. Utilizar o método on_bar_closed é mais prático.

Os métodos e tipos de código mostrados no exemplo acima não são a única forma de configurar e definir o comportamento de um cBot. Sin embargo, son los más fáciles de usar si está empezando a programar. Para saber mais sobre algoritmos, comece com os fundamentos de Python e explore exemplos de código de cBot.

Aplique os seus novos conhecimentos para editar o código do robô de negociação e adaptá-lo às suas necessidades.

Guardar e compilar

Guarde o seu código clicando no botão Guardar na parte superior do editor de código ou utilize o atalho Ctrl+S.

Antes de poder utilizar o seu cBot, precisa de validar o seu código compilando o projeto do cBot. Clique no botão Compilar na parte superior do editor de código ou prima Ctrl+B.

Guarde o seu código clicando no ícone Guardar na parte superior do editor de código ou utilize o atalho Cmd+S.

Antes de poder utilizar o seu cBot, precisa de validar o seu código compilando o projeto do cBot. Clique no ícone Compilar na parte superior do editor de código ou prima Cmd+B.

Quando a compilação é bem-sucedida, verá uma mensagem de confirmação em Resultado da compilação. Se a compilação falhar, aparece um resumo de todos os erros encontrados.

Se houver alterações no código desde a última compilação, aparece um asterisco junto ao ícone Compilar. Neste caso, deve compilar o cBot novamente antes de iniciar uma instância do mesmo.

Depois de compilar com sucesso um cBot, o cBot fica pronto para ação, mas só começa a funcionar quando iniciar uma instância.

Image title