カスタム要素の配置

プラグインは、cTrader UI の次の 3 つのエリアにカスタム要素を追加できます。具体的には、アクティブシンボルパネル(ASP)、トレードウォッチ表示に新しいタブ、カスタムチャートフレームです。このガイドでは、これらのオプションをすべて使用する方法を説明し、関連する使用例を提案します。

1 分でプラグインの配置をマスター!

  • cTrader UI を拡張することで、サードパーティのサービスをトレーディングターミナルに簡単に統合できます。
  • 同じプラグインは、UI の異なるエリアで異なる機能を実行できます。cTrader の見た目と使い勝手をカスタマイズするために、創造力を発揮しましょう!
  • プラグインで作成したカスタム要素を、cTrader UI の元の場所から取り外したり取り付けたりすることができます。
  • 異なるアイデアが UI の特定のエリアに適している場合があります。配置を試して、最適な方法を見つけてください!

ASP の使用方法

ASP はチャート表示の右側にあります。プラグインは次のオプションを使用して、さらにカスタム要素を追加できます。

  • AspTab として。 このオプションを使用すると、プラグインは ‘シンボル‘、’DoM‘ などと並んでカスタム要素を別のタブに表示します。
  • AspBlock として。 このオプションを使用すると、プラグインは ‘シンボル‘ タブ内に新しい折りたたみ可能/展開可能なセクションを表示し、タイトルと位置をカスタマイズできます。

以下は、同じプラグインがブロックとして表示される場合とタブとして表示される場合の例です。

AspBlock

使用例

ASP ブロックにカスタム要素を表示するプラグインのアイデアをいくつか紹介します。

  • 指定したシンボルの保護レベルを計算する小さな計算機。
  • 現在アクティブなシンボルに関する追加情報を表示するグリッド。

以下のアイデアは、ASP タブとして埋め込むと最適に機能します。

  • 現在開いているすべてのポジションに関するカスタム分析リスト。
  • 金融ニュースアウトレットの WebView。

カスタム要素を ASP ブロックとして追加するには、Asp.SymbolTab.AddBlock(string title) メソッドを使用します。

1
2
3
var child = ... // ブロックに表示したい内容をここに挿入します
AspBlock aspBlock = Asp.SymbolTab.AddBlock("クールなプラグイン");
aspBlock.Child = child; 

カスタム要素を ASP タブとして追加するには、Asp.AddTab(string title) メソッドを使用します。

1
2
3
var child = ... // タブに表示したい内容をここに挿入します
AspTab pluginTab = Asp.AddTab("別のクールなプラグイン");
pluginTab.Child = child;

ASP 内でブロックやタブが表示される順序を決定するには、それぞれの Index プロパティを使用します。

ブロック/タブの順序

カスタムタブは ‘シンボル‘ タブの前には配置できません。また、’シンボル‘ タブ内の ‘新しい注文‘ セクションよりも高い位置にブロックを埋め込むことはできません。そのため、ASP 内に埋め込まれるブロックやタブが正しい順序で表示されるように、順序を確認してください。

トレードウォッチでの使用方法

トレードウォッチの UI を拡張することで、プラグインは以下のオプションを使用して、さまざまな機能を追加できます。

  • TradeWatchTab。 プラグインはカスタムタブを追加して、さまざまな情報や機能を提供します。
  • TradeWatchFrame。 プラグインは独自のカスタムフレームを追加します。

以下は、トレードウォッチのカスタムタブとカスタムフレームの例です。

TradeWatchFrame

使用例

トレードウォッチにカスタム要素を追加するプラグインのアイデアをいくつか紹介します。

  • 特定の取引戦略に基づくアクティブポジションリスト。
  • 取引履歴の要約と分析を提供するカスタムウィジェット。

トレードウォッチ内でカスタムフレームを追加するには、TradeWatch.AddFrame(string title) メソッドを使用します。

