エラー、バグ、質問 - ページ 2995 1...298829892990299129922993299429952996299729982999300030013002...3185 新しいコメント Francuz 2021.04.08 15:00 #29941 datetime a = D'2021.04.08 10:00:00'; int handle; double Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { handle = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\ATR.ex5", 14); ::Print(__FUNCTION__ + "| PERIOD_CURRENT = ", EnumToString(_Period)); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { if(handle != INVALID_HANDLE) { ::CopyBuffer(handle, 0, a, 1, Buffer); double BS = ::NormalizeDouble(Buffer[0], _Digits); ::Print(__FUNCTION__ + "| a = ", a); ::Print(__FUNCTION__ + "| BS ", BS); handle = INVALID_HANDLE; } // return value of prev_calculated for next call return(rates_total); } なぜこのコードは分単位でしか正しく動作しないのか、どなたかお答えいただけないでしょうか。 これは指標となるものです。 P.S. 分足以外のタイムフレームでは、間違った値が出力されます。 Nikolai Semko 2021.04.08 17:38 #29942 Francuz: なぜこのコードは分単位でしか正しく動作しないのか、どなたかお答えいただけないでしょうか。これは指標となるものです。P.S.分以外の時間軸では、間違った値が出力されます。 なぜなら、OnCalculateの 最初の訪問時、prev_calculated = 0のときだけ、1回の反復を実行したからです。その時点では、まだバーが形成されていないかもしれません。そして、すべてのTFは1M TFから形成されている。 チェックに挿入する。 if(prev_calculated>0 && handle != INVALID_HANDLE) そして、すべてがうまくいくのです。 Andrey Dik 2021.04.09 05:13 #29943 MEで2つのEAタブが開いていて、両方とも未保存の変更があります。そのうちの1つのEAのコンパイルボタンを押すと、MEが両方のEAに変更を保存するのを確認できます。なぜ?誰がそんなことを頼んだんだ? MEがコンパイル前にリンク先ファイルの変更を保存しておけば、論理的な動作になるのですが、それで......。 もちろん、こんなに簡単なのだから、どのファイルが誰のものかを選別する必要はない。開いているファイルを すべて保存して終わりにした方がずっと簡単だ......。 Nikolai Semko 2021.04.09 05:19 #29944 Andrey Dik: MEで2つのEAのタブを開き、両方とも未保存の変更がある状態で、片方のEAのコンパイルボタンを押すと、MEが両方のEAに変更を保存するのを確認できます。なぜ?誰がそんなことを頼んだんだ? 他にどうすればいいのか?これしかないんです。すべてのIDEにおいて、これは事実である。 Andrey Dik 2021.04.09 05:26 #29945 Nikolai Semko: 他に方法は? これしかないんです。 IDEはみんなそうなんです。 すべてのIDEで確実なのでしょうか? 今、VSを試しましたが、はい、動作は同じです。 しかし、最も有名な製品であっても、その遅れた動作をベンチマークと考えるべきでしょうか? VSのバグや誤解をすべてコピーしましょう、なぜですか? )) Nikolai Semko 2021.04.09 05:49 #29946 Andrey Dik:は、すべてにおいて正確なのでしょうか?しかし、ある製品の、それも最も有名な製品の、遅れた動作をベンチマークと考えるべきなのでしょうか? それなら、VSのバグや誤解をすべてコピーしましょうよ、なぜですか?)) 私はこの1年で少なくとも9種類のIDEを使いました。どこもこんな感じなんですね。あるコードでコンパイルしたものと、別のコードでコンパイルしたものでは、すでに同じ名前のex5ファイルを2つ作らなければならないなど、論理的に考えて、1つのファイルに複数のマスターがあり、互いの変更を見ることができない場合、どれだけの問題があるか。 Andrey Dik 2021.04.09 05:59 #29947 ナビゲーターをMarket Watchのウィンドウのように表にしてみてはいかがでしょうか。マーケットウォッチに 仕分けが実装されましたね、お見事です。- 私たちは、ずっとそれを求めてきました。 ナビゲータの内容を表示し、タイトル、 著者、コンパイル日、最終実行日、ソースの有無、プログラムの種類という列でソートする(ソートを無効にすると現在の表示に戻る)という、メガ・クールな使い勝手の新しい夢の時代がやってきました。 Andrey Dik 2021.04.09 07:10 #29948 Nikolai Semko: 私はこの1年で少なくとも9種類のIDEを使いました。どこもかしこもこんな感じです。 論理的に考えて、1つのファイルに複数のホストが存在し、互いの変更を見ることができない場合、どれだけの問題が発生するか。 一方があるコードでコンパイルし、他方が別のコードでコンパイルした場合、すでに同じ名前のex5ファイルを2つ作る必要がある、などです。 2つの異なるEAが開かれた場合、それらの間にどのようなつながりがあるのでしょうか? フクロウの一部であるinludeのみが保存されるべきで、それらのinludeが他の誰のものであるかは関係ないのです。 例えば、保存されていない*txtファイルを開いた場合、それはコンパイルされたファイルやプロジェクトとは 何の関係もないので、なぜそれを保存するのでしょうか? Francuz 2021.04.09 09:04 #29949 Nikolai Semko:なぜなら、最初のOnCalculate の エントリで、prev_calculated = 0 のときだけ、1回の反復を実行するからです。この時点では、まだ棒は形成されていないかもしれません。そして、すべてのTFは1M TFから形成されている。 チェックに挿入する。で、すべてがうまくいきます。 的外れなこと言ってますね。このコードは一度だけ動作するようにします。その目的は、呼び出されたインジケータが機能しないことを示すことです。問題は、呼び出されたインジケータの任意のバリエーションで、それ(および呼び出し元)が分と異なるTimeFrameを持っている場合は動作しないということです。松葉杖でしか解決できないMetaTraderの バグであることがわかりました。そして、この問題はかなり古くからある。詳しくは「古いTF123のインジケーターデータが取得 できない」で紹介しています。 Вопросы от начинающих MQL5 MT5 MetaTrader 5 2012.03.12www.mql5.com Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000... Artyom Trishkin 2021.04.09 09:34 #29950 Francuz:論点がずれていますね。このコードは一度しか使えないことになっています。その目的は、呼び出されたインジケータが機能しないことを明確に示すことにある。問題は、呼び出されたインジケータが(呼び出し元も)分と異なるTimeFrameを持っている場合、動作しないことです。松葉杖でしか解決できないMetaTraderの バグであることがわかりました。そして、この問題はかなり古くからある。詳しくは「主要なTF123のインジケーターデータが取得 できない」にて解説しています。 それは昔の話です。この問題はとっくに解決している。ネイティブでないタイムフレーム/シンボルのデータにアクセスするには、少なくとも2分に1回の頻度でアクセスする必要があります。メインループでは、要求された時間枠からのデータがまだない場合は、ループを終了する必要があります - ちょうど次のティックを待つためにゼロを返し、インジケータは、履歴データがまだ計算されていないことを知っていました。 1...298829892990299129922993299429952996299729982999300030013002...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
なぜこのコードは分単位でしか正しく動作しないのか、どなたかお答えいただけないでしょうか。
これは指標となるものです。
P.S.
分足以外のタイムフレームでは、間違った値が出力されます。
なぜこのコードは分単位でしか正しく動作しないのか、どなたかお答えいただけないでしょうか。
これは指標となるものです。
P.S.
分以外の時間軸では、間違った値が出力されます。
なぜなら、OnCalculateの 最初の訪問時、prev_calculated = 0のときだけ、1回の反復を実行したからです。その時点では、まだバーが形成されていないかもしれません。そして、すべてのTFは1M TFから形成されている。
チェックに挿入する。
そして、すべてがうまくいくのです。
MEで2つのEAタブが開いていて、両方とも未保存の変更があります。そのうちの1つのEAのコンパイルボタンを押すと、MEが両方のEAに変更を保存するのを確認できます。なぜ?誰がそんなことを頼んだんだ?
MEがコンパイル前にリンク先ファイルの変更を保存しておけば、論理的な動作になるのですが、それで......。 もちろん、こんなに簡単なのだから、どのファイルが誰のものかを選別する必要はない。開いているファイルを すべて保存して終わりにした方がずっと簡単だ......。
MEで2つのEAのタブを開き、両方とも未保存の変更がある状態で、片方のEAのコンパイルボタンを押すと、MEが両方のEAに変更を保存するのを確認できます。なぜ?誰がそんなことを頼んだんだ?
他に方法は?
すべてのIDEで確実なのでしょうか?
今、VSを試しましたが、はい、動作は同じです。 しかし、最も有名な製品であっても、その遅れた動作をベンチマークと考えるべきでしょうか? VSのバグや誤解をすべてコピーしましょう、なぜですか?
))
は、すべてにおいて正確なのでしょうか?
しかし、ある製品の、それも最も有名な製品の、遅れた動作をベンチマークと考えるべきなのでしょうか? それなら、VSのバグや誤解をすべてコピーしましょうよ、なぜですか?
))
ナビゲーターをMarket Watchのウィンドウのように表にしてみてはいかがでしょうか。マーケットウォッチに 仕分けが実装されましたね、お見事です。- 私たちは、ずっとそれを求めてきました。
ナビゲータの内容を表示し、タイトル、 著者、コンパイル日、最終実行日、ソースの有無、プログラムの種類という列でソートする(ソートを無効にすると現在の表示に戻る)という、メガ・クールな使い勝手の新しい夢の時代がやってきました。
私はこの1年で少なくとも9種類のIDEを使いました。どこもかしこもこんな感じです。
2つの異なるEAが開かれた場合、それらの間にどのようなつながりがあるのでしょうか? フクロウの一部であるinludeのみが保存されるべきで、それらのinludeが他の誰のものであるかは関係ないのです。
例えば、保存されていない*txtファイルを開いた場合、それはコンパイルされたファイルやプロジェクトとは 何の関係もないので、なぜそれを保存するのでしょうか?
なぜなら、最初のOnCalculate の エントリで、prev_calculated = 0 のときだけ、1回の反復を実行するからです。この時点では、まだ棒は形成されていないかもしれません。そして、すべてのTFは1M TFから形成されている。
チェックに挿入する。
で、すべてがうまくいきます。
的外れなこと言ってますね。このコードは一度だけ動作するようにします。その目的は、呼び出されたインジケータが機能しないことを示すことです。問題は、呼び出されたインジケータの任意のバリエーションで、それ(および呼び出し元)が分と異なるTimeFrameを持っている場合は動作しないということです。松葉杖でしか解決できないMetaTraderの バグであることがわかりました。そして、この問題はかなり古くからある。詳しくは「古いTF123のインジケーターデータが取得 できない」で紹介しています。
論点がずれていますね。このコードは一度しか使えないことになっています。その目的は、呼び出されたインジケータが機能しないことを明確に示すことにある。問題は、呼び出されたインジケータが(呼び出し元も)分と異なるTimeFrameを持っている場合、動作しないことです。松葉杖でしか解決できないMetaTraderの バグであることがわかりました。そして、この問題はかなり古くからある。詳しくは「主要なTF123のインジケーターデータが取得 できない」にて解説しています。
それは昔の話です。この問題はとっくに解決している。ネイティブでないタイムフレーム/シンボルのデータにアクセスするには、少なくとも2分に1回の頻度でアクセスする必要があります。メインループでは、要求された時間枠からのデータがまだない場合は、ループを終了する必要があります - ちょうど次のティックを待つためにゼロを返し、インジケータは、履歴データがまだ計算されていないことを知っていました。