Lewati ke isi

Custom Frame Sample

Ikhtisar

Plugin Custom Frame Sample memungkinkan manajemen frame dasar dalam antarmuka charting cTrader. Plugin ini mengontrol bagaimana frame kustom muncul pada grafik, menawarkan cara sederhana untuk mengatur elemen visual dan menyesuaikan ruang kerja Anda melalui fungsi utama berikut:

  • Menambahkan frame kustom ke antarmuka grafik dengan satu klik.
  • Melepaskan atau memasang kembali frame untuk mendukung tata letak multi-layar dan konfigurasi ruang kerja yang fleksibel.
  • Menghapus frame ketika tidak lagi diperlukan untuk menjaga area grafik tetap bersih dan fokus.
  • Menampilkan blok teks kustom dalam frame untuk mendukung kustomisasi grafik secara real-time dan umpan balik visual.

Plugin ini membuat antarmuka sederhana di Panel Simbol Aktif yang memungkinkan Anda menambahkan, menghapus, memasang, atau melepaskan frame grafik kustom. Setiap tombol memicu tindakan spesifik, memudahkan pengelolaan elemen visual langsung pada grafik. Plugin ini hanya berjalan saat cTrader Windows atau Mac terbuka dan berhenti secara otomatis saat platform ditutup.

Pembuatan Plugin

Pelajari cara membuat, mengedit, dan membangun plugin dari template atau dari awal dalam panduan langkah demi langkah kami.

Anda dapat menemukan kode plugin Custom Frame Sample di GitHub, atau cukup salin di bawah ini.

Sampel kode
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
            };
        }
    }        
}

Opsi Kustomisasi

Custom Frame Sample mencakup tombol kontrol yang memungkinkan Anda menambahkan, menghapus, dan berinteraksi dengan bingkai kustom langsung pada grafik. Tabel di bawah ini merangkum komponen utama dan fungsinya:

Parameter Deskripsi Nilai yang Mungkin
panel Menambahkan atau mengatur ulang tombol untuk tindakan bingkai tambahan atau opsi UI. stackpanel [panel]
Text Mengedit teks tombol untuk kejelasan. Add custom frame, Remove custom frame, Detach custom frame, Attach custom frame
Margin Mengubah margin untuk keseimbangan visual. 5, 8, 12, dst.
AddCustomFrame Memodifikasi judul bingkai untuk mencerminkan tujuan atau simbol. chartmanager.addcustomframe(Custom frame)
TextBlock.Text Mengubah pesan untuk mencerminkan konteks atau pengenal. Custom frame sample
FontSize Menyesuaikan ukuran untuk kejelasan dan kesesuaian tata letak. 32, 36, 40, dst.
HorizontalAlignment Menyesuaikan perataan untuk mengubah presentasi konten horizontal. horizontalalignment.center
VerticalAlignment Menyesuaikan perataan untuk mengubah presentasi konten vertikal. verticalalignment.center
Attach() Menambahkan pesan ketika bingkai dipasang kembali ke grafik. customframe.attach()
Detach() Menambahkan pesan ketika bingkai dilepas dari grafik. customframe.detach()
RemoveFrame Mengubah nama tombol untuk mencerminkan tujuannya. chartmanager.removeframe(customframe.id)

Kasus Penggunaan

Custom Frame Sample memungkinkan manajemen grafik interaktif tanpa memerlukan layanan eksternal. Kasus penggunaan berikut menunjukkan bagaimana plugin ini dapat meningkatkan pengalaman trading.

Kasus Penggunaan Skenario Nilai
Menyorot sinyal trading Tambahkan bingkai dengan pesan seperti Watch for breakout on EURUSD. Menarik perhatian ke peringatan khusus grafik atau catatan pengguna.
Manajemen multi-layar Lepaskan bingkai dan pindahkan ke layar lain. Memperluas visibilitas grafik dan mendukung pengaturan trading multi-layar.
Organisasi ruang kerja kustom Atur area grafik menggunakan frame untuk menyesuaikan dengan alur kerja trading pribadi Anda. Membantu Anda mengatur area grafik berdasarkan alur kerja trading pribadi Anda.
Penanda visual kustom Tambahkan frame dengan catatan secara manual untuk menyoroti peristiwa grafik seperti entri order. Memberikan cara yang fleksibel untuk memberi label pada titik-titik penting di grafik tanpa gambar permanen.

Ringkasan

Plugin ini menawarkan cara praktis untuk mengelola frame kustom langsung pada grafik cTrader. Dengan kontrol sederhana untuk menambah, menghapus, menempelkan atau melepaskan frame, ini membantu Anda mempersonalisasi ruang kerja, menyoroti informasi penting, dan mengatur tata letak grafik dengan mudah.

Untuk detail pengembangan lebih lanjut, lihat dokumentasi plugin kami.