このページでは、KaburoboBuilder ユニバーサル(KBユニバーサル)の概念と作成の流れをご説明します。
KBユニバーサルの仕組み
KBユニバーサルで設定すべきことは、「どの銘柄をどの手法で分析し、どのタイミングと金額、数量でどのように決済するか?」です。
何も設定しなかったら、まったく売買をしません。KBユニバーサルでは、この設定のことを「命令」と言います。
「命令」の中身は「条件」と「注文」で構成されています。
まとめ
■KBユニバーサルの命令とは
●条件
●注文
を組み合わせてできる。

図1:「命令」の中身
具体的な作業は、この「条件」と「注文」がセットになった「命令」のボールを、たくさん作っていくことになります。
KBユニバーサルの注文タイミング
カブロボルールでは、前場と後場の前に2回注文を出すことができます。

図2:注文タイミング
注文できる時間は、上図のようになっています。カブロボSDKで作る場合と違い、引け後にスクリーニングの時間はありません。
KBユニバーサルでは前場前、昼休みの2回に思考時間があり、前場、後場へ向けた注文を出すことができます。
それでは実際にカブロボの命令を作っていきましょう。
まとめ
■KBユニバーサルにはスクリーニングの時間がない。
銘柄を選ぶ
概要
KBユニバーサルでまず設定することは、投資対象の銘柄とソート順の選択です。投資期間中は選択した銘柄を、選択したソート順で売買するようになっています。 例えば以下のような目的にご利用いただけます。- 全一般業種の銘柄(※ETF含まず)を売買の対象にする(デフォルト)。
- 全業種(※ETF含む)の銘柄を売買の対象にする。
- 特定の業種の銘柄を売買する。
- 特定の一つ(もしくは複数)の銘柄を売買する。
銘柄選択
メニュー「銘柄選択」から投資対象の銘柄を選択する事ができます。 銘柄は、業種による指定と、銘柄コードによる指定の二種類から選択することができます (業種による指定と、銘柄コードによる指定の両方を同時に選択することはできません。)なお、選択した銘柄は画面下の「選択中の銘柄」欄に表示がされます。
1:業種による銘柄選択
「業種」のラジオボタンを選択することで、投資対象銘柄を業種ごとに選択することができます。 また、1つの業種のみではなく複数の業種を選択することもできます。 特定の銘柄に絞らず、全ての銘柄を投資対象とする場合は、何も選択しないようにします。
2:銘柄コードによる銘柄選択
「銘柄指定」のラジオボタンを選択し、具体的な銘柄コードを指定します。 カンマで区切ることにより、複数の銘柄を指定することもできます。図3:銘柄コードによる銘柄選択
銘柄ソート
メニュー「銘柄ソート」は、「銘柄選択」で絞り込んだ銘柄のソート順序を選択します。デフォルトは銘柄コード順です。このソート順に一つずつ銘柄を取り出し、命令を評価していきます。
まとめ
■メニュー「銘柄を選ぶ」では、
●銘柄の選択(業種選択 or 銘柄コード指定)
●銘柄のソート順
を行う。
何も選択しなければ、全銘柄を銘柄コード順に評価していく。
つまり若い銘柄コード番号の銘柄ばかりが頻繁に売買される可能性があるので注意。
条件の作成
概要
メニューの「条件の作成」では、カブロボが株式を売買する為の条件を作成することができます。 条件の作成セクションは「新規注文条件」と「決済注文条件」に分かれています。 ここでの設定はカブロボの挙動に大きな影響を与えます。
「新規注文条件」と「決済注文条件」の違い
「新規注文条件」と「決済注文条件」は、設定できる項目にほとんど差はありません。 銘柄の決算情報、株価情報はもちろんのこと、株式のテクニカル分析や各種国内外指標を利用することができます。 さらにこれらを組み合わせたり、これらを演算した結果も利用することができます。
最大の違いは「決済注文条件」の場合のみ、自己所有のポートフォリオ毎のデータ
(例えば、現在価格や保有日数など)を参照することができます。
なお、「新規注文条件」で作った部品や条件を「決済注文条件」に流用することはできません(その逆も同様)。
それぞれ部品、条件を作成する必要があります。
まとめ
■KBユニバーサルの「条件」は、
●新規注文条件
●決済注文条件(ポートフォリオを部品に使える)
の2種類。
新規注文条件で作った部品は、条件を決済注文条件に流用できない(逆も同様)。
「新規注文条件」と「決済注文条件」は、以下の小項目から構成されます。
- 部品作成
- 条件設定
- 組み合わせ
部品作成
「部品作成」で条件の素である部品を作成します。作成した部品は画面下のフレームから確認できます。部品を作成しただけでは、注文と組み合わせて命令を作ることができません。 この部品を用いて条件を作る必要があります。

