사용자 정의 창 플러그인을 만드는 방법
플러그인을 사용하면 웹사이트, 도구 또는 클릭 시 특정 작업을 실행하는 버튼이 포함된 사용자 정의 창을 만들 수 있습니다. 이 문서와 해당 비디오에서는 플러그인을 사용하여 작업 버튼이 포함된 사용자 정의 창을 만드는 방법을 보여드리겠습니다.
플러그인 만들기
클릭하면 모든 오픈 포지션에 대해 이익실현을 설정하는 버튼이 있는 사용자 정의 창을 만들겠습니다. 창과 버튼 요소부터 시작하겠습니다.
Algo 앱을 선택하고 플러그인 탭으로 이동합니다. 새로 만들기 버튼을 클릭합니다. 빈 페이지 템플릿이 선택되어 있는지 확인합니다. Custom Window Plugin과 같이 플러그인 이름을 입력한 다음 만들기를 클릭합니다.

버튼과 창을 선언합니다.
| private Button _buttonAddTakeProfit;
private Window _window;
|
버튼을 초기화합니다.
| _buttonAddTakeProfit = new Button
{
BackgroundColor = Color.SeaGreen,
Height = 50,
Text = "Add Take Profit"
};
|
창을 초기화하고 버튼을 하위 항목으로 추가합니다.
| _window = new Window
{
Height = 150,
Width = 150,
Padding = new Thickness(5, 10, 10, 5)
};
_window.Child = _buttonAddTakeProfit;
_window.Show();
|
아래에서 전체 코드를 복사할 수 있습니다:
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 | 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"
};
_window = new Window
{
Height = 150,
Width = 150,
Padding = new Thickness(5, 10, 10, 5)
};
_window.Child = _buttonAddTakeProfit;
_window.Show();
}
protected override void OnStop()
{
// Handle Plugin stop here
}
}
}
|
빌드 버튼을 클릭하거나 Ctrl+B 단축키를 사용하여 플러그인을 빌드합니다. 이익실현 추가 버튼이 있는 사용자 정의 창이 나타나야 합니다.

창을 이동, 숨기기, 크기 조정 또는 닫을 수 있습니다.
플러그인 개선
소스 코드로 돌아가 버튼 클릭 이벤트를 처리하는 이벤트를 추가하여 플러그인을 개선하겠습니다.
| _buttonAddTakeProfit.Click += _buttonAddTakeProfit_Click;
|
이익실현이 없는 포지션에 이익실현 옵션을 설정하는 로직을 추가합니다.
| private void _buttonAddTakeProfit_Click(ButtonClickEventArgs args)
{
foreach (var position in Positions)
{
if (position.TakeProfit is null)
{
position.ModifyTakeProfitPips(20);
}
}
}
|
아래에서 전체 코드를 복사할 수 있습니다:
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
54 | 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
}
}
}
|
플러그인을 빌드합니다. 거래 앱으로 이동하여 오픈 포지션이 없는 경우 일부 포지션을 오픈하고 이익실현 추가 버튼을 사용하여 버튼이 작동하는지 확인합니다.
요약
이 문서를 통해 작업 및 기타 유용한 요소에 대한 버튼이 포함된 사용자 정의 창을 만드는 방법을 배웠을 것입니다.