カスタムウィンドウプラグインを作成する方法

cBots (自動売買)

プラグインを使用すると、ウェブサイト、ツール、またはクリックされたときに特定の操作を実行するボタンを含むカスタムウィンドウを作成できます。

この記事と対応するビデオでは、プラグインを使用してアクションボタンを含むカスタムウィンドウを作成する方法を紹介します。

プラグインの作成

すべてのオープンポジションに利益確定を設定するボタンがあるカスタムウィンドウを作成することを目指します。まず、ウィンドウとボタンの要素から始めましょう。

Algo」アプリをクリックし、「プラグイン」タブに移動します。「新規」ボタンをクリックします。

空白」テンプレートが選択されていることを確認します。プラグインの名前(例:「カスタムウィンドウプラグイン」)を入力し、「作成」ボタンをクリックします。

””

ボタンとウィンドウを宣言します。

1
2
private Button _buttonAddTakeProfit;
private Window _window;

ボタンを初期化します。

1
2
3
4
5
6
_buttonAddTakeProfit = new Button
{
BackgroundColor = Color.SeaGreen,
Height = 50,
Text = ”Add Take Profit”
};

ウィンドウを初期化し、ボタンをその子要素として追加します。

1
2
3
4
5
6
7
8
9
_window = new Window
{
Height = <spanのm”>150<spanのp”>,
<spanのn”>Width <spanのo”>= <spanのm”>150<spanのp”>,
<spanのn”>Padding <spanのo”>= <spanのk”>new <spanのn”>Thickness<spanのp”>(<spanのm”>5<spanのp”>, <spanのm”>10<spanのp”>, <spanのm”>10<spanのp”>, <spanのm”>5<spanのp”>)
<spanのp”>};
<spanのn”>_window<spanのp”>.<spanのn”>Child <spanのo”>= <spanのn”>_buttonAddTakeProfit<spanのp”>;
<spanのn”>_window<spanのp”>.<spanのn”>Show<spanのp”>();

以下の完全なコードをコピーできます:

<spanのnormal”> 1
<spanのnormal”> 2
<spanのnormal”> 3
<spanのnormal”> 4
<spanのnormal”> 5
<spanのnormal”> 6
<spanのnormal”> 7
<spanのnormal”> 8
<spanのnormal”> 9
<spanのnormal”>10
<spanのnormal”>11
<spanのnormal”>12
<spanのnormal”>13
<spanのnormal”>14
<spanのnormal”>15
<spanのnormal”>16
<spanのnormal”>17
<spanのnormal”>18
<spanのnormal”>19
<spanのnormal”>20
<spanのnormal”>21
<spanのnormal”>22
<spanのnormal”>23
<spanのnormal”>24
<spanのnormal”>25
<spanのnormal”>26
<spanのnormal”>27
<spanのnormal”>28
<spanのnormal”>29
<spanのnormal”>30
<spanのnormal”>31
<spanのnormal”>32
<spanのnormal”>33
<spanのnormal”>34
<spanのnormal”>35
<spanのnormal”>36
<spanのk”>using <spanのnn”>System<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API.Collections<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API.Indicators<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API.Internals<spanのp”>;
<spanのk”>namespace <spanのnn”>cAlgo.Plugins
<spanのp”>{
<spanのna”>[Plugin(AccessRights = AccessRights.None)]
<spanのk”>public <spanのk”>class <spanのnc”>CustomWindowPlugin <spanのp”>: <spanのn”>Plugin
<spanのp”>{
<spanのk”>private <spanのn”>Button <spanのn”>_buttonAddTakeProfit<spanのp”>;
<spanのk”>private <spanのn”>Window <spanのn”>_window<spanのp”>;
<spanのk”>protected <spanのk”>override <spanのk”>void <spanのnf”>OnStart<spanのp”>()
<spanのp”>{
<spanのn”>_buttonAddTakeProfit <spanのo”>= <spanのk”>new <spanのn”>Button
<spanのp”>{
<spanのn”>BackgroundColor <spanのo”>= <spanのn”>Color<spanのp”>.<spanのn”>SeaGreen<spanのp”>,
<spanのn”>Height <spanのo”>= <spanのm”>50<spanのp”>,
<spanのn”>Text <spanのo”>= <spanのs”>”Add Take Profit”
<spanのp”>};
<spanのn”>_buttonAddTakeProfit<spanのp”>.<spanのn”>Click <spanのo”>+= <spanのn”>_buttonAddTakeProfit_Click<spanのp”>;
<spanのn”>_window <spanのo”>= <spanのk”>new <spanのn”>Window
<spanのp”>{
<spanのn”>Height <spanのo”>= <spanのm”>150<spanのp”>,
<spanのn”>Width <spanのo”>= <spanのm”>150<spanのp”>,
<spanのn”>Padding <spanのo”>= <spanのk”>new <spanのn”>Thickness<spanのp”>(<spanのm”>5<spanのp”>, <spanのm”>10<spanのp”>, <spanのm”>10<spanのp”>, <spanのm”>5<spanのp”>)
<spanのp”>};
<spanのn”>_window<spanのp”>.<spanのn”>Child <spanのo”>= <spanのn”>_buttonAddTakeProfit<spanのp”>;
<spanのn”>_window<spanのp”>.<spanのn”>Show<spanのp”>();
<spanのp”>}
<spanのk”>protected <spanのk”>override <spanのk”>void <spanのnf”>OnStop<spanのp”>()
<spanのp”>{
<spanのc1″>// プラグイン停止の処理
<spanのp”>}
<spanのp”>}
<spanのp”>}