1
2
3
var child = ... // フレームに表示したい内容をここに挿入します
TradeWatchFrame pluginFrame = TradeWatch.AddFrame("面白いフレーム");
pluginFrame.Child = child;

カスタムタブを追加するには、TradeWatchTab.AddTab(string title) メソッドを使用します。

1
2
3
var child = ... // タブに表示したい内容をここに挿入します
TradeWatchTab pluginTab = TradeWatch.AddTab("面白いタブ");
pluginTab.Child = child;

チャートフレームでの使用方法

チャートフレーム内でカスタム要素を追加するには、次のオプションを使用できます。

  • ChartFrame。 このオプションを使用して、カスタム要素を独自のチャートフレーム内に追加します。

以下は、チャートフレーム内に追加できるカスタム要素の例です。

使用例

チャートフレームにカスタム要素を追加するプラグインのアイデアをいくつか紹介します。

  • 指定したインジケーターの詳細設定や設定パラメーターを表示するカスタムパネル。
  • テクニカル分析の結果を表示するカスタムグラフ。

チャートフレームにカスタム要素を追加するには、ChartFrame.AddPanel(string title) メソッドを使用します。

1
2
3
var child = ... // パネルに表示したい内容をここに挿入します
ChartFramePanel pluginPanel = ChartFrame.AddPanel("素晴らしいパネル");
pluginPanel.Child = child;

カスタム要素をチャートフレーム内に追加することで、ユーザーがより詳細な情報を得られるようになります。

以下に、カスタム要素をトレードウォッチとチャートフレームに追加するいくつかの例を示します。

  • トレードウォッチにカスタムウィジェットを追加して、ポジションの詳細や取引履歴を表示する。
  • チャートフレームにカスタムパネルを追加して、インジケーターの設定やテクニカル分析の結果を表示する。

これらの機能を使用して、プラグインのユーザー体験を向上させることができます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
namespace cAlgo.Plugins
{
    [Plugin(AccessRights = AccessRights.None)]
    public class PluginPlacementTest : Plugin
    {

        private TextBlock _commissionsText;
        private TextBlock _volumeText;
        private WebView _cTraderWebView;

        protected override void OnStart()
        {
            _cTraderWebView = new WebView();
            _cTraderWebView.Loaded += ShowWebsite;

            _commissionsText = new TextBlock
            {
                Text = ShowCommissions(),
                FontSize = 100,
                TextAlignment = TextAlignment.Center,
                FontWeight = FontWeight.ExtraBold,
            };

            _volumeText = new TextBlock
            {
                Text = ShowVolume(),
                FontSize = 100,
                TextAlignment = TextAlignment.Center,
                FontWeight = FontWeight.ExtraBold,
            };

            ChartManager.AddCustomFrame("cTrader.com").Child = _cTraderWebView;
            Asp.SymbolTab.AddBlock("Commissions").Child = _commissionsText;
            TradeWatch.AddTab("Volume").Child = _volumeText;
            Timer.Start(TimeSpan.FromSeconds(0.5));

        }

        protected void ShowWebsite(WebViewLoadedEventArgs args)
        {
            _cTraderWebView.NavigateAsync("https://ctrader.com");
        }

        protected string ShowCommissions()
        {
            double commissionsCounter = 0;
            foreach (var position in Positions)
            {
                commissionsCounter += position.Commissions;
            }
            return commissionsCounter.ToString();
        }

        protected string ShowVolume() 
        {
            double volumeCounter = 0;
            foreach (var position in Positions) 
            {
                volumeCounter += position.VolumeInUnits;
            }
            return volumeCounter.ToString();
        }

        protected override void OnTimer()
        {
            _commissionsText.Text = ShowCommissions();
            _volumeText.Text = ShowVolume();
        }
    }
}

まとめとして、cTrader はプラグインを通じてカスタム要素を追加するためのいくつかのオプションを提供しています。これにより、cTrader の UI をカスタマイズし、プラットフォームを自分だけのものにすることができます。

目次

このページについて