StrategyQuantでEAを開発する基本手順(チュートリアル和訳)

StrategyQuantでEAを開発する基本の手順が知りたいという人のために、StrategyQuantをインストールすると見られるチュートリアルの内容を紹介します。

起動してメイン画面になった後、左側のタブの「Getting started」を押すと出てくる画面にチュートリアルがあり、「Creating first strategies」がEA開発の基本手順の動画です。

基本的にこのチュートリアルに沿って紹介しているので、一緒に見ると分かりやすくなると思います。分かりにくいところはチュートリアルのスライド番号も書いてあります。

条件設定で選べる項目が大量にあるので項目全訳まではしてないですが、英語が全然分からない人は、とりあえず「#」が「number(数)」の略語というのを覚えおくと少し解読しやすくなります。また、このEA開発ツールでは、EAのことを「Strategy」と呼びますのでそれも覚えておいてください。日本語でもEAではなくて「ストラテジー」と書くことにします。



Builderは4つのパートに分かれている

左側のタブの「Builder」を押すと、ストラテジー生成画面が出ます。


4つのパートはピンクの枠を付けた部分で、「Progress」「Full settings」「Results」と、画面最下部の「Databank」です。

「Progress」はストラテジー生成の進行を管理するタブで、「Full settings」は生成したいストラテジーの条件を設定するタブです。「Results」は生成されたストラテジーの結果を確認できるタブで、QuantAnalyzerの画面と似ています。

「Databank」の部分は、普段は隠れていて、ピンクの枠を付けた部分を押すと、上に展開します。生成されたストラテジーとそのPFなどの情報が一覧になっていて、クリックするとそれを開くことができます。


「Full settings」タブの必要度の高い設定

Full settings内のタブを左から順番に紹介します。

What to buildタブ

「What to build」というタブは、どのようなストラテジーを生成するかの大枠の設定です。ピンクの枠で囲った部分を上から順に説明します。



①「Strategy type」:4つの選択肢から選んでください。
                     「Simple strategy」1つのシンボル、1つの時間足で稼働するEA
                     「Multi-TF or multi-symbol strategy」メインチャートに加えて、追加チャートをいくつ使用するか入力してください。メインチャートと同じシンボルの異なる時間足のチャートも、異なるシンボルのチャートもカウントします。
       「Strategy from template」テンプレートからEAを作成します
       「Improving existing strategy」既存のストラテジーの一部を改良します。

「Improving existing strategy」は、既存EAのロジックの改良に使える部分です。ただ、MT4やMT5のソースコードを読み込む機能がないので、専用のEA開発ツールで作成し直す必要があります。このタブを選んだ場合のみ「Parts to improve(改良するパーツ)」という別のタブが「What to build」タブに現れるので、そこで変更したい部分の設定を行ってください。「add(追加)」「replace(置換)」「add or replace(追加または置換)」という3つの選択肢があります。

ここの機能の使い方については別の記事で紹介しています。





②「Trading directions」:ロング・ショート縛りの設定です。ロング・ショート両方、ロングのみ、ショートのみの3つの選択肢から選んでください。右側にある「Entry Symmetry」「Exit Symmetry」というのは、エントリー(またはエグジット)のロジックをロングとショートで対称(ひっくり返す)にするかどうかの設定です。

③「Strategy style」:「ファジー理論」を使った新機能を使うかどうかです。よく分からない方はデフォルト設定のまま無視してください。

④「Build mode」:「Genetic evolution(遺伝的プログラミングを利用)」「Random generation(ランダム生成)」のどちらかを選びます。「Genetic evolutionの方が速い」と書かれていますので、StrategyQuant的にはこちらの方がおすすめのようです。

遺伝的プログラミングって何?という方向けに書くと、StrategyQuantでは、インジなどの条件を組み合わせてストラテジーを自動生成しますが、その生成方法をランダムか遺伝的プログラミングかで選べます。しかし、どちらも「とりあえず組み合わせてみていいかどうか見る」という方法でストラテジーを作成するのは変わりません。遺伝的プログラミングの方が、速く効率的に良い組み合わせを探せるという扱いなので、ここは遺伝的プログラミングを選ぶのがおすすめです。

⑤「# of conditions, periods」:「#=数」「condition=条件」「period=期間」です。主に条件の数を指定していきます。最小と最大を入力するので、はっきり決まっていなくても大丈夫です。「Global shift」「Global indicator period」も指定しますが、このあたりの条件は何に設定すればいいのかよく分からないので、とりあえず生成するストラテジーの条件の最大と最小を入れるといいと思います。

⑥「Stop Loss」:ストップロスの設定です。ATRベースも選べます。「Use indicator levels」というのも面白いと思います。Pipsではなくてインジの値でストップロスを設定します。一番最初の「Is it required?」という項目は、損切り有り無しの設定ですが、ONにすることを推奨します。これを入れないと、損切りしないEAも生成されてしまうため、試行回数が無駄になります。

⑦「Profit target」:テイクプロフィットの設定です。ストップロスと同様です。



Genetic optionsタブ

