Langkau tajuk talian

Bekerja dengan tetingkap tersuai dalam cTrader Algo

Dalam artikel ini dan video yang berkaitan dengannya, kita akan membincangkan tentang bekerja dengan tetingkap tersuai semasa mencipta algo cTrader. Kami akan menerangkan apa itu tetingkap tersuai dan bagaimana ia boleh digunakan dalam cBot dan indikator anda. Kami juga akan mencipta contoh penggunaan tetingkap tersuai dalam cBot.

Contoh tetingkap tersuai

Kita akan beralih ke aplikasi Algo untuk melihat ilustrasi bagaimana tetingkap tersuai boleh digunakan dalam cBot dan indikator anda. Kita akan mencipta indikator baharu; di dalamnya, kita akan hanya menggunakan contoh sedia ada daripada dokumentasi.

Salin dan tampal kod daripada dokumentasi ke dalam tetingkap penyunting kod. Kemudian, bina indikator dan tambah tika daripadanya pada carta.

Sebaik sahaja indikator ditambah, kita sepatutnya melihat tetingkap tersuai muncul. Tetingkap ini mengandungi borang kompleks yang memaparkan maklumat tentang simbol yang carta indikator dilampirkan pada masa ini. Borang ini adalah contoh yang hebat tentang apa yang boleh dicapai dengan tetingkap tersuai.

Tetingkap tersuai berbanding WPF dan WinForms

Terdapat beberapa sebab mengapa menggunakan tetingkap tersuai adalah lebih baik daripada menggunakan WPF atau WinForms. Tetingkap tersuai cTrader sudah datang dengan gaya asli yang sepadan dengan rupa dan rasa cTrader. Tetingkap WinForms dan WPF memerlukan pengendalian khas dan kemahiran pengaturcaraan lanjutan kerana ia berjalan pada bebenang yang berbeza. Isu sedemikian dielakkan sepenuhnya apabila menggunakan tetingkap tersuai cTrader.

Cipta tetingkap tersuai

Kami akan menunjukkan cara anda boleh mencipta tetingkap tersuai dari awal. Kami akan mencipta indikator baharu dan menamakannya "Custom Window Example". Dalam contoh ini, kami akan menambah tetingkap tersuai dan kemudian menambah beberapa kawalan tersuai kepadanya. Tetingkap itu sendiri akan diisytiharkan dalam kaedah Initialize(); untuk menunjukkan tetingkap, kami akan memanggil kaedah window.Show().

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
protected override void Initialize()
{
    var window = new Window
    {
        Title = "My Window",
        WindowStartupLocation = WindowStartupLocation.CenterScreen,
        Topmost = true
    };

    window.Show();
}

Untuk melihat tetingkap, kita boleh membina indikator dan menambahkannya pada carta.

Tambah kawalan pada tetingkap

Kami akan menambah kawalan tersuai pada tetingkap. Kawalan ini akan berbentuk kotak teks yang mengandungi teks.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
var window = new Window
{
    Child = new TextBlock 
    {
        Text = "Hi, This is my Window!",
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalAlignment = HorizontalAlignment.Center,
        FontSize = 20,
        FontWeight = FontWeight.UltraBold
    },
    Title = "My Window",
    WindowStartupLocation = WindowStartupLocation.CenterScreen,
    Topmost = true
};             

window.Show();

Kami akan membina semula indikator dan menambah contoh baharu untuk melihat rupa kawalan tersuai kami.

Ubah suai sifat tetingkap

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
var window = new Window
{
    Child = new TextBlock 
    {
        Text = "Hi, This is my Window!",
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalAlignment = HorizontalAlignment.Center,
        FontSize = 20,
        FontWeight = FontWeight.UltraBold
    },
    Title = "My Window",
    WindowStartupLocation = WindowStartupLocation.CenterScreen,
    Topmost = true,
    Width = 800,
    Height = 800
};             

window.Show();

Kami akan membina semula indikator kami sekali lagi dan menambah contoh. Sekarang kawasan tetingkap kami ialah segi empat tepat dengan lebar dan tinggi 800 piksel.

Perubahan seterusnya ialah menambah julat di mana tetingkap boleh diubah saiz. Untuk berbuat demikian, kami akan menambah parameter MinHeight, MaxHeight, MinWidth dan MaxWidth.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
var window = new Window
{
    Child = new TextBlock 
    {
        Text = "Hi, This is my Window!",
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalAlignment = HorizontalAlignment.Center,
        FontSize = 20,
        FontWeight = FontWeight.UltraBold
    },
    Title = "My Window",
    WindowStartupLocation = WindowStartupLocation.CenterScreen,
    Topmost = true,
    Width = 800,
    Height = 800,
    MinHeight = 600,
    MaxHeight = 800,
    MinWidth = 600,
    MaxWidth = 800
};             

window.Show();

Kami akan membina semula indikator dan, selepas contoh ditambah, kita boleh cuba mengubah saiznya. Pengubahan saiz hanya boleh dilakukan dalam julat lebar dan tinggi yang ditetapkan.

Kita juga boleh menukar warna latar belakang tetingkap dan menjadikannya tidak boleh diubah saiz.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
var window = new Window
{
    Child = new TextBlock 
    {
        Text = "Hi, This is my Window!",
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalAlignment = HorizontalAlignment.Center,
        FontSize = 20,
        FontWeight = FontWeight.UltraBold
    },
    Title = "My Window",
    WindowStartupLocation = WindowStartupLocation.CenterScreen,
    Topmost = true,
    Width = 800,
    Height = 800,
    MinHeight = 600,
    MaxHeight = 800,
    MinWidth = 600,
    MaxWidth = 800,
    BackgroundColor = Color.Black,
    ResizeMode = ResizeMode.NoResize
};

Selepas kita melakukan tindakan biasa (membina semula indikator dan menambah contoh), tetingkap sepatutnya mempunyai warna latar belakang baharu.

Ringkasan

Tetingkap tersuai cTrader adalah fleksibel dan boleh disesuaikan pada tahap yang tinggi. Selain sifat yang dinyatakan di atas, anda juga boleh menukar margin dan pelapik, keterlihatan tetingkap tersuai dan sama ada ia aktif dalam keadaan tertentu. Tetingkap tersuai cTrader juga mendedahkan kaedah untuk menunjukkan, menyembunyikan dan menutupnya selain beberapa pengendali acara lain.