跳转至

Custom Frame Sample

概述

Custom Frame Sample 插件支持在 cTrader 图表界面中进行基本的框架管理。 它控制自定义框架在图表上的显示方式,提供了一种简单的方法来组织视觉元素,并通过以下关键功能定制您的工作空间:

  • 一键将自定义框架添加到图表界面。
  • 分离或重新附加框架,以支持多屏幕布局和灵活的工作空间配置。
  • 在不再需要时移除框架,以保持图表区域清晰和专注。
  • 在框架内显示自定义文本块,以支持实时图表定制和视觉反馈。

该插件在活跃交易品种面板中创建了一个简单的界面,允许您添加、移除、附加或分离自定义图表框架。 每个按钮都会触发特定操作,使您能够直接在图表上轻松管理视觉元素。 该插件仅在 cTrader Windows 或 Mac 打开时运行,并在平台关闭时自动停止。

插件创建

了解如何通过我们的分步指南创建、编辑和构建插件,无论是从模板还是从头开始。

您可以在GitHub上找到 Custom Frame Sample 插件的代码,或直接复制下面的代码。

示例代码
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
            };
        }
    }        
}

自定义选项

Custom Frame Sample 包括控制按钮,允许您直接在图表上添加、移除和与自定义框架进行交互。 下表概述了其关键组件及其功能:

参数 描述 可选值
panel 添加或重新排序按钮以用于附加框架操作或UI选项。 stackpanel [panel]
Text 编辑按钮文本以提高清晰度。 Add custom frame, Remove custom frame, Detach custom frame, Attach custom frame
Margin 更改边距以实现视觉平衡。 5, 8, 12, 等。
AddCustomFrame 修改框架标题以反映用途或符号。 chartmanager.addcustomframe(Custom frame)
TextBlock.Text 更改消息以反映上下文或标识符。 Custom frame sample
FontSize 调整大小以提高清晰度和布局适配。 32, 36, 40, 等。
HorizontalAlignment 调整对齐方式以改变水平内容呈现。 horizontalalignment.center
VerticalAlignment 调整对齐方式以改变垂直内容呈现。 verticalalignment.center
Attach() 当框架重新附加到图表时添加消息。 customframe.attach()
Detach() 当框架从图表分离时添加消息。 customframe.detach()
RemoveFrame 重命名按钮以反映其用途。 chartmanager.removeframe(customframe.id)

用例

Custom Frame Sample 无需外部服务即可实现交互式图表管理。 以下用例展示了该插件如何增强交易体验。

使用场景 场景
高亮交易信号 添加一个带有消息的框架,例如Watch for breakout on EURUSD 吸引对特定图表警报或用户注释的关注。
多屏幕管理 分离框架并将其移动到其他屏幕。 扩展图表可见性并支持多屏幕交易设置。
自定义工作区组织 使用框架组织图表区域,以匹配您的个人交易流程。 帮助您根据个人交易流程组织图表区域。
自定义视觉标记 手动添加带有注释的框架,以突出显示订单入场等图表事件。 提供一种灵活的方式来标记图表上的关键点,而无需永久绘图。

总结

此插件提供了一种直接在 cTrader 图表上管理自定义框架的实用方法。 通过简单的控件添加、删除、附加或分离框架,它帮助您个性化工作区,突出关键信息并轻松组织图表布局。

有关进一步的开发细节,请参阅我们的插件文档