「Genetic options」タブは、遺伝的プログラミングに関する設定ですが、チュートリアル動画では「ユーザーガイド参照」ということで省略されていますので、とりあえずデフォルトの設定で使ってください。

ここに興味がある方もいると思いますが、私が日本語で記事にする優先順位としては低いので気になる方はStrategyQuant社の英語ページをGoogle翻訳してください。


Dataタブ



これは、バックテストに利用するデータの設定です。

①「Trading engine」:MT4、MT5など、使いたい取引ツールを選んでください。取引ツールで行うバックテストと同じバックテストができるというのがアピールポイントだそうです。

②「Backtest data settings」:バックテストに使いたい通貨ペア・期間などを設定します。デフォルトで入っているデータは限られているので、使いたいデータがない場合は別のチュートリアルを見てインポートしてください。チュートリアルのリンクは27番のスライドにあります。

③「Test parameters」:スプレッドなどの設定項目があります。「Commissions」は手数料のことですが、デフォルトでは手数料なしになっているので、海外FX想定でバックテストしたい人は手数料ありに変更した方がいいです。「Size based」で1ロット当たりの手数料を入力するのでOKだと思います。

この項目の最初の「Precision」というのは「精度」という意味です。最初のストラテジー生成では、速いので「Selected timeframe only(選択した時間足のみ)」に設定し、さらなる探索には1分足にして利用するのがStrategyQuant社のおすすめだそうです。「探索」というのは遺伝的プログラミングの用語です。

ストラテジー生成をスタートすると、数秒に1つの割合でストラテジーが生成されてバックテストされ、この後設定する条件に満たないものは破棄され、条件を満たすものだけがデータバンクに保存されます。推奨の「Selected timeframe only」以外を選択すると、1つのストラテジーを生成してバックテストするまでの時間が増えることになります。

ちなみに、「Selected timeframe only」の精度はあまり高くないようです。各時間足から各4つのティックが生成されるらしいので、1時間足でバックテストする場合、1時間に4本ということなのでかなり少ないですね。このため、バックテスト結果は実際とはかなり異なります。1時間足でティック4つはさすがにと思う方は、時間との兼ね合いでどのバックテスト設定のバランスがいいのか探してみてください。どの項目を削除すればどれだけスピードが上がるのかは未検証ですが、バックテスト精度を上げる代わりにバックテスト期間を短くすれば多少時間は短縮されるかもしれません。

基本の設定は「Selected timeframe only」でも、クロスチェックで1分足でバックテストする設定にすれば、データバンクに保存されるストラテジーは1分足でのバックテストに合格したストラテジーということになります。

④「Data range parts」:サンプルに入れないデータの期間を設定します。チュートリアルでは、後半の半分をこの期間に設定しています。すると、前半がストラテジーを生成するのに使われ、後半はそのストラテジーを評価するのに使われます。

カーブフィッティングにならないかというのはStrategyQuantも気にしていて、これを含めいくつかのカーブフィッティング防止のための機能があります。



Trading optionsタブ

金曜日クローズや、トレード時間などの設定を行えます。


Building blocksタブ

ストラテジーのブロックを設定します。ブロックを組み合わせてストラテジーを作成していきます。

ブロック設定の際はインジ名を指定するだけなど、ざっくりとした指定になりますが、例えばRSI70以上など、自分好みの条件をあらかじめ指定しておくことも可能です。これは、「カスタムブロック」という設定で、そのうち記事を書きます。

ブロックには「Signals」「Indicators」「Order types」「Exit types」の4種類があり、それぞれ好みの条件を設定していきます。ストラテジーを生成する際には、このブロックの条件を少しずつ変えて組み合わせてベストの結果が出るものを自動で探します。

ちなみに「Indicators」が最も重要です。デフォルトのインジケータと、StrategyQuantがあらかじめファイルを用意しているよく使われるカスタムインジケータは試用版でも使うことができますが、それ以外は、有料版でしか追加できません。

チュートリアルのスライド32で、「Download example setting files」というボタンを押せるようになっていますが、これは、サンプル用に設定ファイルをダウンロードしたら簡単にお試しできますよというボタンです。これを使っても大丈夫ですし、最初のお試しの段階から自分でいじってみても大丈夫です。

スライド33の歯車マークの手順で、先ほどダウンロードした設定ファイルをStrategyQuantにアップロードできます。

「Order types」は、まず(STOP)に設定し、その後LimitなどにしてみるのがStrategyQuantの推奨だそうです。

「Exit types」はトレーリングなどがありますので好みのものを選んでください。複数選択もできます。




Money manegementタブ

マネーマネジメント機能の設定です。固定ロットなどお好みのものを選択してください。


Cross checkタブ

生成されたストラテジーをデータバンクに保存する前にクロスチェックを行う機能で、ロバストネス(頑健性)を確保するためのものです。生成されるストラテジーは膨大な数になるので、このページで設定した基準を満たしたものだけデータバンクに保存されます。

なぜかチュートリアルの順序が逆なのですが、StrategyQuantの手順としては、この下のRankingタブの設定を満たしたストラテジーだけが第一審査合格ということでクロスチェックに進んできて、クロスチェックも合格ならデータバンクに保存されるという流れです。


