cTrader CLI

cBots (自動売買)

ctrader-cliは、cTrader Desktopのコンソール版と考えることができ、その機能はcBotsの実行と管理に焦点を当てています。ctrader-cliを使用して行える操作の一部を以下に示します。

  • cTrader Desktop自体にアクセスすることなくアルゴリズムを起動および停止できます。
  • アカウントおよびシンボルデータにアクセスできます。

この機能の通常の1分間の概要は以下にあります。

1分で分かるcTrader CLI!

  • アルゴリズムを操作するためにcTrader Desktopアプリケーションを起動する必要がなくなり、RAMとCPUの消費を節約できます。
  • cTrader CLIはcBotインスタンスの制御を強化します。カスタムスクリプトを作成してCLIプロセスをプログラムで開始および停止できます。
  • 好きな言語を使用して、cTrader CLIを利用してアルゴリズムをプログラムで管理するカスタムツールを作成できます。
  • cTrader CLIを生成AIツールと統合して、自然言語でアルゴリズムにコマンドを発行できます。
  • ctrader-cliを使用すると、複数のcTrader Desktopアプリケーションを開かずに異なる取引アカウントでcBotsを実行できます。
  • コマンドラインスキルは不要です。コマンドラインで何も入力せずにcTrader Desktopから外部プロセスでcBotを起動できます。

警告

cTrader CLIは最新の.NET 6アルゴリズムのみをサポートします。
cTrader CLIはcTrader 4.8以降のバージョンで利用可能です。

cTrader CLIコマンド

他のコマンドラインツールと同様に、ctrader-cliはユーザーが特定の定義済みコマンドをコマンドラインインターフェイスに発行することで操作されます。例えば、次のコマンドを入力すると、トレーディングアルゴが実行できるすべてのチャート期間のリストが表示されます。

ctrader-cli.exe periods

コマンドには名前付きオプションと名前なしの引数があります。

  • オプションは通常、--(フルオプション名の前)または-(短縮オプション名の前)で始まります。
  • 引数の値は、追加の名前や表記なしでそのまま入力されます。

引数が1つあるコマンドの例は以下を参照してください。

ctrader-cli.exe metadata C://Users/{username}/Documents/cAlgo/Sources/Robots/mycoolcbot.algo

このコマンドは、指定されたファイルパスのアルゴリズムに関する基本的なメタデータを出力します。この情報には、アルゴリズム名、そのタイプ、パラメータ、および最後のビルド時間が含まれます。

2つの名前付きオプションがあるコマンドの例は以下を参照してください。

ctrader-cli.exe accounts --ctid=test@email.com --pwd-file=C:/password/password.pwd

このコマンドは、指定されたcTIDにリンクされているすべてのアカウントに関するデータを出力します。

コマンドとそのサポートされている引数の完全なリストは、以下の表を参照してください。特定のコマンドに対するすべての非必須オプションは角括弧で示されています。

コマンド定義サポートされているオプションと引数
-h | --help利用可能なコマンドとその引数のリストを表示します。なし
periods利用可能なすべてのチャート期間を表示します。なし
accountscTIDにリンクされているアカウントを表示します。--ctid | -c--pwd-file, [--broker], [--environment-variables | -e]
symbols利用可能なすべてのシンボルを表示します。--ctid | -c--pwd-file--account | -a, [--broker], [--environment-variables | -e]
metadata特定のアルゴリズムに関するメタデータを表示します – cBotまたはインジケーターのいずれか。<cbot.algo>
run特定のシンボルと指定された期間で特定のcBotを実行します。<cbot.algo>, [<params.cbotset>], --ctid | -c--pwd-file--account | -a, [--broker], [--environment-variables | -e], --symbol--period, [--full-access], [<params.cbotset>], [--CustomParameter1], …, [--CustomParameterX]

次の表では、各オプションと引数の定義を説明しています。

オプションまたは引数定義
--version | -v現在のcTrader CLIのバージョン(ctrader-cli.exe --versionで表示可能)。
--ctid | -ccTIDに割り当てられたニックネームまたはメールアドレス。
--pwd-file指定されたcTIDのパスワードを含むファイルのパス。
--account | -a特定のアカウントの番号。
--broker特定のブローカーの名前(同じ番号で複数のブローカーに登録されたアカウントがある場合にのみ指定)。
--symbol | -sアルゴリズムが操作するシンボル。
--environment-variables | -e指定された場合、他のオプション(例:-c)の値を環境変数から取得できます。
<cbot.algo>実行/メタデータ取得しようとする.algoファイルのパス。runおよびmetadataコマンドでは、このパラメータは最初に指定する必要があります。
--full-access指定された場合、アクセス権の制限なしにアルゴリズムを実行します。
<params.cbotset>実行しようとするアルゴリズムのパラメータ値を含む.cbotsetファイルのパス。runコマンドでは、このパラメータは<cbot.algo>の直後に指定する必要があります。
--CustomParameter1CustomParameter1と一致する名前の任意のカスタムパラメータの値。

PWDファイルの作成

パスワードを含む.pwdファイルを作成するには、.pwd拡張子の新しいテキストファイルを追加するだけです。その後、それを開いてパスワードを入力/貼り付けし、不要な空白を避けるようにしてください。

cTrader CLIの起動方法

ctrader-cliは通常のcTrader Desktopにデフォルトでインストールされています。以下の3つの方法でアクセスできます。

