cAlgo API リファレンス

チャート関連EventArgs【cAlgo API】

2020年11月2日

さまざまなイベント専用引数

イベント処理を書く際に重要なのが、イベント発生時の情報を持ってるパラメータです。cAlgoではほぼイベントごとにそのイベント専用のEventArgsクラスが定義されています。

なお、イベント一覧を見てもわかると思いますが、イベントの多くはChartが持ってます。MT4のイベント処理関数もOnChartEvent()でしたよね。

cAlgoは細かなイベントが色々用意されてるので実際はChart以外のイベントもたくさんあるのですが、よく使うものは結局Chartイベントなんです。

ここではChartのイベントとして紹介してますが、ほとんどがChartのベースとなってるChartAreaインターフェースで用意されてるものなので、ほとんどはIndicatorAreaでも使用可能です。

 

 

Chart (ChartArea)マウスイベントパラメータ

ChartMouseEventArgs と ChartDrawEventArgs

MouseDown、MouseUp、MouseEnter、MouseLeave、MouseMoveといったイベントがChartMouseEventArgsで、DragStart、Drag、DragEndといったイベントがChartDrawEventArgsで情報を提供します。イベント内容は文字通りなので説明不要でしょう。

なお、ドラッグした時のイベント発生順はMouseDown→DragStart→MouseMove→Drag→...→MouseUp→DragEnd→MouseMoveです。(マウスを動かさなくても最後に1回MouseMoveが発生します。)

(2021/3/3追記)cTrader4.0で変わりました。イベント発生順はMouseDown→DragStart→MouseMove→Drag→...→DragEnd→MouseMove→MouseUpとなり、MouseUpが最後になりました。この順序に依存したコードは書かないほうがよさそうです・・・

public class ChartMouseEventArgs : Object

public class ChartDragEventArgs : ChartMouseEventArgs

この2つのクラスは名前は違えど、中身は全く同じです。ChartDragEventArgsはChartMouseEventArgsを継承して独自のクラスとなってますが、特有のプロパティを持ちません。

クラスですが、メソッドは持っておらず、引数として受け取って読み取り専用プロパティで中の情報を読み取るためだけに使います。(基本的に他のEventArgsも同様です。)

 

 

プロパティ
(DateTime) TimeValue

イベントが発生した場所のX軸位置を時間で取得します。

(int) BarIndex

イベントが発生した場所のX軸位置をBarsのインデックスで取得します。

(double) YValue

イベントが発生した場所のY軸位置を価格で表します。

(bool) AltKey

イベント発生時にAltキーが押されてたかどうか取得します。

(bool) ShiftKey

イベント発生時にShiftキーが押されてたかどうか取得します。

(bool) CtrlKey

イベント発生時にCtrlキーが押されてたかどうか取得します。

(double) MouseX

イベントが発生した場所のX軸位置の座標を取得します。

(double) MouseY

イベントが発生した場所のX軸位置の座標を取得します。

(Chart) Chart

イベントが発生したChartを取得します。

(ChartArea) ChartArea

イベントが発生したChartAreaを取得します。

 

 

ChartMouseWheelEventArgs

MouseWheelイベントの情報を持ちます。マウスホイールが回されたときの情報を保持します。ちなみにMouseWheelイベントは、シングルチャートモード(1画面1チャートでホイールでチャートを切り替えるレイアウト)になってると拾えませんので使用時は注意してください。

public class ChartMouseWheelEventArgs : ChartMouseEventArgs

ChartMouseEventArgsにホイールがどれだけ回されたかの情報を加えただけです。

 

プロパティ
(double) Delta

このイベントでどのくらいマウスホイールが回されたか取得する。

ChartMouseEventArgsのプロパティすべて

上記参照

 

 

Chart(ChartArea)のオブジェクト関連イベントパラメータ

cTrader4.0よりチャートオブジェクトの複数選択が可能になりました。それに伴い、オブジェクト関連EventArgsも単数形→複数形に変更となっています。(2021/3/3更新)

ChartObjectsAddedEventArgs、ChartObjectsRemovedEventArgs、ChartObjectsUpdatedEventArgs、(ChartObjectsEventArgs)

それぞれObjectsAdded、ObjectsRemoved、ObjectsUpdatedイベントの情報を持ちます。チャートオブジェクト(トレンドラインなど)が追加された、削除された、更新されたときに発生するイベントです。

public class ChartObjectsEventArgs : Object

public class ChartObjectsAddedEventArgs : ChartObjectsEventArgs

public class ChartObjectsRemovedEventArgs : ChartObjectsEventArgs

public class ChartObjectsUpdatedEventArgs : ChartObjectsEventArgs

すべてChartObjectEventArgsを継承していますが、特有プロパティを持たず、中身はChartObjectEventArgsと全く同じです。

 

プロパティ
(IReadOnlyList<ChartObject>) ChartObjects

イベントが発生したチャートオブジェクトのListを取得します。プロパティの型はChartObjectのため、たいていはキャストして使うことになります。

(Chart) Chart

イベントが発生したチャートを取得します。

(ChartArea) Area

イベントが発生したチャートエリアを取得します。

 

 

ChartObjectHoverChangedEventArgs

ChartObjectHoverChangedイベントの情報を持ちます。オブジェクトのホバーが変更した時に発生するイベントです。マウスカーソルがのってホバーされた時とカーソルが外れてホバーが外れた時、どちらも発生します。

public class ChartObjectHoverChangedEventArgs : ChartObjectEventArgs

 

プロパティ
(bool) IsObjectHoverd

