Aller au contenu

Custom Window Plugin

Présentation

Custom Window Plugin crée une interface simple dans cTrader pour déclencher des actions basées sur la saisie de l'utilisateur grâce aux fonctionnalités clés suivantes :

  • Crée une interface de fenêtre au sein de la plateforme cTrader pour afficher un composant visuel personnalisé aux côtés de l'espace de travail de trading.
  • Ajoute un bouton pour l'interaction de l'utilisateur afin de lancer des actions manuellement.
  • Déclenche une logique prédéfinie lors d'un clic sur le bouton, permettant une gestion cohérente des tâches de trading.
  • Met à jour les positions ouvertes en fonction de conditions définies, en appliquant les modifications uniquement lorsque des critères spécifiques sont remplis.

Le plug-in ajoute une fenêtre où vous pouvez effectuer une action spécifique sur toutes vos positions ouvertes. Cela facilite le trading manuel en vous permettant d'appliquer la même règle à chaque position en une seule fois, sans avoir à modifier chacune séparément.

Création de plug-in

Apprenez à créer des plug-ins, en utilisant C# ou Python, dans nos guides étape par étape.

Le code du plug-in Custom Window est disponible dans nos dépôts publics C# et Python. Le même code est fourni comme modèle dans l'assistant de création d'algorithme dans cTrader Windows ou Mac, ou vous pouvez simplement copier et utiliser l'extrait ci-dessous :

 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
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
        }
    }        
}
 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
import clr
clr.AddReference("cAlgo.API")

from cAlgo.API import *

class ShowWindowSample():
    def on_start(self):
        addTakeProfitButton = Button()
        addTakeProfitButton.BackgroundColor = Color.SeaGreen
        addTakeProfitButton.Height = 50
        addTakeProfitButton.Text = "Add Take Profit"
        addTakeProfitButton.Click += self.on_add_take_profit_button_click

        window = Window()
        window.Height = 150
        window.Width = 150
        window.Padding = Thickness(5, 10, 10, 5)

        window.Child = addTakeProfitButton;
        window.Show();

    def on_add_take_profit_button_click(self, args):
        for position in api.Positions:
            if position.TakeProfit is None:
                position.ModifyTakeProfitPips(20)

Options de personnalisation

Paramètre Description Valeurs possibles
_buttonAddTakeProfit.Text Définit l'étiquette de texte affichée sur le bouton. Add take profit
_buttonAddTakeProfit.Height Spécifie la hauteur du bouton dans la fenêtre. 50, 60, 65, etc.
_buttonAddTakeProfit.BackgroundColor Définit la couleur d'arrière-plan du bouton. color.seagreen
_buttonAddTakeProfit.Click Déclenche un événement lorsque le bouton est cliqué. _buttonaddtakeprofit_click
_window.Height Définit la hauteur de la fenêtre. 150, 200, 220, etc.
_window.Width Définit la largeur de la fenêtre. 150, 200, 220, etc.
_window.Padding Définit l'espace à l'intérieur de la fenêtre autour de son contenu enfant. (5, 10, 10, 5), (8, 12, 12, 8), etc.
_window.Child Attribue le bouton en tant que contenu à l'intérieur de la fenêtre. _buttonaddtakeprofit
position.TakeProfit Vérifie si une position a déjà un take profit défini. null
position.ModifyTakeProfitPips Modifie le take profit en le définissant sur une valeur fixe en pips. 20, 24, 26, etc.

Cas d'usage

Cas d'utilisation Scénario Valeur
Définisseur de take profit en masse Vous avez plusieurs positions ouvertes sans take profit. Automatise la tâche répétitive d'ajout d'un niveau de take profit de 20 pips.
Gestionnaire de trades réactif Le marché évolue rapidement et vous devez protéger vos profits instantanément. Applique un take profit à toutes les positions en un seul clic.
Définisseur de stop loss en masse Vous souhaitez appliquer rapidement un stop loss de 20 pips à toutes vos positions ouvertes. Définit des contrôles de risque cohérents sans modifier chaque trade individuellement.

Résumé

Custom Window Plugin améliore le trading manuel en vous permettant d'appliquer rapidement un niveau de take profit de 20 pips à toutes les positions ouvertes qui n'en ont pas. Grâce à une interface flottante simple avec un seul bouton d'action, il apporte rapidité et cohérence à la gestion des trades.

Pour plus de détails sur le développement, consultez notre documentation sur les plug-ins.