Este artículo describe los pasos para crear plugins nativos, incluyendo herramientas para operaciones algorítmicas u operaciones manuales en el ecosistema de cTrader.
En la pestaña Plugins 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 plugin, luego seleccione un lenguaje de programación entre C# y Python.
Seleccione un método de creación entre:
Desde cero – el nuevo plugin contendrá solo 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 ubicaciones y funcionalidades de plugins.
Nota
Los plugins prefabricados ya contienen lógica de ubicación y funcionalidad. Estos plugins están listos para funcionar 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 plugin.
Editar el código
La introducción a los plugins mostró que los plugins pueden añadir nuevos elementos a la interfaz de usuario de cTrader, incluyendo el Panel de símbolo activo (ASP), Visualización de operaciones, área del gráfico y ventanas personalizadas. El tutorial de ubicación de plugins explica cómo posicionarlos en estas áreas. Decida sobre la ubicación de la información o controles de su plugin antes de escribir cualquier código.
Nota
Al decidir sobre la ubicación, alinee la salida del plugin con el área de interfaz de usuario más apropiada. Los marcos del gráfico funcionan bien para WebViews grandes, el Panel de símbolo activo es mejor para paneles compactos y Visualización de operaciones es una opción sólida para mensajes repetidos.
Dependiendo de su método de creación, el código del plugin contiene uno o más de los siguientes:
El atributo Plugin con propiedades opcionales como AccessRights aparece encima de la declaración de la clase del plugin (SimplePlugin).
Este plugin utiliza el método OnStart(), que se llama cuando se carga el plugin. Este icono añade un icono personalizado a la barra de herramientas del gráfico usando Commands.Add.
When clicked, the icon triggers a user-defined handler (OnIconClicked) that opens a panel with several UI controls.
These are main actions available in the UI:
Show message box - opens a standard message box with Yes/No buttons.
Mostrar ventana personalizada - abre una nueva ventana flotante que contiene un WebView que carga una página externa.
Añadir bloque ASP - añade un nuevo bloque expandible al Panel de símbolo activo (ASP), incrustando un WebView.
Añadir pestaña ASP - inserta una nueva pestaña en ASP, cargando un WebView en ella.
Añadir pestaña de Visualización de operaciones - añade una nueva pestaña en Visualización de operaciones y carga un WebView en ella.
Añadir marco personalizado - crea un marco de gráfico personalizado superpuesto en el gráfico y lo llena con un WebView.
Personalizar gráfico activo - cambia la apariencia y la configuración del gráfico actualmente activo (por ejemplo, color de fondo, nivel de zoom, visibilidad del volumen de ticks).
Cada botón en el panel se estiliza usando el objeto Style y se añade a un StackPanel vertical. El panel en sí está envuelto dentro de un Border estilizado, que se devuelve como resultado del comando de la barra de herramientas.
Referencias incluye todas las clases, eventos, métodos, variables, etc. para construir plugins en cTrader, mientras que los ejemplos completos de algoritmos y plantillas están disponibles en un repositorio de GitHub.
La clase SimplePlugin representa un plugin escrito en Python que utiliza la API de Algo para extender la interfaz de la plataforma con controles e interacciones personalizadas.
El método on_start() es el punto de entrada, llamado cuando se inicializa el plugin. Añade un icono SVG personalizado a la barra de herramientas del gráfico.
When clicked, the icon triggers the command_handler method, which returns a styled panel (CommandResult) containing multiple interactive buttons.
Each button performs a distinct platform interaction:
Show message box - opens a standard message box with yes and no buttons.
Mostrar ventana personalizada - abre una nueva ventana flotante que contiene un WebView que carga una página externa.
Añadir bloque ASP - añade un nuevo bloque expandible al Panel de símbolo activo (ASP), incrustando un WebView.
Añadir pestaña ASP - inserta una nueva pestaña en el área ASP, cargando un WebView en ella.
Añadir pestaña de Visualización de operaciones - añade una nueva pestaña a Visualización de operaciones y la selecciona por defecto.
Añadir marco personalizado - crea un marco de gráfico flotante e inserta un WebView dentro de él.
Añadir elemento de menú principal - añade un nuevo elemento al menú principal de nivel superior con un icono personalizado, abriendo un WebView que apunta al sitio de Ayuda de cTrader.
Añadir elemento inferior del menú principal - añade un elemento a la parte inferior del menú principal, que imprime un mensaje cuando se hace clic.
Personalizar gráfico activo - cambia el gráfico actualmente activo cambiando el color de fondo, ocultando el volumen de ticks y ajustando el nivel de zoom.
Estos botones se añaden a un diseño apilado verticalmente (StackPanel) y se envuelven en un Border estilizado, que define sus dimensiones, relleno, fondo, grosor del borde y color. El panel se devuelve entonces como un CommandResult, que lo muestra en la interfaz de usuario del gráfico.
Referencias incluye todas las clases, eventos, métodos, variables, etc. para construir plugins en cTrader, mientras que los ejemplos completos de algoritmos y plantillas están disponibles en un repositorio de GitHub.
Aplique sus nuevos conocimientos para editar el código del plugin y adaptarlo a sus necesidades.
Guardar y compilar
Guarde su código haciendo clic en el botón Guardar en la parte superior del editor de código o utilice el atajo Ctrl+S.
Antes de poder usar su plugin, necesita validar su código compilando el proyecto del plugin. Haga clic en el botón Compilar en la parte superior del editor de código o pulse Ctrl+B.
Guarde su código haciendo clic en el icono Guardar en la parte superior del editor de código o utilice el atajo Cmd+S.
Antes de poder usar su indicador, necesita validar su código compilando el proyecto del indicador. Haga clic en el icono Compilar en la parte superior del editor de código o pulse Cmd+B.
Cuando la compilación tiene éxito, verá un mensaje de confirmación en Resultado de la compilación. Si la compilación falla, aparecerá en su lugar un resumen de todos los errores encontrados.
Si hay cambios en el código desde la última compilación, aparecerá un asterisco junto al icono Compilar. En este caso, debe compilar el plugin nuevamente para que los cambios surtan efecto.
De manera similar a los cBots, los plugins pueden usar el método OnStart(), el método OnStop() y el objeto Timer:
El controlador OnStart() se llama una vez cuando se inicializa un nuevo plugin.
El controlador OnStop() se llama cuando la instancia del plugin se deshabilita, desinstala o termina debido al cierre de cTrader.
El objeto Timer se utiliza para ejecutar código a intervalos regulares. Después de inicializar y arrancar el temporizador integrado de la clase Timer, el método especificado se ejecuta cada vez que transcurre el intervalo definido.
Manejo de excepciones
Al igual que otros algoritmos, los plugins pueden acceder al método OnException, que se utiliza a menudo para controlar cómo un algoritmo maneja los errores.
Para demostrar el uso de los métodos mencionados anteriormente, consideremos un plugin simple que muestra el número total de posiciones rentables actualmente abiertas. Adjunto al ASP, este plugin actualiza su visualización cada segundo utilizando el temporizador integrado.