Lewati ke isi

Bekerja dengan jendela kustom di cTrader Algo

Dalam artikel ini dan video yang menyertainya, kita akan membahas tentang bekerja dengan jendela kustom saat membuat algo cTrader. Kami akan menjelaskan apa itu jendela kustom dan bagaimana mereka dapat digunakan dalam cBot dan indikator Anda. Kami juga akan membuat contoh penggunaan jendela kustom dalam cBot.

Contoh jendela kustom

Sekarang kita akan beralih ke aplikasi Algo untuk melihat ilustrasi bagaimana jendela kustom dapat digunakan dalam cBot dan indikator Anda. Kita akan membuat indikator baru; di dalamnya, kita akan menggunakan contoh yang sudah jadi dari dokumentasi.

Salin dan tempel kode dari dokumentasi ke dalam jendela editor kode. Kemudian, bangun indikator dan tambahkan instance darinya ke grafik.

Segera setelah indikator ditambahkan, kita akan melihat jendela kustom muncul. Jendela ini berisi formulir kompleks yang menampilkan informasi tentang simbol yang saat ini terhubung dengan grafik indikator. Formulir ini adalah contoh yang bagus tentang apa yang dapat dicapai dengan jendela kustom.

Jendela kustom vs. WPF dan WinForms

Ada beberapa alasan mengapa menggunakan jendela kustom lebih baik daripada menggunakan WPF atau WinForms. Jendela kustom cTrader sudah dilengkapi dengan gaya asli yang sesuai dengan tampilan dan nuansa cTrader. Jendela WinForms dan WPF memerlukan penanganan khusus dan keterampilan pemrograman tingkat lanjut karena mereka berjalan pada thread yang berbeda. Masalah seperti itu sepenuhnya dihindari saat menggunakan jendela kustom cTrader.

Buat jendela kustom

Sekarang kita akan mendemonstrasikan bagaimana Anda dapat membuat jendela kustom dari awal. Kita akan membuat indikator baru dan menamakannya "Custom Window Example". Dalam contoh ini, kita akan menambahkan jendela kustom dan kemudian menambahkan beberapa kontrol kustom ke dalamnya. Jendela itu sendiri akan dideklarasikan dalam metode Initialize(); untuk menampilkan jendela, kita akan memanggil metode 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 jendela, kita dapat membangun indikator dan menambahkannya ke grafik.

Tambahkan kontrol ke jendela

Sekarang kita akan menambahkan kontrol kustom ke jendela. Kontrol ini akan berbentuk kotak teks yang berisi beberapa 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();

Kita akan membangun ulang indikator dan menambahkan instance baru untuk melihat seperti apa kontrol kustom kita.

Ubah properti jendela

 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();

Kita akan sekali lagi membangun ulang indikator kita dan menambahkan instance. Sekarang area jendela kita adalah persegi panjang dengan lebar dan tinggi 800 piksel.

Perubahan berikutnya akan menambahkan rentang di mana jendela dapat diubah ukurannya. Untuk melakukannya, kita akan menambahkan 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();

Kita akan membangun ulang indikator dan, setelah instance ditambahkan, kita dapat mencoba mengubah ukurannya. Pengubahan ukuran hanya mungkin dilakukan dalam rentang lebar dan tinggi yang ditentukan.

Kita juga dapat mengubah warna latar belakang jendela dan membuatnya tidak dapat diubah ukurannya.

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

Setelah kita melakukan tindakan biasa (membangun ulang indikator dan menambahkan instance), jendela seharusnya memiliki warna latar belakang baru.

Ringkasan

Jendela kustom cTrader fleksibel dan dapat disesuaikan hingga tingkat yang tinggi. Selain properti yang disebutkan di atas, Anda juga dapat mengubah margin dan padding, visibilitas jendela kustom, dan apakah mereka aktif dalam kondisi tertentu. Jendela kustom cTrader juga mengekspos metode untuk menampilkan, menyembunyikan, dan menutupnya selain beberapa penangan acara lainnya.