Custom Frame Sample¶
Tổng quan ¶
Plugin Custom Frame Sample cho phép quản lý khung cơ bản trong giao diện biểu đồ của cTrader. Nó kiểm soát cách các khung tùy chỉnh xuất hiện trên biểu đồ, cung cấp một cách đơn giản để tổ chức các yếu tố trực quan và điều chỉnh không gian làm việc của bạn thông qua các chức năng chính sau:
- Thêm một khung tùy chỉnh vào giao diện biểu đồ chỉ với một lần nhấp.
- Tách hoặc gắn lại khung để hỗ trợ bố cục đa màn hình và cấu hình không gian làm việc linh hoạt.
- Loại bỏ khung khi không cần thiết để giữ cho khu vực biểu đồ được rõ ràng và tập trung.
- Hiển thị một khối văn bản tùy chỉnh trong khung để hỗ trợ tùy chỉnh biểu đồ thời gian thực và phản hồi trực quan.

Plugin này tạo ra một giao diện đơn giản trong Bảng ký hiệu đang hoạt động cho phép bạn thêm, xóa, gắn hoặc tách một khung biểu đồ tùy chỉnh. Mỗi nút sẽ kích hoạt một hành động cụ thể, giúp bạn dễ dàng quản lý các yếu tố trực quan trực tiếp trên biểu đồ. Plugin chỉ chạy khi cTrader Windows hoặc Mac đang mở và sẽ tự động dừng khi nền tảng được đóng lại.
Tạo plugin ¶
Tìm hiểu cách tạo, chỉnh sửa và xây dựng plugin từ một mẫu hoặc từ đầu trong hướng dẫn từng bước của chúng tôi.
Bạn có thể tìm thấy mã của plugin Custom Frame Sample trên GitHub, hoặc đơn giản sao chép nó bên dưới.
Mẫu mã
using System.Linq;
using cAlgo.API;
namespace cAlgo.Plugins
{
[Plugin(AccessRights = AccessRights.None)]
public class CustomFrameSample : Plugin
{
protected override void OnStart()
{
var aspBlock = Asp.SymbolTab.AddBlock("Custom Frame Sample");
var panel = new StackPanel();
var addCustomFrameButton = new Button { Text = "Add Custom Frame", Margin = 5 };
addCustomFrameButton.Click += OnAddCustomFrameButtonClick;
panel.AddChild(addCustomFrameButton);
var removeCustomFrameButton = new Button { Text = "Remove Custom Frame", Margin = 5 };
removeCustomFrameButton.Click += OnRemoveCustomFrameButtonClick;
panel.AddChild(removeCustomFrameButton);
var detachCustomFrameButton = new Button { Text = "Detach Custom Frame", Margin = 5 };
detachCustomFrameButton.Click += OnDetachCustomFrameButtonClick;
panel.AddChild(detachCustomFrameButton);
var attachCustomFrameButton = new Button { Text = "Attach Custom Frame", Margin = 5 };
attachCustomFrameButton.Click += OnAttachCustomFrameButtonClick;
panel.AddChild(attachCustomFrameButton);
aspBlock.Child = panel;
}
private void OnAttachCustomFrameButtonClick(ButtonClickEventArgs obj)
{
if (ChartManager.OfType<CustomFrame>().FirstOrDefault(c => !c.IsAttached) is not {} customFrame)
return;
customFrame.Attach();
}
private void OnDetachCustomFrameButtonClick(ButtonClickEventArgs obj)
{
if (ChartManager.OfType<CustomFrame>().FirstOrDefault(c => c.IsAttached) is not {} customFrame)
return;
customFrame.Detach();
}
private void OnRemoveCustomFrameButtonClick(ButtonClickEventArgs obj)
{
if (ChartManager.OfType<CustomFrame>().FirstOrDefault() is not {} customFrame)
return;
ChartManager.RemoveFrame(customFrame.Id);
}
private void OnAddCustomFrameButtonClick(ButtonClickEventArgs obj)
{
var customFrame = ChartManager.AddCustomFrame("Custom Frame");
customFrame.Child = new TextBlock
{
Text = $"Custom Frame {customFrame.Id} Child Control",
FontSize = 32,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center
};
}
}
}
Tùy chọn tùy chỉnh ¶
Custom Frame Sample bao gồm các nút điều khiển cho phép bạn thêm, xóa và tương tác với một khung tùy chỉnh trực tiếp trên biểu đồ. Bảng dưới đây trình bày các thành phần chính và chức năng của chúng:
| Tham số | Mô tả | Giá trị có thể |
|---|---|---|
panel | Thêm hoặc sắp xếp lại các nút cho các hành động khung bổ sung hoặc các tùy chọn giao diện người dùng. | stackpanel [panel] |
Text | Chỉnh sửa văn bản trên nút để làm rõ hơn. | Add custom frame, Remove custom frame, Detach custom frame, Attach custom frame |
Margin | Thay đổi ký quỹ để cân bằng trực quan. | 5, 8, 12, v.v. |
AddCustomFrame | Thay đổi tiêu đề khung để phản ánh mục đích hoặc ký hiệu. | chartmanager.addcustomframe(Custom frame) |
TextBlock.Text | Thay đổi thông báo để phản ánh ngữ cảnh hoặc định danh. | Custom frame sample |
FontSize | Điều chỉnh kích thước để rõ ràng và phù hợp với bố cục. | 32, 36, 40, v.v. |
HorizontalAlignment | Điều chỉnh căn chỉnh để thay đổi cách trình bày nội dung theo chiều ngang. | horizontalalignment.center |
VerticalAlignment | Điều chỉnh căn chỉnh để thay đổi cách trình bày nội dung theo chiều dọc. | verticalalignment.center |
Attach() | Thêm thông báo khi khung được gắn lại vào biểu đồ. | customframe.attach() |
Detach() | Thêm thông báo khi khung được tách khỏi biểu đồ. | customframe.detach() |
RemoveFrame | Đổi tên nút để phản ánh mục đích của nó. | chartmanager.removeframe(customframe.id) |
Các trường hợp sử dụng ¶
Custom Frame Sample cho phép quản lý biểu đồ tương tác mà không cần các dịch vụ bên ngoài. Các trường hợp sử dụng sau đây cho thấy cách plugin có thể nâng cao trải nghiệm giao dịch.
| Trường hợp sử dụng | Kịch bản | Giá trị |
|---|---|---|
| Làm nổi bật tín hiệu giao dịch | Thêm khung với thông điệp như Watch for breakout on EURUSD. | Thu hút sự chú ý đến cảnh báo cụ thể trên biểu đồ hoặc ghi chú của người dùng. |
| Quản lý đa màn hình | Tách khung và di chuyển chúng sang các màn hình khác. | Mở rộng khả năng hiển thị biểu đồ và hỗ trợ thiết lập giao dịch đa màn hình. |
| Tổ chức không gian làm việc tùy chỉnh | Tổ chức khu vực biểu đồ bằng cách sử dụng các khung để phù hợp với quy trình giao dịch cá nhân của bạn. | Giúp bạn tổ chức khu vực biểu đồ dựa trên quy trình giao dịch cá nhân của bạn. |
| Đánh dấu trực quan tùy chỉnh | Thủ công thêm các khung với ghi chú để làm nổi bật các sự kiện trên biểu đồ như điểm vào lệnh. | Cung cấp một cách linh hoạt để gắn nhãn các điểm quan trọng trên biểu đồ mà không cần vẽ vĩnh viễn. |
Tổng quan ¶
Plugin này cung cấp một cách thực tế để quản lý các khung tùy chỉnh trực tiếp trên biểu đồ cTrader. Với các điều khiển đơn giản để thêm, xóa, gắn hoặc tách khung, nó giúp bạn cá nhân hóa không gian làm việc, làm nổi bật thông tin quan trọng và tổ chức bố cục biểu đồ một cách dễ dàng.
Để biết thêm chi tiết phát triển, hãy tham khảo tài liệu plugin của chúng tôi.