クロスチェックの種類はいくつかあり、クロスチェックを増やせば増やすほど1つのEAの検証にかかる時間は増えます。先ほど書いた数秒に1個バックテストの検証が終わるというのは、「Retest with higher precision」の項目だけをONにした場合です。

この項目では、ストラテジー生成の際に使用したバックテストよりも精度を上げて再テストします。「Retest with higher precision」の項目の右端の「Filters」の項目をクリックすると、クロスチェックで合格ラインにする純利益額などの基準を設定できます。

チュートリアルでは触れられていなかったのですが、「Backtests on additional markets」の項目も使ってみるとおもしろいかもしれません。カーブフィッティングされていてリアルでは勝てないEAを見分ける方法に、他の通貨ペアに適用してみてどれくらい通用するのか見る方法がありますが、これはそのテストをしてくれる機能です。




Rankingタブ


ランキング上位のみデータバンクに保存する設定ができます。左上の数字を入力できる枠で上位〇位までという数を制限します。StrategyQuant社によると、「最初は500で十分」ということです。

数の選択の下に、「Stop generation when」という項目がありますが、何個ストラテジーを生成したら生成をやめるかという項目で、3つ選択肢があります。
「Never」:無限に生成する。ストップしない。
「Totally (数字)」:設定した数まで生成する
「Databank is full」:データバンクが一杯になるまで

「Strategy quality ranking」という項目は、何を基準にランキングするかです。

右側の「Strategy filtering conditions」では、フィルター基準が設定できます。クロスチェック機能の説明で書いた通り、生成されたストラテジーはまずここのフィルター基準でチェックされ、それをパスしたもののみ、クロスチェックに進みます(チュートリアルの説明と実際の処理順が逆です)。

スライド53~55はお試し用の設定ファイルをインポートする方法なので、設定ファイルを使わない人は飛ばして大丈夫です。


ストラテジー生成スタート

設定が出来たら、「Progress」タブに戻ってストラテジー生成をスタートします。


一番上の緑の「Start」ボタンを押すとストラテジー生成がスタートします。

生成されたストラテジーは、設定した基準を満たしていた場合順次データバンク(一番下)に保存されます。ダブルクリックを押すと「Results」タブに移行し、詳細を表示できます。

ちなみに、スタートボタンを押すとスタートボタンの枠に数秒に一回新しい名前が表示されていきますが、これは生成されたストラテジーです。「dismissed」というのが何度も表示されると思いますが、「破棄された」という意味です。設定したフィルター基準を満たさない場合、破棄されてデータバンクに入りません。

設定にエラーがあるとスタートを押した後エラーメッセージが出ますので、メッセージに表示されたエラー項目のところを確認してエラーを解消してください。エラーの見方はこちらの記事に書きました。






バックテストを確認する



生成されたストラテジーをダブルクリックして結果を見るとこの画面(Resultsタブ)になります。同じ会社なので当然ですが、QuantAnalyzerの画面ですね。

ピンクの枠で囲った部分ですが、「Results」タブの中にある複数のタブを切り替えていくと詳しい分析が見られます。


取引回数が少ないのですがカーブフィッティングですか?

取引回数が少ないのは、時間足のバックテスト精度の問題の可能性もあります。1時間足のストラテジーをMT4でバックテストをしたところ、実際には倍の取引回数がありました。詳しくはDataタブの項目で書いています。

チュートリアルはこれで終了です。



チュートリアルでEAに出力する方法が含まれていなかったので追加です。

ロジック確認・ソースコードに出力

「Results」タブ一番右の「Source code」というのがソースコード出力用のタブです。



mq4、mqtなど出力する形式を選べるのですが、使いたい取引ツール用のファイルと一緒に、「Pseudo Code」というファイルも一緒にダウンロードしておくのがおすすめです。

「Pseudo Code」を選ぶと、ソースコードが人間の読みやすい形で書かれたものが出力されますので、内部のロジックが分かります。

MT4などのソースコードは、ただでさえプログラミング用語ですし、EA開発ツールで作成すると、使う人と使わない人がいる様々なオプション機能に対応できるように長いテンプレート的なもので作成するためさらに複雑なコードになっています。

Pseudo Codeの場合、このテンプレート的なものは省略され、純粋にロジックだけが完結に出力されます。英語ですが、一応文章になっています。


例えば上の画像のロジックを読んでみると、間に入っている「.」の意味がよく分からないので合っているか不安なのですが、「ケルトナーチャネルの下のラインより上でバーがオープンし、ケルトナーチャネルの上のラインが上がっている」ということが買いエントリー条件のようです。

一番最初の「What to build」タブの「# of conditions, periods」で、条件の数として、最小1、最大3を選んでいたため、このロジックの条件は2つです。

MT4、MT5のソースコードからロジックを理解しようとするととても時間がかかるため、ソースコードそのものは、完成して実運用しようとなった段階で念のため確認する程度でいいのではないかと思います。

機能が多すぎてまだ紹介できていない機能がたくさんあるのですが、少しずつ記事にしていこうかなと考えています。

購入の際は、こちらのページの最後に10%割引クーポンを載せているのでお得になります。




コメントを投稿

0 コメント