オブジェクトがホバーされてるかどうか取得します。

ChartObjectEventArgsのプロパティすべて

ChartObjectなど

 

 

ChartObjectsSelectionChangedEventArgs

ChartObjectsSelectionChangedイベントが使用します。チャートオブジェクトの選択が変更されたときに発生するイベントです。選択が外れた時も発生します。

public class ChartObjectsSelectionChangedEventArgs : object

cTrader4.0からはChartObjectEventArgsを親クラスに持たなくなりました。

 

プロパティ
(IReadOnlyList<ChartObject>) ObjectsAddedToSelection

選択されたオブジェクトのリストを取得します。

(IReadOnlyList<ChartObject>) ObjectsRemovedFromSelection

選択が外れたオブジェクトのリストを取得します。

(Chart) Chart

イベントが発生したチャートを取得します。

(ChartArea) Area

イベントが発生したチャートエリアを取得します。

 

 

(非推奨) ChartObjectAddedEventArgs、ChartObjectRemovedEventArgs、ChartObjectUpdatedEventArgs、(ChartObjectEventArgs)

こちらはcTrader3.8まで使われていたEventArgsです。互換性のため残っていますが、4.0以降は非推奨なので使わないほうがいいでしょう。一応記事は残しておきます。

それぞれ単数形のObjectAdded、ObjectRemoved、ObjectUpdatedイベントの情報を持ちます。

public class ChartObjectEventArgs : Object

public class ChartObjectAddedEventArgs : ChartObjectEventArgs

public class ChartObjectRemovedEventArgs : ChartObjectEventArgs

public class ChartObjectUpdatedEventArgs : ChartObjectEventArgs

すべてChartObjectEventArgsを継承していますが、特有プロパティを持たず、中身はChartObjectEventArgsと全く同じです。

 

プロパティ
(ChartObject) ChartObject

イベントが発生したチャートオブジェクトを取得します。プロパティの型はChartObjectのため、たいていはキャストして使うことになります。

(Chart) Chart

イベントが発生したチャートを取得します。

(ChartArea) Area

イベントが発生したチャートエリアを取得します。

 

 

(非推奨) ChartObjectSelectionChangedEventArgs

cTrader3.8まで使われており、互換性のため残っていますが、4.0以降は非推奨。単数形のChartObjectSelectionChangedイベントが使用します。

public class ChartObjectSelectionChangedEventArgs : ChartObjectEventArgs

 

プロパティ
(bool) IsObjectSelected

オブジェクトが選択されてるかどうか取得します。

ChartObjectEventArgsのプロパティすべて

ChartObjectなど

 

 

チャート自体の変更に関するイベントパラメータ

ChartScrollEventArgs

ScrollChangedイベントの情報を持ちます。チャートがスクロールされた際に発生するイベントです。マウスでのドラッグやAPI呼び出し、ローソク足更新による自動スクロールでも発生します。

public class ChartScrollEventArgs : Object

 

プロパティ
(int) BarsDelta

イベント発生でローソク足何本分スクロールされたか取得します。

(double) BottomYDelta

イベント発生でY軸の最低値 (Chart.BottomY) がどれだけ動いたか取得します。

(double) XTopYDelta

イベント発生でY軸の最大値 (Chart.TopY) がどれだけ動いたか取得します。

(Chart) Chart

イベントが発生したチャートを取得します。

(ChartArea) Area

イベントが発生したチャートエリアを取得します。

 

 

ChartSizeEventArgs

SizeChangedイベントの情報を持ちます。チャートサイズが変更された際に発生するイベントです。

public class ChartSizeEventArgs : Object

 

プロパティ
(Chart) Chart

イベントが発生したチャートを取得します。

(ChartArea) Area

イベントが発生したチャートエリアを取得します。

 

 

Chart特有イベントのパラメータ

ここからはIndicatorAreaでは使用不可のイベントです。

ChartTypeEventArgs、ChartColorEventArgs、ChartDisplaySettingEventArgs

それぞれChartTypeChanged、ColorsChanged、DisplaySettingsChangedイベントの情報を持ちます。チャートタイプが変わった、色が変わった、表示設定が変わったときに発生するイベントですね。

public class ChartTypeEventArgs : Object

public class ChartColorEventArgs : Object

public class ChartDisplaySettingsEventArgs : Object

すべて別のクラスですが、プロパティが同一のためまとめます。

 

プロパティ
(Chart) Chart

イベントが発生したチャートを取得します。

 

 

IndicatorAreaAddedEventArgs、IndicatorAreaRemovedEventArgs、(IndicatorAreaEventArgs)

IndicatorAreaAdded、IndicatorAreaRemovedイベントの情報を持ちます。インジケータ用別窓が追加された削除されたときに発生するイベントです。

public class IndicatorAreaEventArgs : Object

public class IndicatorAreaAddedEventArgs : IndicatorAreaEventArgs

public class IndicatorAreaRemovedEventArgs : IndicatorAreaEventArgs

例によって実質同じクラスです。

 

プロパティ
(Chart) Chart

イベントが発生したチャートを取得します。

(ChartArea) Area

イベントが発生したチャートエリアを取得します。

 

 

ChartZoomEventArgs

ZoomChangedイベントの情報を持ちます。チャートの拡大率が変わったときに発生するイベントです。

public class ChartZoomEventArgs : Object

 

プロパティ
(Chart) Chart

イベントが発生したチャートを取得します。

 

-cAlgo API リファレンス
-, ,

© 2021 cTrader's Life Powered by AFFINGER5