エラー、バグ、質問 - ページ 343 1...336337338339340341342343344345346347348349350...3185 新しいコメント Renat Fatkhullin 2011.03.20 21:08 #3421 Kairoser:こんにちは。420リリースにアップグレードした後、私は自分のEAをテストし始め、それが何らかの理由で「負ける」ようになったことに気づきました。自分のトレードを分析したところ、存在しない価格でストップロスが発動していることに気づきました。例えば、EURUSDでストップロスを1.06520に設定しましたが、最大価格は 1.05920ですが、動作しています。さらに見ていくと、そんな案件がたくさんあるんです。テイクプロフィットは、同じ原理で(存在しない価格で)トリガーされます - デルタは同じです - 600ポイントです。チャート上のテスターでは、上下の矢印はバーから遠く離れた宙に「ぶら下がって」います。スクリーンショットを添付します。 MetaQuotes-Demoでテストしてください。アルパリは(スプレッドでの)チャート履歴があからさまに間違っている。 Александр Михеев 2011.03.20 21:50 #3422 Renat: MetaQuotes-Demoのテストを実行してください。アルパリは(スプレッドでの)チャート履歴があからさまに間違っている。 はい、確かにMetaQuotes-Demoサーバーではすべて正常に動作しています。ありがとうございました。 Alexey Klenov 2011.03.21 13:26 #3423 いくつか気になる質問があります。1.ストラテジーテスターでインジケーターを使用した場合、どのように動作するのでしょうか?まず、ハンドルが計算されるすべてのインジケータが起動し、OnTickだけが起動する?2.もしそうなら、まずOnTickを起動して、付属のインジケータを計算するコマンドを実行するとよいでしょう。そのため、例えば5桁のティックごとに指標を計算する必要はなく、4桁のティックのみ計算すればよいのです。OnTickを起動したら、現在値と前回値を確認して、指標の 計算を開始するかどうか判断しています。なぜなら、数が多くてかなり「重い」場合、最適化モードでリソースを消費してしまうから...。ただし、ontickでハンドルを作成し、最後にインジケータを削除して、次のontickの開始時に(必要なら)ハンドルを作成し直すという方法もありますが、パフォーマンスが向上するかどうかは不明です......。 Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 Rashid Umarov 2011.03.21 14:06 #3424 olyakish: いくつか気になる質問があります。1.ストラテジーテスターで インジケーターを使用した場合、どのように動作するのでしょうか?まず、ハンドルが計算されるすべてのインディケータが実行され、その後OnTickが実行されるだけですか?より一般的な回答として、すべての指標は、イベントハンドラを呼び出す前に計算されます。オンティックオンタイマーOnChartEvent など Rashid Umarov 2011.03.21 14:08 #3425 olyakish: 2.もしそうなら、まずOnTickを実行し、その後このコマンドで付属のインジケータの計算を実行すると非常に便利です。例えば、5桁のティックごとに指標を計算する必要はなく、4桁のティックにのみ指標を計算したいのです。OnTickを起動するときに、現在と前回の価格をチェックして、指標の 計算を開始するかどうかを判断しています。なぜなら、数が多くてかなり「重い」場合、最適化モードでリソースを食ってしまうから......。そんなの無理だよ。テスト用に、より高速なティック生成モードを使用することができます。分足でのOHLC価格テスト対象期間の建値のみ Alexey Klenov 2011.03.21 15:26 #3426 Rosh:このままではダメだ。テスト用に、より高速なティック生成 モードを使用することができます。分足でのOHLC価格テスト期間中の始値のみ そういうモードやクセは知っています。ただ、合理的な(おそらく最適な)方法で最適化をスピードアップさせたかったのです。 Sergey Gritsay 2011.03.23 08:15 #3427 ヘルプ、データ変換 関数が動作したくない、それをテストするために簡単なスクリプトを書きました。Build 420、64ビットOS。void OnStart() { //--- int i=0; bool res=false; string stroka1; string stroka2; string stroka3; string stroka4; string stroka5; datetime buf1; double buf2; double buf3; double buf4; double buf5; int filehandle=FileOpen("56451.csv",FILE_READ|FILE_CSV|FILE_ANSI,',',CP_UTF8); if(filehandle==INVALID_HANDLE)Print("Ошибка № - ",GetLastError()); else { while(!res) { stroka1 = FileReadString(filehandle); stroka2 = FileReadString(filehandle); stroka3 = FileReadString(filehandle); stroka4 = FileReadString(filehandle); stroka5 = FileReadString(filehandle); buf1 = StringToTime(stroka1); buf2 = StringToDouble(stroka2); buf3 = StringToDouble(stroka3); buf4 = StringToDouble(stroka4); buf5 = StringToDouble(stroka5); res=FileIsEnding(filehandle); i++; } FileClose(filehandle); } } //+------------------------------------------------------------------+ ファイル: 56451.zip 16 kb Aleksandr Chugunov 2011.03.23 08:33 #3428 sergey1294:ヘルプ、データ変換関数が動作したくない、それをテストするために簡単なスクリプトを書きました。Build 420、64ビットOS。 どの段階でも引用を排除する...。 Sergey Gritsay 2011.03.23 08:39 #3429 AlexSTAL: どの段階でも倒置カンマを取り除く...。 どうやるんですか? Aleksandr Chugunov 2011.03.23 08:45 #3430 sergey1294: どうやるんですか?ファイル内に初期状態では存在しないようにするか、読み込み時に追加関数を適用するなどしてください。string StringWithoutQuotes(string Value) { StringTrimLeft(Value); StringTrimRight(Value); return(StringSubstr(Value, 1, StringLen(Value) - 2)); } .......... stroka1 = StringWithoutQuotes(FileReadString(filehandle)); stroka2 = StringWithoutQuotes(FileReadString(filehandle)); 1...336337338339340341342343344345346347348349350...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
420リリースにアップグレードした後、私は自分のEAをテストし始め、それが何らかの理由で「負ける」ようになったことに気づきました。自分のトレードを分析したところ、存在しない価格でストップロスが発動していることに気づきました。例えば、EURUSDでストップロスを1.06520に設定しましたが、最大価格は 1.05920ですが、動作しています。さらに見ていくと、そんな案件がたくさんあるんです。テイクプロフィットは、同じ原理で(存在しない価格で)トリガーされます - デルタは同じです - 600ポイントです。チャート上のテスターでは、上下の矢印はバーから遠く離れた宙に「ぶら下がって」います。
スクリーンショットを添付します。
MetaQuotes-Demoのテストを実行してください。アルパリは(スプレッドでの)チャート履歴があからさまに間違っている。
いくつか気になる質問があります。
1.ストラテジーテスターでインジケーターを使用した場合、どのように動作するのでしょうか?まず、ハンドルが計算されるすべてのインジケータが起動し、OnTickだけが起動する?
2.もしそうなら、まずOnTickを起動して、付属のインジケータを計算するコマンドを実行するとよいでしょう。そのため、例えば5桁のティックごとに指標を計算する必要はなく、4桁のティックのみ計算すればよいのです。OnTickを起動したら、現在値と前回値を確認して、指標の 計算を開始するかどうか判断しています。
なぜなら、数が多くてかなり「重い」場合、最適化モードでリソースを消費してしまうから...。
ただし、ontickでハンドルを作成し、最後にインジケータを削除して、次のontickの開始時に(必要なら)ハンドルを作成し直すという方法もありますが、パフォーマンスが向上するかどうかは不明です......。
いくつか気になる質問があります。
1.ストラテジーテスターで インジケーターを使用した場合、どのように動作するのでしょうか?まず、ハンドルが計算されるすべてのインディケータが実行され、その後OnTickが実行されるだけですか?
より一般的な回答として、すべての指標は、イベントハンドラを呼び出す前に計算されます。
2.もしそうなら、まずOnTickを実行し、その後このコマンドで付属のインジケータの計算を実行すると非常に便利です。例えば、5桁のティックごとに指標を計算する必要はなく、4桁のティックにのみ指標を計算したいのです。OnTickを起動するときに、現在と前回の価格をチェックして、指標の 計算を開始するかどうかを判断しています。
なぜなら、数が多くてかなり「重い」場合、最適化モードでリソースを食ってしまうから......。
そんなの無理だよ。テスト用に、より高速なティック生成モードを使用することができます。
このままではダメだ。テスト用に、より高速なティック生成 モードを使用することができます。
ヘルプ、データ変換 関数が動作したくない、それをテストするために簡単なスクリプトを書きました。Build 420、64ビットOS。
ヘルプ、データ変換関数が動作したくない、それをテストするために簡単なスクリプトを書きました。Build 420、64ビットOS。
どの段階でも倒置カンマを取り除く...。
どうやるんですか?
ファイル内に初期状態では存在しないようにするか、読み込み時に追加関数を適用するなどしてください。