انتقل إلى المحتوى

Custom Frame Sample

نظرة عامة

تتيح إضافة Custom Frame Sample إدارة الإطارات الأساسية داخل واجهة الرسم البياني لـ cTrader. وهي تتحكم في كيفية ظهور الإطارات المخصصة على الرسم البياني، مما يوفر طريقة بسيطة لتنظيم العناصر المرئية وتخصيص مساحة العمل الخاصة بك من خلال الوظائف الرئيسية التالية:

  • إضافة إطار مخصص إلى واجهة الرسم البياني بنقرة واحدة.
  • فصل الإطار أو إعادة إرفاقه لدعم تخطيطات الشاشات المتعددة وتكوينات مساحة العمل المرنة.
  • إزالة الإطار عند عدم الحاجة إليه للحفاظ على منطقة الرسم البياني واضحة ومركزة.
  • عرض كتلة نص مخصصة داخل الإطار لدعم التخصيص في الوقت الفعلي للرسم البياني والتغذية المرتدة المرئية.

تنشئ هذه الإضافة واجهة بسيطة في لوحة الرمز النشط تتيح لك إضافة إطار رسم بياني مخصص أو إزالته أو إرفاقه أو فصله. يؤدي كل زر إلى إجراء محدد، مما يسهل إدارة العناصر المرئية مباشرة على الرسم البياني. تعمل الإضافة فقط أثناء فتح cTrader Windows أو Mac وتتوقف تلقائيًا عند إغلاق المنصة.

إنشاء الإضافة

تعرف على كيفية إنشاء وتحرير وبناء الإضافات من قالب أو من الصفر في دليلنا خطوة بخطوة.

يمكنك العثور على كود إضافة Custom Frame Sample على GitHub، أو ببساطة نسخه أدناه.

نموذج الكود
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 إضافة أو إعادة ترتيب الأزرار لإجراءات إطار إضافية أو خيارات واجهة المستخدم. 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. مع عناصر تحكم بسيطة لإضافة الإطارات وإزالتها وإرفاقها أو فصلها، فإنها تساعدك على تخصيص مساحة العمل الخاصة بك، وتسليط الضوء على المعلومات الرئيسية وتنظيم تخطيطات الرسوم البيانية بسهولة.

لمزيد من تفاصيل التطوير، راجع وثائق الإضافة الخاصة بنا.