Перейти к содержанию

Custom Window Plugin

Обзор

Custom Window Plugin создает простой интерфейс в cTrader для запуска действий на основе пользовательского ввода с помощью следующих ключевых функций:

  • Создает оконный интерфейс внутри платформы cTrader для отображения пользовательского визуального компонента рядом с торговым рабочим пространством.
  • Добавляет кнопку для взаимодействия с пользователем для ручного запуска действий.
  • Запускает предопределенную логику по нажатию кнопки, обеспечивая последовательную обработку торговых задач.
  • Обновляет открытые позиции на основе заданных условий, применяя изменения только при соблюдении определенных критериев.

Плагин добавляет окно, в котором вы можете выполнить определенное действие со всеми вашими открытыми позициями. Это помогает при ручной торговле, позволяя применить одно и то же правило ко всем позициям одновременно, без необходимости изменять каждую отдельно.

Создание плагина

Узнайте, как создавать плагины на C# или Python, в наших пошаговых руководствах.

Код плагина Custom Window доступен в наших публичных репозиториях C# и Python. Тот же код предоставляется в качестве шаблона в мастере создания алгоритмов в cTrader Windows или Mac, или вы можете просто скопировать и использовать фрагмент ниже:

 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)

Параметры настройки

Параметр Описание Возможные значения
_buttonAddTakeProfit.Text Задает текстовую метку, отображаемую на кнопке. Add take profit
_buttonAddTakeProfit.Height Определяет высоту кнопки в окне. 50, 60, 65 и т. д.
_buttonAddTakeProfit.BackgroundColor Задает цвет фона кнопки. color.seagreen
_buttonAddTakeProfit.Click Запускает событие при нажатии на кнопку. _buttonaddtakeprofit_click
_window.Height Задает высоту окна. 150, 200, 220 и т. д.
_window.Width Задает ширину окна. 150, 200, 220 и т. д.
_window.Padding Определяет пространство внутри окна вокруг его дочернего содержимого. (5, 10, 10, 5), (8, 12, 12, 8) и т. д.
_window.Child Назначает кнопку в качестве содержимого внутри окна. _buttonaddtakeprofit
position.TakeProfit Проверяет, установлен ли уже тейк-профит для позиции. null
position.ModifyTakeProfitPips Изменяет тейк-профит, устанавливая его на фиксированное значение в пипах. 20, 24, 26 и т. д.

Варианты использования

Пример использования Сценарий Значение
Массовая установка тейк-профита У вас есть несколько открытых позиций без тейк-профита. Автоматизирует повторяющуюся задачу добавления уровня тейк-профита в 20 пипов.
Реактивное управление сделками Рынок движется быстро, и вам нужно мгновенно защитить прибыль. Применяет тейк-профит ко всем позициям одним нажатием.
Массовая установка стоп-лосса Вы хотите быстро применить стоп-лосс в 20 пипов ко всем открытым позициям. Устанавливает единообразный контроль рисков без редактирования каждой сделки по отдельности.

Обзор

Custom Window Plugin улучшает ручную торговлю, позволяя быстро применить уровень тейк-профита в 20 пипов ко всем открытым позициям, у которых он не установлен. Благодаря простому плавающему интерфейсу с одной кнопкой действия он обеспечивает скорость и последовательность в управлении сделками.

Для получения дополнительной информации о разработке обратитесь к нашей документации по плагинам.