cTrader Desktop 4.5のリリースに伴い、APIにはMarketSessions
インターフェースが追加されました。これにより、現在の市場セッションに関する情報を取得し、このデータをcBots/インディケーターで使用することができます。
アルゴ開発における取引セッション
MarketSession
型はenum
で、様々な取引セッション(例えばSingapore
やLondon
)を表します。
それに対して、MarketSessions
プロパティはMarketSession
型です。現在の市場セッションをすべて取得するには、以下のように使用します。
1 |
|
MarketSessions
プロパティの値は、cTrader UIの左下隅にある「取引セッション」フィールドに表示されるセッションと一致するはずです。
現在のセッションに特定のセッションが含まれているかどうかを確認するには、HasFlag
メソッドを使用します。
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 |
|
また、MarketSessionsChanged
イベントを処理することで、取引セッションの変更を検出し、反応することができます。MarketSessionChangedEventArgs
クラスには、NewSessions
とPreviousSessions
という2つのプロパティがあります。
NewSessions
には、現在のセッションと新しく始まったセッションがすべて含まれます。NewSessions
の値は、cBot/インディケーターのMarketSessions
プロパティの値と常に一致します。PreviousSessions
には、現在のセッションと終了したばかりの過去のセッションがすべて含まれます。その値は、MarketSessions
プロパティの値がMarketSessionsChanged
イベントがトリガーされる前の値と一致します。
より詳細なNewSessions
とPreviousSessions
の動作については、以下の例を参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
ログには、セッション変更ごとに2つの新しいエントリが表示されるはずです。これらのエントリは、過去の取引セッションと現在の取引セッションの情報を提供します。
バックテスト中の取引セッション
MarketSessions
プロパティは、ライブ環境とバックテスト環境の両方で機能します。バックテスト中は、このプロパティに選択したバックテストのタイミングに関連するセッションが含まれます。言い換えれば、特定の過去の取引期間中にアクティブだった取引セッションにアクセスできます。