ビルド」ボタンをクリックするか、Ctrl+Bホットキーを使用してプラグインをビルドします。

Add Take Profit」ボタンが表示されるカスタムウィンドウが表示されます。

ウィンドウを移動、非表示、サイズ変更、または閉じることができます。

プラグインの改善

ソースコードに戻り、ボタンクリックイベントを処理するイベントを追加してプラグインを改善しましょう。

<spanのnormal”>1
<spanのn”>_buttonAddTakeProfit<spanのp”>.<spanのn”>Click <spanのo”>+= <spanのn”>_buttonAddTakeProfit_Click<spanのp”>;

利益確定オプションがないポジションに設定するロジックを追加します。

<spanのnormal”> 1
<spanのnormal”> 2
<spanのnormal”> 3
<spanのnormal”> 4
<spanのnormal”> 5
<spanのnormal”> 6
<spanのnormal”> 7
<spanのnormal”> 8
<spanのnormal”> 9
<spanのnormal”>10
<spanのk”>private <spanのk”>void <spanのnf”>_buttonAddTakeProfit_Click<spanのp”>(<spanのn”>ButtonClickEventArgs <spanのn”>args<spanのp”>)
<spanのp”>{
<spanのk”>foreach <spanのp”>(<spanのkt”>var <spanのn”>position <spanのk”>in <spanのn”>Positions<spanのp”>)
<spanのp”>{
<spanのk”>if <spanのp”>(<spanのn”>position<spanのp”>.<spanのn”>TakeProfit <spanのk”>is <spanのk”>null<spanのp”>)
<spanのp”>{
<spanのn”>position<spanのp”>.<spanのn”>ModifyTakeProfitPips<spanのp”>(<spanのm”>20<spanのp”>);
<spanのp”>}
<spanのp”>}
<spanのp”>}

以下の完全なコードをコピーできます:

