cTrader CLIコマンドを実行する¶
この記事では、cTrader CLIコマンドの構造、認証の仕組み、口座データや価格、履歴の取得方法を説明します。
コマンドの構造 ¶
すべてのcTrader CLIコマンドは、同じ構造に従います。
ctrader-cli <command> [arguments] [options]
- オプションには接頭辞が付きます。
--は長い形式、-は短い形式です(--symbolと-sは同じ意味です)。 - オプションとその値は、スペースまたは等号で区切ります。
--symbol EURUSDと--symbol=EURUSDはどちらも有効です。 - 引数は接頭辞のない位置指定の値です。
.algoファイルへのパスは引数です。 - スペースを含む値は、
'/opt/my cbots/trend cbot.algo'のようにシングルクォートまたはダブルクォートで囲む必要があります。 1つのコマンド内では、引用符の種類を統一してください。
認証 ¶
cTrader CLIには、2つの認証方式があります。どちらもセットアップ時に用意する認証情報ファイルを使用します。
| 方式 | 必要なオプション | 主なコマンド |
|---|---|---|
| バッチ | --ctidと--pwd-file | periods、accounts、symbols、metadata、run、backtest |
| 対話型 | --ctid、--passwordまたは--pwd-file、および-q | account、orders、price、candles、positions、exposure、alerts、インジケーター関連のコマンド |
注意
バッチコマンドでは--passwordを使用できません。対話型コマンドでは、--passwordと--pwd-fileのどちらも使用できます。
accounts、symbols、metadata、run、backtestは両方の方式で使用でき、指定したフラグに応じてバッチまたは対話型の処理に切り替わります。
- バッチ方式 –
--pwd-file(または--broker)から認証情報を読み込み、対話操作なしで実行します。 - 対話型方式 –
--passwordと-q(またはコマンド固有のフラグ)を使用して、対話型の呼び出しとして実行します。
時間枠の識別子 ¶
多くのコマンドでは、--periodの値を指定できます。 ctrader-cli periodsを実行すると、使用できるすべての識別子を一覧表示できます。識別子には分、時間、日、週、月のほか、ティック、Renko、レンジバー、Heikin Ashiの各バリエーションが含まれます。識別子の解析では大文字と小文字を区別しません。
取引数量の単位 ¶
--volumeでは、基軸通貨の単位数またはロット数を指定できます。 --volume-type=units(デフォルト)または--volume-type=lotsで、数量の解釈方法を切り替えます。ほとんどのFX銘柄では、100,000単位が1標準ロットに相当します。
--volume-type=lotsを指定した場合 | 基礎資産の単位数 |
|---|---|
--volume=1 | 100,000 |
--volume=0.1 | 10,000 |
--volume=0.01 | 1,000 |
警告
金属、指数、暗号資産では、ロットサイズが銘柄によって異なります。そのため、同じ--volume=1でも、意図したより大きなポジションを建ててしまう場合があります。取引前に銘柄のlotSizeを確認してください。
ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD
たとえば、XAUUSDにlotSize: 100が設定されている場合、--volume=1 --volume-type=lotsで100単位のポジションが建てられます。
日付と時刻 ¶
cTrader CLIの日付と時刻はすべてUTCです。 CLIでは、コンピューターのローカルタイムゾーンやブローカーのサーバー時刻は使用しません。
コマンドの出力と日付の入力には、次のようにUTCが適用されます。
- 出力:JSON出力内の時刻はすべてUTCで、
Zを付けたISO 8601形式です。例:2026-10-08T14:05:00.000Z。 - 対話型コマンド(
candles、deals、orders-history、および-qで実行するbacktest):--fromと--toには、yyyy-MM-dd、dd/MM/yyyy、dd-MM-yyyy、yyyy/MM/ddのいずれかの形式で日付のみを指定します。指定する日付はUTCでの暦日です。dealsとorders-historyでは、--toは指定日の23:59:59 UTCまでの1日全体を含みます。candlesでは、--toは指定日の開始時刻(00:00 UTC)を表します。その日全体を含めるには、--toに翌日の日付を指定してください。--from/--toを指定しない場合、対話型のbacktestは直近7日間を対象とします。
- バッチコマンド(
backtestなど):日付にはdd/MM/yyyy形式を使用します。必要に応じて、dd/MM/yyyy HH:mmのように24時間表記の時刻を追加できます。例:31/12/2026 18:00。いずれもUTCです。
唯一の例外は、実行中のcBot(run、backtest)です。その時刻は、cTrader Algoと同様にcBot内で設定されたTimeZoneに従います。
口座データと市場データの取得 ¶
ctrader-cli periodsは口座も認証情報も必要としないため、最初の動作確認に適しています。
ctrader-cli periods
cTrader IDに紐づく取引口座を一覧表示します。
ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd
口座番号が分かったら、その口座で利用できる銘柄を一覧表示します。
ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567
スクリプトで銘柄の現在価格を取得し、過去のローソク足データを読み込みます。
ctrader-cli price --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD
ctrader-cli candles --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD --period=h1 --count=200 > eurUSD_h1.json
履歴データの制限 ¶
dealsとorders-historyには、次の履歴取得制限があります。
- CLIは
--from/--toで指定した期間全体を、期間の長さに制限なく読み込みます。 - ただし、1回の呼び出しで返されるのは、指定期間内の直近200件の約定(
deals)または直近500件の注文(orders-history)のみです。 --from/--toを指定しない場合、どちらも直近30日間のデータのみを返します。-
--countは返すレコード数を指定します。dealsではデフォルトが50件、最大200件です。orders-historyではデフォルトが100件、最大500件です。
--fromまたは--toを指定すると--countは無視され、最大件数まで返されます。
期間内のレコード数が1回の呼び出しで返せる件数を超える場合は、期間を短く区切ってそれぞれでコマンドを実行してください。
結果が途中で切られていないか確認するには、出力を調べます。
orders-history:出力にはavailableとreturnedがあります。availableがreturnedより大きい場合、その期間にはさらに注文があります。deals:countがちょうど200の場合、その期間にはさらに約定がある可能性があります。
対話型シェルでの一括操作 ¶
対話型シェルでは、一部のコマンドの末尾にallとyesを追加すると、確認プロンプトを省略して一括操作を実行できます。
| コマンド | 末尾にallとyesを付けた形式 |
|---|---|
order cancel | order cancel all yes |
position close | position close all yes |
stop | stop all yes |
alert delete | alert delete all yes |
コマンドを対話型で実行する ¶
コマンドを指定せずにctrader-cliを実行すると、対話型シェルが開きます。表示されたプロンプトに従ってcTIDとパスワードでログインします。その後は、認証情報を再入力せずにコマンドを続けて入力できます。複数のコマンドを連続して実行したい場合に便利です。
1つのコマンドだけを実行してすぐに終了するには、-qを追加します。コマンドの完了と同時にプロセスを終了させる必要があるスクリプトで便利です。
CLIがサポートする機能を確認するためのオプションは2つあります。
| オプション | 用途 |
|---|---|
--help | 共通オプションと起動形式を一覧表示します。 |
--commands | 認証なしで、対話型コマンドとその位置引数の形式をすべて一覧表示します。 |
cTrader IDに紐づく複数のブローカーの口座で同じ口座番号が使われている場合は、--broker=<broker-name>を追加して口座を一意に指定してください。
よくあるエラー ¶
| 症状 | 考えられる原因 | 次の対処方法 |
|---|---|---|
ctrader-cli: command not found | CLIがPATHに登録されていません。 | ターミナルを開き直すか、セットアップガイドの手動インストール手順に従ってください。 |
Parameter password is not allowed | バッチコマンドに--passwordを指定しています。 | 代わりに--pwd-fileを使用してください。詳しいルールはセットアップガイドを参照してください。 |
Account cannot be found | 複数のブローカーで同じ口座番号が使用されており、口座を一意に特定できません。 | --broker=<broker-name>を追加してください。 |
Unknown symbol name | 銘柄名が誤っているか、サポートされていません。 | symbolsを実行し、出力に表示された正確な銘柄名を使用してください。 |
Unknown period | 時間枠の識別子が正しくありません。 | periodsを実行して、使用できるすべての識別子を確認してください。 |
注意
すべてのオプション、デフォルト値、詳しい説明については、CLIリファレンスを参照してください。