"ダミー "からの質問 - ページ 203

 

回答ありがとうございましたテスト期間の開始をマージン付きで移動し、Expertにデータを配列にコピーするチェックを入れました。十分なデータがない場合、Expert Advisor は動作しません。

double h[1000],l[1000];

if(CopyHigh("EURUSD",PERIOD_D1,1,1000,h)<1000 || CopyLow("EURUSD",PERIOD_D1,1,1000,l)<1000) return;

しかし、率直に言って、この問題解決の方法は非常に予想外です - ターミナルのチャートにはバーがあるように見えますが(すでに巨大なストックで取引 サーバーからすべてがダウンロードされています)、テスターはそれらにアクセスすることができないのです。

このケースは、「テスト期間開始時のテスターの制限を回避する方法」という見出しで、例として直接ドキュメントに書くと便利だと思います。

 
solandr: しかし、率直に言って、この問題解決の方法は非常に予想外です - クライアントターミナルのチャートはバーを持っているように見えますが(すべてがすでに巨大な株式と取引 サーバからダウンロードされている)、テスターはそれらにアクセス することはできません。

ハンドブックにあるテストに関する項目をご覧ください。私見ですが、「端末-テスター」という組み合わせの中で、端末がサーバー、テスターが端末として機能するという考え方があります。つまり、ターミナルに利用可能なすべての履歴がある場合、テスターに同じ量の履歴があっても足りないのです。テスターはテスト用の設定に 基づき、勝手に履歴をダウンロードしますが、この履歴の量がテストするプログラムのロジックに対して不足することが起こり得ます。

私自身は大きな時間軸のテストのための履歴の読み込みに取り組んだことはありませんが、テスト間隔を長くするのではなく、いわゆる「履歴を読み込むためのスクリプト」をコードに挿入してみてください。アイデアとしては、このスクリプトはテストに必要な深さの履歴を提供するはずです(特に、すでにその動作のロジックを再現しているのですから)。

 
Yedelkin:

私自身は、大きな時間軸のテストのための履歴のダウンロードに取り組んだことはありませんが、テストの間隔を広げる代わりに、いわゆる「履歴をダウンロードするためのスクリプト」をコードに挿入してみてください。アイデア次第で、このスクリプトはテストに必要な深さの履歴を提供するはずです(特に、すでにその動作のロジックを再現しているため)。

動作しない
 
stringo: うまくいかない。
なるほど。そこで、私は幸運にも同様のスクリプトを使って、M1のいくつかの商品の履歴をダウンロードすることができました(リクエストの深さは2~3週間を超えませんでした)。歴史はあったのですが、それが具体的にどのように現れたかというと、考えなかったのです。
 
stringo:
うまくいくわけがない。
本当にダメだったんです。テスターは独自のルールでしっかりと履歴をダウンロードし、Expert Advisorに内蔵されている履歴ダウンロード用のスクリプトでは、追加でダウンロードすることはできないようになっています。
 
solandr: 本当にダメだったんです。テスターは独自のルールでしっかりと履歴をダウンロードし、Expert Advisorに内蔵されている履歴ダウンロード用のスクリプトでは、追加でダウンロードすることはできない。
では、先月だけテストしたいが、プログラムでは3年前のD1データを分析する必要がある場合、どうすればいいのか...。
 
Yedelkin:
では、この点が不明です。直近の1カ月だけテストしたいのに、プログラムでは分析に3年分のD1データを要求されたらどうしよう...。
初めて履歴にアクセスすると、テスターのダウンロードが始まります(こんな感じです)。
 

このケースはかなり前に確認されたもので、D1では履歴が+1年分つながっています。

したがって、テストの開始を2012年1月1日に指定した場合、Expert Advisorはすぐに平均期間が260未満であるべきである取引を開始しました。

つまり、2011年のデータでテスト期間開始時に計算することになる。

我々は、例えば、520日間の平均を必要とする場合、我々はテスト期間の開始を示すために試すことができます01.01.2011 。

この場合、データは2010年から始まり、520日平均は2012年の初めに利用可能となる。

Expert Advisorは、データなしで取引してはいけません。

 
notused: 初めて履歴にアクセスすると、テスターがダウンロードの再開を開始する(と思う)。
しかし、実は履歴ダウンロードスクリプトも同じように、履歴にアクセスする(失敗したら複数回アクセスする)のです。
 
Karlson: 520日平均を求めるなら、テスト開始を2011.01.01に指定してみるのも手です。

この場合、データは2010年のもので、2012年の初めには520日分の平均値が利用できるようになります。

では、私が最初に提案したテスト間隔を長くすることが唯一の解決策なのでしょうか?:/