Vai al contenuto

Custom Window Plugin

Panoramica

Custom Window Plugin crea un'interfaccia semplice in cTrader per attivare azioni in base all'input dell'utente attraverso le seguenti funzionalità chiave:

  • Crea un'interfaccia finestra all'interno della piattaforma cTrader per visualizzare un componente visivo personalizzato insieme all'area di lavoro di trading.
  • Aggiunge un pulsante per l'interazione dell'utente per avviare azioni manualmente.
  • Attiva una logica predefinita al clic del pulsante, consentendo una gestione coerente delle attività di trading.
  • Aggiorna le posizioni aperte in base a condizioni impostate, applicando modifiche solo quando vengono soddisfatti criteri specifici.

Il plugin aggiunge una finestra dove puoi eseguire un'azione specifica su tutte le tue posizioni aperte. Questo aiuta con il trading manuale permettendoti di applicare la stessa regola a ogni posizione contemporaneamente, senza dover modificare ciascuna separatamente.

Creazione del plugin

Scopri come creare plugin, utilizzando C# o Python, nelle nostre guide passo dopo passo.

Il codice del plugin Custom Window è disponibile nei nostri repository pubblici C# e Python. Lo stesso codice è fornito come modello nella procedura guidata di creazione dell'algoritmo in cTrader Windows o Mac, oppure puoi semplicemente copiare e utilizzare lo snippet qui sotto:

 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)

Opzioni di personalizzazione

Parametro Descrizione Valori possibili
_buttonAddTakeProfit.Text Imposta l'etichetta di testo visualizzata sul pulsante. Add take profit
_buttonAddTakeProfit.Height Specifica l'altezza del pulsante nella finestra. 50, 60, 65, ecc.
_buttonAddTakeProfit.BackgroundColor Imposta il colore di sfondo del pulsante. color.seagreen
_buttonAddTakeProfit.Click Attiva un evento quando viene cliccato il pulsante. _buttonaddtakeprofit_click
_window.Height Imposta l'altezza della finestra. 150, 200, 220, ecc.
_window.Width Imposta la larghezza della finestra. 150, 200, 220, ecc.
_window.Padding Definisce lo spazio all'interno della finestra attorno al suo contenuto figlio. (5, 10, 10, 5), (8, 12, 12, 8), ecc.
_window.Child Assegna il pulsante come contenuto all'interno della finestra. _buttonaddtakeprofit
position.TakeProfit Verifica se una posizione ha già un take profit impostato. null
position.ModifyTakeProfitPips Modifica il take profit impostandolo su un valore fisso in pip. 20, 24, 26, ecc.

Casi d'uso

Caso d'uso Scenario Valore
Impostatore di take profit in blocco Hai più posizioni aperte senza take profit. Automatizza l'attività ripetitiva di aggiungere un livello di take profit di 20 pip.
Gestore di operazioni reattivo Il mercato si muove rapidamente e devi proteggere i profitti istantaneamente. Applica un take profit a tutte le posizioni con un solo clic.
Impostatore di stop loss in blocco Vuoi applicare rapidamente uno stop loss di 20 pip a tutte le tue posizioni aperte. Imposta controlli di rischio coerenti senza modificare ogni operazione singolarmente.

Custom Window Plugin migliora il trading manuale permettendoti di applicare rapidamente un livello di take profit di 20 pip a tutte le posizioni aperte che non ne hanno uno. Attraverso una semplice interfaccia mobile con un singolo pulsante di azione, porta velocità e coerenza alla gestione delle operazioni.

Per ulteriori dettagli sullo sviluppo, consulta la nostra documentazione sui plugin.