Custom Window Plugin¶
Descripción general ¶
Custom Window Plugin crea una interfaz simple en cTrader para activar acciones basadas en la entrada del usuario a través de las siguientes funcionalidades clave:
- Construye una interfaz de ventana dentro de la plataforma cTrader para mostrar un componente visual personalizado junto al espacio de trabajo de operaciones.
- Agrega un botón para la interacción del usuario para iniciar acciones manualmente.
- Activa la lógica predefinida al hacer clic en el botón, permitiendo un manejo consistente de las tareas de operación.
- Actualiza las posiciones abiertas según las condiciones establecidas, aplicando cambios solo cuando se cumplen criterios específicos.

El plugin añade una ventana donde puede realizar una acción específica en todas sus posiciones abiertas. Esto ayuda con la operación manual al permitirle aplicar la misma regla a todas las posiciones a la vez, sin tener que cambiar cada una por separado.
Creación del plugin ¶
Aprenda cómo crear, editar y construir plugins desde una plantilla o desde cero en nuestra guía paso a paso.
Puede encontrar el código del Custom Window Plugin en GitHub, o simplemente copiarlo a continuación.
Código de ejemplo
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
namespace cAlgo.Plugins
{
[Plugin(AccessRights = AccessRights.None)]
public class CustomWindowPlugin : Plugin
{
private Button _buttonAddTakeProfit;
private Window _window;
protected override void OnStart()
{
_buttonAddTakeProfit = new Button
{
BackgroundColor = Color.SeaGreen,
Height = 50,
Text = "Add Take Profit"
};
_buttonAddTakeProfit.Click += _buttonAddTakeProfit_Click;
_window = new Window
{
Height = 150,
Width = 150,
Padding = new Thickness(5, 10, 10, 5)
};
_window.Child = _buttonAddTakeProfit;
_window.Show();
}
private void _buttonAddTakeProfit_Click(ButtonClickEventArgs args)
{
foreach (var position in Positions)
{
if (position.TakeProfit is null)
{
position.ModifyTakeProfitPips(20);
}
}
}
protected override void OnStop()
{
// Handle Plugin stop here
}
}
}
Opciones de personalización ¶
| Parámetro | Descripción | Valores posibles |
|---|---|---|
_buttonAddTakeProfit.Text | Establece la etiqueta de texto que se muestra en el botón. | Add take profit |
_buttonAddTakeProfit.Height | Especifica la altura del botón en la ventana. | 50, 60, 65, etc. |
_buttonAddTakeProfit.BackgroundColor | Establece el color de fondo del botón. | color.seagreen |
_buttonAddTakeProfit.Click | Activa un evento cuando se hace clic en el botón. | _buttonaddtakeprofit_click |
_window.Height | Establece la altura de la ventana. | 150, 200, 220, etc. |
_window.Width | Establece el ancho de la ventana. | 150, 200, 220, etc. |
_window.Padding | Define el espacio dentro de la ventana alrededor de su contenido hijo. | (5, 10, 10, 5), (8, 12, 12, 8), etc. |
_window.Child | Asigna el botón como contenido dentro de la ventana. | _buttonaddtakeprofit |
position.TakeProfit | Comprueba si una posición ya tiene establecido un take profit. | null |
position.ModifyTakeProfitPips | Modifica el take profit estableciéndolo en un valor fijo de pips. | 20, 24, 26, etc. |
Casos de uso ¶
| Caso de uso | Escenario | Valor |
|---|---|---|
| Establecedor masivo de take profit | Tiene múltiples posiciones abiertas sin take profit. | Automatiza la tarea repetitiva de añadir un nivel de take profit de 20 pips. |
| Gestor de operaciones reactivo | El mercado se mueve rápidamente y necesita proteger los beneficios al instante. | Aplica un take profit en todas las posiciones con un solo clic. |
| Establecedor masivo de stop loss | Desea aplicar rápidamente un stop loss de 20 pips en sus posiciones abiertas. | Establece controles de riesgo consistentes sin editar cada operación individualmente. |
Resumen ¶
Custom Window Plugin mejora la operación manual al permitirle aplicar rápidamente un nivel de take profit de 20 pips a todas las posiciones abiertas que no tienen uno. A través de una interfaz flotante simple con un único botón de acción, aporta velocidad y consistencia a la gestión de operaciones.
Para más detalles sobre el desarrollo, consulte nuestra documentación de plugins.