cBotの作成と実行

cBots (自動売買)

アクションマップ

次の図は、新しいcBotを作成して実行する際のアクションフローを示しています。

  • 新しいcBotを追加する
  • サンプルコードを編集する
  • cBotを保存してビルドする
  • cBotインスタンスを作成してカスタマイズする
  • cBotインスタンスを実行する
新しいcBotを追加
サンプルコードを編集
cBotを保存してビルド
cBotインスタンスを作成およびカスタマイズ
cBotインスタンスを実行

新しいcBotを追加

検索バーの右側にある’新規‘ボタンをクリックします。次のウィンドウが開きます。

cBotの名前を入力し、2つのオプションから選択します。

  • 空白‘。このオプションを選択すると、新しいcBotには基本的なテンプレートのみが含まれます。
  • リストから‘。このオプションを選択し、下のリストからcBotを選択すると、新しいcBotには選択したアルゴリズムのコード全体が含まれます。リストにある事前作成されたcBotは、さまざまなcBotタイプと自動化アクションをカバーしています。

サンプルリポジトリ

リストから‘オプションのコードサンプルは、git@github.com:spotware/ctrader-automate-samples.gitリポジトリから取得されます。アクセスするには、ここをクリックしてください。

作成‘をクリックして、ボットの設定を完了します。

注意

同様のアルゴリズムを異なる名前で作成したい場合は、常に複製機能を使用できます。

サンプルコードを編集

新しいボットをクリックして、コードエディタウィンドウを開きます。前のステップで’空白‘を選択した場合、次のコードが含まれます。

 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
27
28
29
30
31
32
33
34
35
36
37
  using System;
  using System.Linq;
  using cAlgo.API;
  using cAlgo.API.Indicators;
  using cAlgo.API.Internals;
  using cAlgo.Indicators;

  namespace cAlgo.Robots
  {
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class NewcBot : Robot
    {
        [Parameter(DefaultValue = 0.0)]
        public double Parameter { get; set; }

        /* This method performs an action of your choosing 
        when a cBot is launched. */
        protected override void OnStart()
        {
            // Put your initialization logic here
        }

        /* This method performs an action of your choosing
        every tick. */
        protected override void OnTick()
        {
            // Put your core logic here
        }

        /* This method performs an action of your choosing
        when a cBot stops working. */
        protected override void OnStop()
        {
            // Put your deinitialization logic here
        }
    }
  }

注意

前のステップで’リストから‘を選択した場合、cBotはすぐにアクションの準備が整います。詳細な取引ロジックとカスタムパラメータが含まれます。

先に説明したように、cBotの属性Robotとそのオプションプロパティ(TimeZoneAccessRightsなど)は、cBotクラス(NewcBot)の宣言の前に配置されます。

OnStart()メソッドは、cBotのインスタンスが起動するたびに呼び出されます。一方、OnTick()メソッドは、ティックごとに呼び出されます。最後に、OnStop()メソッドは、新しいcBotのインスタンスが動作を停止するたびに呼び出されます。

OnTick()メソッドはティックごとにアクションを実行するため、CPU負荷が高いことに注意してください。特に株式や指数を取引する場合、ティックごとに取引操作を行う必要性はほとんどありません。

代わりに、OnTick()メソッドをOnBar()メソッドに置き換えることができます。その名の通り、このメソッドはバーのオープニングでのみ呼び出され、CPU負荷を大幅に軽減します。

これらは、cBotの動作を設定するために使用できる唯一の方法ではありません。ただし、C#を始めたばかりの場合、これらが最も簡単に使用できる方法です。

クラス、メソッド、プロパティについて詳しくは’リファレンス‘セクションを参照してください。また、C#と.NETの導入で示されているように、カスタムメソッドを書くことも常に選択肢としてあります。

これまでに学んだことと他の部分で提供されているをもとに、cBotのコードを自分の要件に合わせて編集してください。

Image title

スクリーンショットを再現するには、次のコードを名前空間宣言の後にコピーして貼り付けてください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
    [Robot()]
    public class Sample_cBot : Robot
    {
        protected override void OnStart()
        {
            var result = ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000);

            if (result.IsSuccessful)
            {
                var position = result.Position;
                Print("Position entry price is {0}", position.EntryPrice);
            }
        }
    }

cBotを保存してビルド

コードエディタウィンドウの上部にある’保存‘ボタンをクリックして、コードを保存します。あるいは、Ctrl+Sを押します。コードエディタ内の任意の場所を右クリックして、新しく開いたメニューから’保存‘を選択することもできます。

Image title

コードを使用する前に、作業cBotに変換する必要があります。cBotをビルドするには、コードエディタの上部またはcBotメニューにある’ビルド‘アイコンをクリックします。このアクションのキーボードショートカットはCtrl+Bです。

ビルドが成功すると、‘ビルド結果’ビューアにこれを確認するメッセージが表示されます。ビルドが失敗した場合、このウィンドウにはビルドアクションが実行されたときに発生したすべてのエラーの概要が表示されます。’ビルド結果‘ビューアのエラー説明をクリックすると、コード内のエラーが発生した正確な場所が表示されます。

最後のビルド以降にコードに変更が加えられた場合、’ビルド‘アイコンの横に赤いアスタリスクが表示されます。この場合、実行する前に再度ボットをビルドしてください。

cBotインスタンスを作成およびカスタマイズ

上記のアクションをすべて正常に完了した場合、cBotはアクションの準備ができているはずです。次のアクションのいずれかを実行して、新しいインスタンスを作成して使用を開始します。

  • 拡張名の右側にある’+’アイコンをクリックします。表示されるメニューで、取引したいシンボルを選択します。

Image title

  • cBot名の右側にある’三点’アイコンをクリックし、’インスタンスを追加‘を選択します。cTraderは、EURUSDシンボル(または同様のシンボル)を使用し、cBotの実行されるキャンドルスティックチャートの時間枠としてh1を自動的に作成します。

新しいインスタンスがcBotの直下に表示されるはずです。

Image title

コード内でカスタマイズ可能なパラメータを指定している場合、これらのパラメータは’パラメータ‘タブにリストされます。このタブは’トレードウォッチ’表示の左側にあります。インスタンスを実行する前に、これらのパラメータが要件に合っていることを確認してください。

Image title

現在のパラメータ値をローカルに保存された.cbotsetファイルに保存するには、’保存‘アイコンを’パラメータ‘タブの右上隅にクリックします。

また、既存の.cbotsetファイルからパラメータ値をアップロードするには、’フォルダ‘アイコンをクリックします。

cBotインスタンスを実行

新しく作成したインスタンスを実行するには、インスタンス名の右側にある’cBotを開始‘ボタンを押します。cBotsを初めて使用する場合は、警告ウィンドウが表示されます。"**アルゴリズム取引の仕組みを理解しています...**"フラグをチェックし、’OK‘を押します。要求された場合は、cBotに必要なアクセス権を提供します。

Image title

新しく作成したインスタンスを停止するには、’停止‘ボタンを押します。現在選択されているインスタンスのシンボルと時間枠を変更できますが、実行中のインスタンスでは不可能です。実行中のインスタンスのパラメータを変更することはできません。