QuantXのAlgorithm Generatorを使ってみた

#はじめに
今回はSmart Tradeから新たにリリースされたAlgorithm Generatorを使ってみたいと思います。

#Algorithm Generatorとは？
Algorithm Generatorを一言で言うと、「プログラミングなしで株式の売買アルゴリズを開発できる環境」です。

Smart Trade社では、同じような環境として[QuantX](https://quantx.io/)と言うものがあります。これは「プログラミングを用いて株式の売買アルゴリズムを開発できる環境」です。ちなみに言語はpythonです。

それぞれ両者のメリット、デメリットをまとめると以下のようになります。

###Algorithm Generator
- メリット
    - プログラミングができなくても開発できる
    - アルゴリズム開発までがスムーズ

- デメリット
    - 用意されたテクニカル指標しか使えない
    - QuantXと比較してアルゴリズムの自由度少ない

###QuantX
- メリット
    - 売買ルール1からで全て自身で書くため自由度が高い

- デメリット
    - プログラミングが書けないと開発できない

##両者のまとめ
基本的にプログラミングができる方は、[QuantX](https://quantx.io/)での開発がおすすめです。Algorithm Generatorは作れるアルゴリズムが限定的(テクニカル指標を使用したもののみ)であり、Algorithm Generatorでできることは全てQuantXでできます。逆にQuantXでしかできないもたくさんあります。

Algorithm Generatorはプログラミングができない方や、できるけどシンプルなテクニカル指標しか使わない方におすすめです。先ほどAlgorithm Generatorは作れるアルゴリズムが限定的と書きましたが、それでも十分な機能は備わっているので、開発環境としては申し分ないと思います。

また、両者どちらを使っても最終的には以下のような画面が出てきます。簡単に説明すると、作成した売買アルゴリズム通りに売買した場合の損益結果です。自身が作成したアルゴリズムの損益の推移が一目で分かるのはアルゴリズム開発に置いて役立ちます。

<img width="1440" alt="スクリーンショット 2019-07-24 16.10.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/4cdf134f-15ab-7d95-6515-569a642c3fd8.png">


#Algorithm Generatorを使ってみよう
今回はクーポンコードをお持ちのかたに向けた内容になっております。(今後、クーポンコードをお持ちでないかたにも公開される予定ですのでお待ちください。)
Algorithm Generatorの開発手順は大きく分けて４つに分かれています。それぞれ順番に解説していきます。

##手順１：銘柄選択
まず初めに、使用する銘柄(売買する銘柄)を選択します。

ターゲット選択の画面から使用する銘柄を選択してください。選択の方法は2つあります。1つ目は予めターゲットごとに分かれたテンプレートを選択することです。以下は「CORE30」を選択した時の例です。「CORE30」を選択すると画面下部の登録された銘柄に「CORE30」の証券コードが表示されます。

<img width="1403" alt="スクリーンショット 2019-07-31 15.47.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/30c2bf36-62d4-077e-029d-a67055cf3085.png">


また、任意の物を選択する場合は一度全ての銘柄を削除し、個別銘柄選択に証券コードを追加してください。

##手順2:売買シグナル作成
売買シグナルの作成では、どういったルールで売買の注文を出すか決めます。
左のタブの「売買シグナル作成」を選択してください。すると以下のような画面が表示されると思います。デフォルトではRSIが20より小さい時に買い注文を出す設定になってます。

<img width="1353" alt="スクリーンショット 2019-07-31 15.50.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/2dee5685-160d-748f-df2a-46614fbd3672.png">

「新しいシグナルをAND」で組み合わせるを選択すると、登録されてるテクニカル指標を用いて条件を追加することができます。例えば以下の例では、「モメンタムが0より大きい」と言う条件を追加しています。

<img width="1158" alt="スクリーンショット 2019-07-31 16.04.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/d55b1377-3730-9142-aec8-329f50c4d292.png">

今回はANDで条件を追加したので、最終的には「RSIが20より小さい、かつ、モメンタムが０より大きい」時に買い注文を出すような条件になっています。条件を取り消したい場合は、右の削除のマークを選択してください。

<img width="1295" alt="スクリーンショット 2019-07-31 16.07.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/73665896-8f9a-f2e1-672d-064ef896e64b.png">

また、下の赤い色の+ボタンを押すとorで条件を追加することができます。例えば以下のように条件を追加した場合、「RSIが20より小さいとき、かつ、モメンタムが０より大きい」または「サイコロジカルラインが70より大きいとき」に買い注文を出します。

<img width="1344" alt="スクリーンショット 2019-07-31 16.22.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/b63c162c-6ce2-b828-54db-b088c3c6b783.png">


このように売買シグナル作成ではテクニカル指標を用いて、売買の条件を設定することができます。

##手順3:シグナルアクション設定
次にシグナルアクションの設定をします。シグナルアクションとは、手順２で設定した条件を満たした時に、購入する株価の数を選択します。

今回は数量指定でやってみます。デフォルトでは数量指定で注文数が100になっています。
この数字は単元株を表しており、1単元が100株の銘柄であれば100×100株購入するようになっています。数量を1に変えれば100株購入します。

今回は1に設定します。

##手順4:損切り利確の設定
最後に損切り利確の設定をおこないます。
デフォルトでは損切りが-3%、利確が５%に設定されています。

これは保有している銘柄のリターンが５%を超えた時に利確、-3%を下回った時に損切りをするようになっています。

これも任意の好きな数字を入力することができます。

##作ったアルゴリズムを評価してみよう
ここまでくれば準備完了です。作ったアルゴリズムを実際に評価してみましょう。
画面左上の「テスト」をクリックしてください。すると以下の画面に移動すると思います。

<img width="1006" alt="スクリーンショット 2019-07-31 15.58.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/e4874200-9203-7d2d-8503-274f39bc7540.png">

そして再び、「テスト」をクリックし、任意の期間を決めてテストをクリックしてください。すると、作成したアルゴリズムでのバックテストが表示されます。

<img width="1434" alt="スクリーンショット 2019-07-31 16.24.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278132/01af2682-aeb5-698a-8e99-bee9c7ba3eeb.png">

#まとめ
今回はAlgorithm Generatorの使い方をまとめてみました。
プログラミングができなくても、簡単なGUI操作だけでテクニカル指標を使ったアルゴリズムが開発ができました。