cTrader経由

ctrader-cliを介してcBotインスタンスを実行するには、cTrader Desktopインターフェース(例:‘Trade’アプリ)で右クリックします。次のメニューが表示されます。

Image title

Start External Process’をクリックすると、ctrader-cliが起動します。起動時に、サービスは元々接続されていたチャート上で選択したインスタンスを実行します。

リソース消費の削減

ctrader-cliを使用して外部プロセスでcBotインスタンスを起動した後、CPUとRAMの消費を節約するためにcTrader Desktopを自由に閉じることができます – これによりインスタンスの動作には影響しません。

コマンドライン経由

任意の適切なコマンドラインインターフェース(例:Windows検索バーで‘cmd’と入力)を開いてctrader-cliにアクセスできます。

インターフェースでctrader-cli.exeファイルを含むフォルダに移動します。通常、このパスはWindowsマシンでは以下のようになります。

C:\Users\{username}\AppData\cTrader\{installationId}

正しいフォルダに移動した後、コマンドラインインターフェースに有効なコマンドを入力するだけで実行できます。

PATH変数経由

最後に、ctrader-cliをPATH環境変数に追加することができます(Windowsマシンの場合)。これを行うと、任意の適切なコマンドラインインターフェースで任意のフォルダ内でctrader-cliコマンドを使用できるようになります。

次のアクションを実行します。

1. Windows検索バーに‘env’と入力し、‘システム環境変数の編集’を選択します。

2. 新しく表示されたウィンドウで‘環境変数’をクリックします。

3. ‘{username}のユーザー変数’セクションで‘Path’を選択し、‘編集’をクリックします。

4. ‘新規’ボタンを押し、ctrader-cli.exeファイルのフルパスを表示されたテキストフィールドに貼り付けます。

その後、任意の適切なコマンドラインインターフェースを開きます。任意のフォルダからctrader-cliコマンドを実行できるようになります。

コマンド構文

cTrader CLIをPATH変数に追加した場合、すべてのコマンドの前にctrader-cli.exeではなくctrader-cliを指定する必要があります。

ヒント

お好みのプログラミング言語を使用して、カスタム条件でCLIプロセスを開始および停止するスクリプトを作成できます。

一般的な使用例

一般的な操作を実行するために実行できる一般的なコマンドのリストを以下に示します。

すべてのシンボルを取得する

ctrader-cli.exe symbols --ctid=test@email.com --pwd-file=C:/password/password.pwd

アルゴメタデータを取得する

ctrader-cli.exe metadata C:/RSI_cBot.algo

次に示すのは、metadataコマンドを実行したときに得られる出力の例です – この出力には、cBotパラメータの名前(--CustomParameter1オプションでこれらの名前を使用できます)、そのタイプ、およびデフォルト値を含むすべての重要な情報が表示されます。

{
  "Name": "RSI_cBot",
  "Type": "cBot",
  "AccessRights": "None",
  "BuildTime": "2023-05-11T16:42:56.7421508+03:00",
  "Parameters": [
    {
    "PropertyName": "Quantity",
    "FriendlyName": "Quantity (Lots)",
    "GroupName": "Volume",
    "Type": "Double",
    "DefaultValue": 1.0,
    "MinValue": 0.01
    },
    {
    "PropertyName": "Source",
    "FriendlyName": "Source",
    "GroupName": "RSI",
    "Type": "DataSeries",
    "DefaultValue": {
        "OwnerId": "00000000-0000-0000-0000-000000000000",
        "FriendlyName": "Close",
        "IsStandard": true
    }
    },
    {
    "PropertyName": "Periods",
    "FriendlyName": "Periods",
    "GroupName": "RSI",
    "Type": "Integer",
    "DefaultValue": 14
    }
  ]
}

デフォルトパラメータでcBotを実行する

ctrader-cli.exe run C:\mycoolbot.algo -c=test@email.com --pwd-file=C:\password\password.pwd --account=1209201 --symbol=EURUSD --period=h1

カスタムパラメータでcBotを実行する

ctrader-cli.exe run C:\mycoolbot.algo -c=test@email.com --pwd-file=C:\password\password.pwd --account=1209201 --symbol=EURUSD --period=h1 --ConsolidationPeriods=3 --Periods=15

保存済みプリセットのパラメータでcBotを実行する

ctrader-cli.exe run C:\mycoolbot.algo C:\coolbotsettings.cbotset -c=test@email.com --pwd-file=C:\password\password.pwd --account=1209201 --symbol=EURUSD --period=h1 

cTrader CLIのAlgo API

以下の表は、ctrader-cli内で特定のAlgo APIメンバーがどのように動作するかをまとめたものです。これらの動作は通常のcTraderとは異なることに注意してください。

Algo APIメンバーcTrader CLIの動作
MessageBoxMessageBoxResult.Noneを返します。
Windowすべてのメソッドが無視され、ウィンドウは表示されません。
Notifications.PlaySound完全に無視されます。
Chart.TakeChartshotnullを返します。

まとめ

cTrader CLIは、カスタムインターフェースを使用してcBotsを管理できるため、アルゴリズムトレーディング活動の範囲を拡大したい人にとって重要な機能です。ctrader-cliをさまざまなAPIやサードパーティサービスと統合する実験をお勧めします – cTraderアルゴリズムのための無敵の‘コンパニオン’アプリを作成するかもしれません。

目次

このページについて