ข้ามไปที่เนื้อหา

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 เพิ่มหรือจัดลำดับปุ่มสำหรับการดำเนินการกรอบเพิ่มเติมหรือตัวเลือก 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 ด้วยการควบคุมที่ง่ายดายในการเพิ่ม ลบ เชื่อมต่อหรือถอดเฟรม มันช่วยให้คุณปรับแต่งเวิร์กสเปซของคุณ ไฮไลท์ข้อมูลสำคัญและจัดวางแผนภูมิได้อย่างง่ายดาย

สำหรับรายละเอียดการพัฒนาเพิ่มเติม โปรดดูที่เอกสารปลั๊กอิน ของเรา