取引市場
cTrader Windows 4.5のリリース以降、APIにはMarketSessionsインターフェースが含まれています。 これにより、現在の市場セッションに関する情報を取得し、このデータをcBotやインジケーターで使用できます。
アルゴ開発における取引時間
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にも現在のすべてのセッションが含まれますが、終了したばかりの過去のセッションも含まれます。 その値は、MarketSessionsChangedがトリガーされる前のcBotまたはインジケーターのMarketSessionsプロパティの値と等しくなります。
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プロパティは、ライブ環境とバックテスト環境の両方で機能します。 バックテスト中、このプロパティには、選択したバックテストタイミングに関連するセッションが含まれます。 言い換えると、特定の過去の取引期間中にアクティブだった取引セッションにアクセスするために使用できます。