StrategyQuantエラーの見方

StrategyQuantのエラーの見方と、一部ですが、私が使っている中でエラーが出たものを紹介します。

EA生成スタート時や、生成したEAをMT4やMT5でバックテストするときなど、エラーは様々出ますが、エラー原因は英語で表示されます。英語が苦手な方は大変だと思いますが、コピペして機械翻訳にかけるなどしてみてください。





EA生成スタート時のエラーの見方

EA(ストラテジー)生成の設定が全て終わったら「スタート」ボタンを押しますが、設定が間違っているとこの画面でエラーが出ます。このような表示です。

Error: Timeframe in Subchart 1 in Main backtest is the same as in main chart!, in setting: Data

「Error:」という表示で始まり、「in setting:〇〇」で終わるのが、1つのエラーの区切りです。

「in setting:〇〇」というところが大事で、これは、どこのタブの設定でエラーが起きているのかの情報です。

この場合「in setting: Data」となっているので、「Data」タブを確認します。


ピンクの枠で囲ったところがDataタブです。「Full settings」タブ内にあります。

「Error:」から「in setting:〇〇」の間に書かれているのがエラーの具体的な内容です。

タブの種類はこちらのページで紹介しています。


エラー例紹介(サブチャート関連

最初適当にやったところ、4つエラーが出ましたが、全てサブチャートの設定でした。StrategyQuantは、異なる時間足・異なる通貨ペアの条件を含むストラテジーを生成できますが、サブチャートとメインチャートを全く同じ設定にしてしまうとエラーになるようです。全てサブチャート設定のエラーですが、①~③は「Data」タブ、④のみ「Cross checks」タブのエラーです。

これを解決するには、サブチャートの設定をメインチャートとかぶらないようにすればいいのですが、そもそも異なる時間足・異なる通貨ペアのストラテジーでなくてもいい場合、エラーが出ているタブではなくて、「What to build」タブで「Simply strategy」を選択して解決することもできます。そうすると①~④のエラーはまとめて解決します。

①Error: Timeframe in Subchart 2 in Main backtest is the same as in main chart!, in setting: Data

メインのバックテストのサブチャート2の時間足がメインチャートと同じです。

②Error: You cannot have duplicate subcharts!, in setting: Data

全く同じサブチャートは使えません。

③Error: Cannot initialize Main chart setup - All subcharts must have unique settings., in setting: Data

メインチャートのセットアップを初期化できませんー全てのサブチャートに独自の設定が必要です。

④Error: Cannot load settings of Cross check 'RetestOnAdditionalMarkets'. All subcharts must have unique settings., in setting: Cross checks

クロスチェック「RetestOnAdditionalMarkets」の設定を読み込みできません。全てのサブチャートに独自の設定が必要です。




EA生成中のエラー

EA生成が無事スタートできても、EA生成中にまたエラーが起きることもあるようです。EA生成が途中まで行われたものの、ストップしたことがありました。

EA生成が正常に行われている場合、大量のストラテジーが生成・破棄されて、一部のみ保存されますので、破棄されたことを示す「dismissed」がログ欄(スタートボタンのすぐ下)に頻繁に表示されますが、EA生成が止まった場合、ログ欄の更新も止まります。ログ欄にエラーメッセージが表示されているはずなので、それを確認してください。

私の場合は、ビルディングブロック内のテイクプロフィットの設定が悪いと表示されたのでそれを修正しました。

エラーは出ないがストラテジーが生成されない

ストラテジーがデータバンクに貯まらない場合、まずログ欄を見てください。エラーが出ていない場合、ログ欄のすぐ下に、生成されたストラテジーの総数などが表示されていますが、「Rejected」と書かれた部分が、データバンクに保存せずに破棄されたストラテジーの数と割合です。ここが100%になっていたら、ストラテジーは生成されているものの、全て基準を満たしていないという意味になります。



よほど条件が厳しくない限り、通常複数のストラテジーが生成されているので、100%になっている場合は内訳を確認した方がいいです。「rejected」の隣に「Detailed」という項目があるのでここで確認できます。

StrategyQuantのトラブルシューティングの記事を見て、よくあるトラブルに該当していないか確認してください。

単に時間の問題という可能性もあります。例えば、この前生成したストラテジーは、4時間足のRSI30以下でロングというシンプルな条件しか入れていないにも関わらず、15万個ストラテジーを生成して基準を満たしたのが65個でした。このペースの生成だと、一番最初に基準を満たすストラテジーが生成されるまでにも多少時間がかかります。


バックテスト時のエラー

ソースコードは、実際に使っているインジだけではなく、ストラテジーのロジックの候補として選択したブロックが全て入ったソースコードになるようです。

なので、例えば、生成の際に「平均足」をブロックの1つとして選択してしまった場合、実際に平均足がロジックの1つとして含まれるかどうかに関わらず、平均足を参照するソースコードになってしまいます。

そのため、バックテストするMT4やMT5に平均足のインジが入っていないとバックテストできません。インストールされたStrategyQuantのフォルダ内の「\custom_indicators\MetaTrader4\Indicators」のフォルダに「SqHeikenAshi」というファイルがありますので、それをインジのフォルダに入れてバックテストしてください。

StrategyQuantで標準でブロックとして選べるインジは、上記のファイルに全て入っていますので、バックテスト用のMT4やMT5にあらかじめ入れておくといいと思います。

完成したEAを販売する際には、不要なインジの参照を削除しなければいけないので少しややこしくなります。



基本の英単語一覧

少しずつ追加していく予定です。とりあえず今回例に出したエラーに使われている英単語です。

setting:設定
Timeframe:時間枠
subchart:サブチャート
main chart:メインチャート
initialize:初期化する
load:ロードする(ファイルを読み込む)
duplicate:全く同じ
dismissed:破棄された

調整が面倒で放置中なのですが、以前EA翻訳機というのを作ろうとしていました。いつになるか分かりませんが、完成したら公開します。

ちなみに、調整が面倒な理由を簡単に説明すると、「Expert advisor」を必ず「EA」と翻訳するなど、翻訳ルールをいくつか事前に指定し、残りの部分を通常の機械翻訳にかけるというプロセスなのですが、ルールが多すぎると機械翻訳の精度が落ちるため、「ストップロス」「テイクプロフィット」など、通常の機械翻訳でも8割くらい正確に出力される単語については翻訳ルールからあえて除外するという作業をしなければならないからです。




コメントを投稿

0 コメント