Custom Window Plugin¶
Visão geral ¶
O Custom Window Plugin cria uma interface simples no cTrader para acionar ações com base na entrada do utilizador através das seguintes funcionalidades principais:
- Constrói uma interface de janela dentro da plataforma cTrader para exibir um componente visual personalizado junto à área de trabalho de negociação.
- Adiciona um botão para interação do utilizador para iniciar ações manualmente.
- Aciona lógica predefinida ao clicar no botão, permitindo o tratamento consistente de tarefas de negociação.
- Atualiza posições abertas com base em condições definidas, aplicando alterações apenas quando critérios específicos são cumpridos.

O plugin adiciona uma janela onde pode executar uma ação específica em todas as suas posições abertas. Isto ajuda na negociação manual ao permitir que aplique a mesma regra a todas as posições de uma só vez, sem ter de alterar cada uma separadamente.
Criação do plugin ¶
Aprenda como criar, editar e compilar plugins a partir de um modelo ou do zero no nosso guia passo a passo.
Pode encontrar o código do Custom Window Plugin no GitHub, ou simplesmente copiá-lo abaixo.
Código de exemplo
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
}
}
}
Opções de personalização ¶
| Parâmetro | Descrição | Valores possíveis |
|---|---|---|
_buttonAddTakeProfit.Text | Define o texto apresentado no botão. | Add take profit |
_buttonAddTakeProfit.Height | Especifica a altura do botão na janela. | 50, 60, 65, etc. |
_buttonAddTakeProfit.BackgroundColor | Define a cor de fundo do botão. | color.seagreen |
_buttonAddTakeProfit.Click | Aciona um evento quando o botão é clicado. | _buttonaddtakeprofit_click |
_window.Height | Define a altura da janela. | 150, 200, 220, etc. |
_window.Width | Define a largura da janela. | 150, 200, 220, etc. |
_window.Padding | Define o espaço dentro da janela em torno do seu conteúdo filho. | (5, 10, 10, 5), (8, 12, 12, 8), etc. |
_window.Child | Atribui o botão como o conteúdo dentro da janela. | _buttonaddtakeprofit |
position.TakeProfit | Verifica se uma posição já tem um take profit definido. | null |
position.ModifyTakeProfitPips | Modifica o take profit definindo-o para um valor fixo em pips. | 20, 24, 26, etc. |
Casos de uso ¶
| Caso de uso | Cenário | Valor |
|---|---|---|
| Definidor de take profit em massa | Tem várias posições abertas sem take profit. | Automatiza a tarefa repetitiva de adicionar um nível de take profit de 20 pips. |
| Gestor de negociação reativo | O mercado move-se rapidamente e precisa de proteger os lucros instantaneamente. | Aplica um take profit em todas as posições com um clique. |
| Definidor de stop loss em massa | Pretende aplicar rapidamente um stop loss de 20 pips em todas as suas posições abertas. | Define controlos de risco consistentes sem editar cada negociação individualmente. |
Resumo ¶
O Custom Window Plugin melhora a negociação manual ao permitir que aplique rapidamente um nível de take profit de 20 pips a todas as posições abertas que não têm um. Através de uma interface flutuante simples com um único botão de ação, traz velocidade e consistência à gestão de negociações.
Para mais detalhes de desenvolvimento, consulte a nossa documentação de plugins.