StrategyQuantで既存のEAを改良する3種類の方法

StrategyQuantのメイン機能はストラテジー(EA)の自動生成なので、例えば、「平均足」と「ボリンジャーバンド」など、ざっくりと使用したいインジケータを選んで生成をスタートすることもできるのですが、既存のEAの改良に使いたいというEA開発者の方が多かったため、その方法を紹介します。

既存のEAの改良の場合、ベースとなるロジックを自分で一部指定し、残りを自動生成する形で行いますが、3つ方法があります。各手順そのものは比較的簡単ですが、AlgoWizardでロジックを作るのが分かりにくいと思いますので、それは今後動画を作る予定です。

全体的な使い方が分からないときは、チュートリアルの和訳を参考にしてください。






「Improving existing strategies(既存のEAを改良する)」機能

「What to build」タブの「Improving existing strategies(既存のEAを改良する)」機能を使います。

「What to build」タブで「Improving existing strategies(既存のEAを改良する)」を選んだ場合のみ、「Parts to improve(改良するパーツ)」というタブが表示されますので、そこで既存のEAのエントリーロジック・オーダータイプ・エグジットロジックの3種類の中から改良したい部分を指定し、「追加(add)」「置換(replace)」「追加または置換(add or replace)」のどれかを選びます。


上の画面は、「What to build」タブで「Improving existing strategies(既存のEAを改良する)」を選択する画面ですが、この画面でもう一つ好みに応じて設定することがあります。

デフォルトでは、既存EAを改良する際には、ロングとショートのロジックを、同じロジックを逆向きにしただけにしかできない設定になっています。ロングとショートで別のロジックにしたい場合は、「Trading directions」の横の歯車マークをクリックして、「Entry Symmetry」「Exit Symmetry」のチェックを外してください。Symmetryというのは「対称」という意味です。

既存のEAを改良するには、EAのソースコードが必要ですが、StrategyQuantでは、MT4やMT5のソースコードファイルをそのままシステムに入れることができないため、既存のロジックは一旦AlgoWizardで作成する必要があります。

AlgoWizard


基本的な使い方についてはこちらに書きましたが、複雑なEAはFull Wizardで作る必要があり、これが少しややこしいです。

こちらの機能は使ってみたのですが、「置換」を選んでしまうと元のロジックが残らない全く別物ができてしまうこともあるようなので、「追加」だけ使うか、テンプレート機能の方がよさそうです。



「Strategy from template(テンプレート)」機能

「What to build」タブの「Strategy from template」機能を使う方法もあります。これは、自動生成で作成したい部分を指定してその他のロジックを組み立てたテンプレートを使います。後で追加された機能で、StrategyQuant社によると、先ほど紹介した「既存のEAを改良する」機能よりもおすすめだそうです。


「What to build」タブの「Strategy from template」を選び、利用するテンプレートを指定するだけで、後は通常通りのフローですが、入れたいロジックを指定したテンプレートをまず作らないといけません。これも、AlgoWizardで作ります。

テンプレートファイルは、AlgoWizardで開くと、緑の文字があらかじめ入っているのですが、この緑の文字の部分がランダム生成される箇所の指定です。テンプレートファイルのファイル名を変えて、ここに条件を追加するなどしてテンプレートファイルを作るようですが、ここについてはまだ自分で試していないので、試したらまた記事を書きます。


緑の文字には「RandomCondition」と「NegateCondition」があるのですが、「NegateCondition」の方は、ロングとショートが対称の条件になるという意味です。

緑の文字は、RandomCondition(RandomConditionLong)という風になっていますが、()内は、識別のための名前なので適当に変えても大丈夫です。




「カスタムブロック」機能

既存のEAの改良とは少し違いますが、ストラテジーのロジックとして組み合わせるブロックの中に「RSI>70」など、入れたいブロックを追加する方法もあります。この場合、ランダム生成に利用されるブロックの1つとして扱われるため、必ず入るとは限りません。優先して入れたい場合各ブロックの名前の右横にある「weight」の数値を上げれば優先されます。

StrategyQuantも完全自動生成よりも一部を指定した方がいいと考えているようです。StrategyQuantのアピールポイントは、「遺伝的プログラミング」ですが、これは、完全にランダムに条件を組み合わせるより効率よく組み合わせを探せるというだけで、広い意味で「ランダムに条件を組み合わせている」ということは変わりません。

そのことはStrategyQuant社も認識していて、ランダムに組み合わせる条件の中に意味のあるブロックを入れておくことで「ランダム性を減らす」のがカスタムブロックのメリットだと書いています。

お気に入りのエントリーロジックが既にあった場合、それを事前に指定しておけば、それと組み合わせて有効になるロジックがないかを効率的に探せるようになるということですね。

カスタムブロックもAlgoWizardで作ります。

カスタムブロックの作成方法

StrategyQuantのメインメニューから、AlgoWizardを選び、上部の「Customize」を選び、「Custom blocks」を選ぶとこの画面が出てきます。ピンクの枠を順番に押して行ってください。

その後、「Add block」ボタンを押すと、3つの入力枠が表示されるので、これを入力します。



「Block key」:ブロックのIDです。適当に決めてください。
「Block name」:ブロックの表示名です。適当に決めてください。
「Block type」:「condition」(trueかfalseかを返す)、「Price level」(ストップ・リミット注文に使われる価格レベルを計算するブロック)、「Value」(値)の中から選んでください。



「condition」を選んでブロックを作成すると、左側にブロック名が表示されます。右側の「Add another condition」ボタンをクリックすると、条件が入力できます。

適当に「RSI>70」(ブロック名:princesscanon)「RSI<30」(ブロック名:princesscanonbuy)という条件の2つのブロックを作りました。

上記の手順でできますが、カスタムブロックの詳しい作成方法の英語ページはこちらにあります。

カスタムブロックの設定方法

後の設定は簡単です。「StrategyQuantでEAを開発する基本手順(チュートリアル和訳)」に書いてある通りの手順で進めると、「Building blocks」の中に先ほど作った「princesscanon」と「princesscanonbuy」が表示されます。



デフォルトで選択できるブロックの数が多いので、上の方にあるアルファベット並び替え機能で探します。

StrategyQuantは機能がとても複雑なので大変ですが、既存のEAを改良する方法については需要が多いので今後動画を作ろうと思います。早く試してみたい人は上の手順を参考にやってみてください。

StrategyQuantの10%OFFクーポンは下記のページの一番最後に載せています。




コメントを投稿

0 コメント