図4:「部品作成」の画面例
条件設定
「部品作成」で作成した部品を用いて条件式を作成します。具体的には、任意の定数や部品同士の大小関係を設定します。
組み合わせ
「条件作成」で作成した条件を組み合わせ、一つの条件としてまとめる事ができます。条件の組み合わせには、AND、OR、NOTの論理式を用います。必ずしも条件を組み合わせる必要はありません。単体の条件だけでも、注文と組み合わせて命令を作ることができます。
まとめ
●部品作成 → テクニカル分析や株価など、具体的な「値」を返す部品をつくる。
●条件設定 → 定数や部品同士を比較して条件をつくる
●組み合わせ → 条件を組み合わせて、一つの条件としてまとめる。
※「部品」のままでは「注文」と組み合わせできない。
「条件」または「(条件の)組み合わせ」を作る。
注文の作成
概要
「注文の作成」では、「条件の作成」で作成した条件(およびその組み合わせ)と対になる注文を作成します。 具体的には、現物買いをするのはこの条件を満たしたとき、信用売りをするときはあの条件を満たしたとき..というように設定していきます。カブロボには5種類の注文方法と、2種類の注文設定(注文キャンセル、優先度の設定)があります。
まとめ
■注文
●注文方法
○新規注文(新規注文条件と対になる)
- 現物買い
- 新規信用売り
○決済注文(新規/決済注文条件と対になる)
- 現物売り
- 信用返済
- トレーリングストップ
●注文設定
- 注文キャンセル(前場未約定注文を後場に引き継がない設定)
- 優先度の設定
「現物買い」、「新規信用売り」は、新規注文条件と組み合わせることができます。
「現物売り」、「信用返済」は、決済注文条件だけでなく、新規注文条件とも組み合わせることができます。
「トレーリングストップ」は条件と組み合わせることはできません。現物売り、信用返済の評価が終わった後、
トレーリングストップの設定があれば評価、実行されます。
KBユニバーサルでは、前場に注文を出した(注文できる条件をクリアした)が、何らかの理由で約定できなかった銘柄を
後場ではキャンセルすることができます。これを「注文キャンセル」といいます。
注文キャンセルをしたい場合は、特に何も設定する必要はありません。登録ボタンを押すだけで注文キャンセルを設定することができます。
優先度の設定では、新規注文前場、新規注文後場、決済注文前場、決済注文後場のそれぞれにおいて、命令の実行順序を指定することができます。 トレーリングストップの設定は、いずれの場合も最後に実行されます。
保存
ロボットが完成したら、必ず保存ボタンを押してください。ロボットの一部分の修正であっても、
必ず保存ボタンを押して保存してください。
(保存ボタンを押したタイミングでコンパイルされます)
まとめ
■カブロボが完成したら必ず「保存」ボタンを押す
KaburoboBuilder ユニバーサルの詳細な動作
ロボットの作り方は以上で終わりなのですが、今までの説明で紹介できなかった細かい部分の使用を紹介します。
「n前」のデータ取得について
部品作成において、株価データ、テクニカル分析手法にはn前を指定するとありますが、 実際にはどの時間のデータが取得できるかをご説明します。
図5:n場前の株価取得
現在の時刻が9日の前場と仮定し、分析粒度が前後場足の株価の終値を取得するとします。 株価データn前は、n場前の値が得られます。n=0とすると8日の後場の終値が得られます。 9日の前場に向けての注文時点では、当日の前場終値は取得できないからです。
もし9日の後場でn=0とすると9日の前場の終値が取得できます。 また、このnという数字は営業日ベースで見たときの値です。土日や祝日はスキップしている点にも注意してください。

図6:n日前の株価取得
さらに上の図をご覧ください。現在の時刻が9日の前場と仮定し、 分析粒度が日足の株価の終値を取得するとします。 株価データn日前は、n+1日前の値が得られます。n=0とすると8日の引けの終値が得られます。 土日や祝日はスキップされていることにも注意してください。
新規注文時の注文処理
KBユニバーサルでは注文時に資金の使い方や注文の優先度などを細かくできますが、その注文をロボットはどういう 順序で出すのでしょうか。ここではユーザが作成したロボットからどうやって実際に注文が出されるのかを説明します。
図7:注文フローチャート
上の図はKBユニバーサルが実際に注文を出すまでのフローチャートです。
KBユニバーサルでは、指定した銘柄ソート順に、一つずつ「条件の作成」で作成した条件に該当するかを調べて注文します。
設定したすべての条件に当てはまるかをチェック・注文してから、次の銘柄に進みます。
ここで注意したいのは、取引余力の30%を1回の購入資金に当てる場合、取引余力の30%を1つの銘柄に使うという意味です。 例えば新規注文条件にA銘柄・B銘柄の2銘柄(銘柄ソート順の優先度はA銘柄 > B銘柄とする)が該当した場合、 取引余力の30%がA銘柄に、B銘柄にはA銘柄の注文に使った余力の残り、70%の中のさらに30%が使われます。