Przejdź do treści

Custom Window Plugin

Przegląd

Custom Window Plugin tworzy prosty interfejs w cTrader do uruchamiania działań na podstawie danych wprowadzonych przez użytkownika za pomocą następujących kluczowych funkcji:

  • Tworzy interfejs okna w ramach platformy cTrader, aby wyświetlić niestandardowy komponent wizualny obok obszaru roboczego handlu.
  • Dodaje przycisk do interakcji z użytkownikiem w celu ręcznego inicjowania działań.
  • Uruchamia wstępnie zdefiniowaną logikę po kliknięciu przycisku, umożliwiając spójną obsługę zadań handlowych.
  • Aktualizuje otwarte pozycje na podstawie ustalonych warunków, stosując zmiany tylko wtedy, gdy spełnione są określone kryteria.

Wtyczka dodaje okno, w którym można wykonać określone działanie na wszystkich otwartych pozycjach. Pomaga to w handlu manualnym, umożliwiając zastosowanie tej samej reguły do każdej pozycji jednocześnie, bez konieczności zmiany każdej z nich osobno.

Tworzenie wtyczki

Dowiedz się, jak tworzyć wtyczki, używając C# lub Pythona, w naszych krok po kroku przewodnikach.

Kod wtyczki Custom Window jest dostępny w naszych publicznych repozytoriach C# i Python. Ten sam kod jest dostarczany jako szablon w kreatorze tworzenia algorytmu w cTrader Windows lub Mac, lub możesz po prostu skopiować i użyć poniższego fragmentu:

 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)

Opcje dostosowywania

Parametr Opis Możliwe wartości
_buttonAddTakeProfit.Text Ustawia etykietę tekstową wyświetlaną na przycisku. Add take profit
_buttonAddTakeProfit.Height Określa wysokość przycisku w oknie. 50, 60, 65 itd.
_buttonAddTakeProfit.BackgroundColor Ustawia kolor tła przycisku. color.seagreen
_buttonAddTakeProfit.Click Uruchamia zdarzenie po kliknięciu przycisku. _buttonaddtakeprofit_click
_window.Height Ustawia wysokość okna. 150, 200, 220 itd.
_window.Width Ustawia szerokość okna. 150, 200, 220 itd.
_window.Padding Określa przestrzeń wewnątrz okna wokół jego zawartości podrzędnej. (5, 10, 10, 5), (8, 12, 12, 8) itd.
_window.Child Przypisuje przycisk jako zawartość wewnątrz okna. _buttonaddtakeprofit
position.TakeProfit Sprawdza, czy pozycja ma już ustawiony Take profit. null
position.ModifyTakeProfitPips Modyfikuje Take profit, ustawiając go na stałą wartość w pipsach. 20, 24, 26 itd.

Przypadki użycia

Przypadek użycia Scenariusz Wartość
Masowe ustawianie Take profit Masz wiele otwartych pozycji bez Take profit. Automatyzuje powtarzalne zadanie dodawania poziomu Take profit na poziomie 20 pipsów.
Reaktywny menedżer transakcji Rynek porusza się szybko i musisz natychmiast zabezpieczyć zyski. Stosuje Take profit do pozycji jednym kliknięciem.
Masowe ustawianie Stop loss Chcesz szybko zastosować Stop loss na poziomie 20 pipsów do swoich otwartych pozycji. Ustawia spójne kontrole ryzyka bez edytowania każdej transakcji osobno.

Podsumowanie

Custom Window Plugin usprawnia handel manualny, umożliwiając szybkie zastosowanie poziomu Take profit wynoszącego 20 pipsów do wszystkich otwartych pozycji, które go nie mają. Dzięki prostemu pływającemu interfejsowi z jednym przyciskiem akcji zapewnia szybkość i spójność w zarządzaniu transakcjami.

Aby uzyskać więcej szczegółów dotyczących rozwoju, zapoznaj się z naszą dokumentacją wtyczek.