cTrader Algoでカスタムウィンドウを操作する

cBots (自動売買)

このビデオと対応する記事では、cTraderのアルゴリズムを作成する際にカスタムウィンドウを操作する方法について説明します。カスタムウィンドウとは何か、そしてそれがあなたのcBotやインディケーターでどのように使用できるかを説明します。また、cBotでカスタムウィンドウを使用する例を作成します。

カスタムウィンドウの例

ここで、『Algo』アプリに切り替えて、カスタムウィンドウがcBotやインディケーターでどのように使用されるかを説明します。新しいインディケーターを作成し、ドキュメントの既成の例を使用します。ここをクリックしてアクセスしてください。

ドキュメントからコードをコピーして、コードエディターウィンドウに貼り付けます。次に、インディケーターをビルドし、インスタンスを追加します。

インディケーターが追加されるとすぐに、カスタムウィンドウが表示されるはずです。このウィンドウには、インディケーターが現在アタッチされているシンボルに関する情報を表示する複雑なフォームが含まれています。このフォームは、カスタムウィンドウで達成できることの優れた例です。

カスタムウィンドウ vs. WPFおよびWinForms

カスタムウィンドウを使用する理由は、WPFWinFormsを使用するよりも優れています。cTraderのカスタムウィンドウは、cTraderの外観と感覚に一致するネイティブスタイルが既に付属しています。WinFormsおよびWPFウィンドウは、異なるスレッドで実行されるため、特別な処理と高度なプログラミングスキルが必要です。これらの問題は、cTraderのカスタムウィンドウを使用することで完全に回避されます。

カスタムウィンドウの作成方法

ここで、カスタムウィンドウをゼロから作成する方法を示します。新しいインディケーターを作成し、Custom Window Exampleと呼びます。この例では、カスタムウィンドウを追加し、いくつかのカスタムコントロールを追加します。ウィンドウ自体はInitialize()メソッドで宣言され、ウィンドウを表示するには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();
}

ウィンドウを表示するには、インディケーターをビルドし、チャートに追加します。

ウィンドウにコントロールを追加する方法

ここで、ウィンドウにカスタムコントロールを追加します。コントロールは、テキスト入りのテキストボックスの形式になります。

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

インディケーターを再構築し、新しいインスタンスを追加して、カスタムコントロールの外観を確認します。

ウィンドウプロパティを変更する方法

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

再度インディケーターをビルドし、インスタンスを追加します。これで、ウィンドウ領域が幅と高さ800ピクセルの長方形領域になります。

次に、ウィンドウをリサイズできる範囲を追加します。これを行うには、MinHeightMaxHeightMinWidthおよび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();

インディケーターを再構築し、インスタンスを追加した後、サイズを試してみます。サイズ変更は指定された幅と高さの範囲内でのみ可能であることが確認できます。

ウィンドウの背景色を変更し、リサイズ不可能にすることもできます。

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

インディケーターをビルドし、インスタンスを追加した後、ウィンドウに新しい背景色が設定されているはずです。

まとめ

cTraderのカスタムウィンドウは柔軟で、高度にカスタマイズ可能です。前述のプロパティに加えて、マージンやパディングの変更、カスタムウィンドウの可視性、特定の条件下でのアクティブ状態なども変更できます。cTraderのカスタムウィンドウには、表示、非表示、閉じるためのメソッドやその他のいくつかのイベントハンドラーも用意されています。

この記事とビデオが役に立ったことを願っています。cTraderのアルゴリズム取引について詳しく知りたい場合は、以下のボタンをクリックしてYouTubeチャンネルに登録してください。

目次

このページについて