<spanのnormal”> 1
<spanのnormal”> 2
<spanのnormal”> 3
<spanのnormal”> 4
<spanのnormal”> 5
<spanのnormal”> 6
<spanのnormal”> 7
<spanのnormal”> 8
<spanのnormal”> 9
<spanのnormal”>10
<spanのnormal”>11
<spanのnormal”>12
<spanのnormal”>13
<spanのnormal”>14
<spanのnormal”>15
<spanのnormal”>16
<spanのnormal”>17
<spanのnormal”>18
<spanのnormal”>19
<spanのnormal”>20
<spanのnormal”>21
<spanのnormal”>22
<spanのnormal”>23
<spanのnormal”>24
<spanのnormal”>25
<spanのnormal”>26
<spanのnormal”>27
<spanのnormal”>28
<spanのnormal”>29
<spanのnormal”>30
<spanのnormal”>31
<spanのnormal”>32
<spanのnormal”>33
<spanのnormal”>34
<spanのnormal”>35
<spanのnormal”>36
<spanのnormal”>37
<spanのnormal”>38
<spanのnormal”>39
<spanのnormal”>40
<spanのnormal”>41
<spanのnormal”>42
<spanのnormal”>43
<spanのnormal”>44
<spanのnormal”>45
<spanのnormal”>46
<spanのk”>using <spanのnn”>System<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API.Collections<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API.Indicators<spanのp”>;
<spanのk”>using <spanのnn”>cAlgo.API.Internals<spanのp”>;
<spanのk”>namespace <spanのnn”>cAlgo.Plugins
<spanのp”>{
<spanのna”>[Plugin(AccessRights = AccessRights.None)]
<spanのk”>public <spanのk”>class <spanのnc”>CustomWindowPlugin <spanのp”>: <spanのn”>Plugin
<spanのp”>{
<spanのk”>private <spanのn”>Button <spanのn”>_buttonAddTakeProfit<spanのp”>;
<spanのk”>private <spanのn”>Window <spanのn”>_window<spanのp”>;
<spanのk”>protected <spanのk”>override <spanのk”>void <spanのnf”>OnStart<spanのp”>()
<spanのp”>{
<spanのn”>_buttonAddTakeProfit <spanのo”>= <spanのk”>new <spanのn”>Button
<spanのp”>{
<spanのn”>BackgroundColor <spanのo”>= <spanのn”>Color<spanのp”>.<spanのn”>SeaGreen<spanのp”>,
<spanのn”>Height <spanのo”>= <spanのm”>50<spanのp”>,
<spanのn”>Text <spanのo”>= <spanのs”>”Add Take Profit”
<spanのp”>};
<spanのn”>_buttonAddTakeProfit<spanのp”>.<spanのn”>Click <spanのo”>+= <spanのn”>_buttonAddTakeProfit_Click<spanのp”>;
<spanのn”>_window <spanのo”>= <spanのk”>new <spanのn”>Window
<spanのp”>{
<spanのn”>Height <spanのo”>= <spanのm”>150<spanのp”>,
<spanのn”>Width <spanのo”>= <spanのm”>150<spanのp”>,
<spanのn”>Padding <spanのo”>= <spanのk”>new <spanのn”>Thickness<spanのp”>(<spanのm”>5<spanのp”>, <spanのm”>10<spanのp”>, <spanのm”>10<spanのp”>, <spanのm”>5<spanのp”>)
<spanのp”>};
<spanのn”>_window<spanのp”>.<spanのn”>Child <spanのo”>= <spanのn”>_buttonAddTakeProfit<spanのp”>;
<spanのn”>_window<spanのp”>.<spanのn”>Show<spanのp”>();
<spanのp”>}
<spanのk”>private <spanのk”>void <spanのnf”>_buttonAddTakeProfit_Click<spanのp”>(<spanのn”>ButtonClickEventArgs <spanのn”>args<spanのp”>)
<spanのp”>{
<spanのk”>foreach <spanのp”>(<spanのkt”>var <spanのn”>position <spanのk”>in <spanのn”>Positions<spanのp”>)
<spanのp”>{
<spanのk”>if <spanのp”>(<spanのn”>position<spanのp”>.<spanのn”>TakeProfit <spanのk”>is <spanのk”>null<spanのp”>)
<spanのp”>{
<spanのn”>position<spanのp”>.<spanのn”>ModifyTakeProfitPips<spanのp”>(<spanのm”>20<spanのp”>);
<spanのp”>}
<spanのp”>}
<spanのp”>}
<spanのk”>protected <spanのk”>override <spanのk”>void <spanのnf”>OnStop<spanのp”>()
<spanのp”>{
<spanのc1″>// プラグイン停止の処理
<spanのp”>}
<spanのp”>}
<spanのp”>}

プラグインを再度ビルドします。

Trade」アプリに移動し、ポジションが開かれていない場合はポジションを開き、「Add Take Profit」ボタンを使用してボタンが機能することを確認します。

まとめ

この記事では、操作用のボタンや他の便利な要素を含むカスタムウィンドウを作成する方法を学べたと思います。cTrader Algoの詳細については、ドキュメントを参照するか、フォーラムで質問を投稿してください。

目次

このページについて