初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 466 1...459460461462463464465466467468469470471472473...1503 新しいコメント Maxim Dobrovolskii 2015.11.01 08:27 #4651 皆様にご挨拶申し上げます。そんな疑問があります。あるインディケータ(modified fractals)をチャート上にロードすると、すべてが正しく、あるべきように動作しますが、EAで使おうとすると、バッファが空だと言われます。同時に、Deinitでバッファを渡す際に、正しい値を格納します。 インジケーターのソースコードを添付します。何が間違っているのか、ヒントや提案に耳を傾ける準備はできています。 EAからのコード。//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(Time[0] == prevtime) return; prevtime = Time[0]; if(iCustom(NULL,0,"modify_Fractal",0,0) > 0) Print("x = ", 0, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,0)); if(iCustom(NULL,0,"modify_Fractal",0,2) > 0) Print("x = ", 2, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,2)); if(iCustom(NULL,0,"modify_Fractal",0,3) > 0) Print("x = ", 3, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,3)); if(iCustom(NULL,0,"modify_Fractal",0,4) > 0) Print("x = ", 4, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,4)); if(iCustom(NULL,0,"modify_Fractal",0,5) > 0) Print("x = ", 5, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,5)); if(iCustom(NULL,0,"modify_Fractal",0,6) > 0) Print("x = ", 6, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,6)); // тут везде 0 } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Print("Deinit Function"); for (int x = 0; x < 100; x++ ) { if(iCustom(NULL,0,"modify_Fractal",0,x) > 0) Print("x = ", x, " fractal Up: ", iCustom(NULL,0,"modify_Fractal",0,x)); if(iCustom(NULL,0,"modify_Fractal",1,x) > 0) Print("x = ", x, " fractal Down: ", iCustom(NULL,0,"modify_Fractal",1,x)); } // а здесь полный буфер правильных значений индикатора. } ファイル: modify_Fractal.ex4 8 kb modify_Fractal.mq4 4 kb 削除済み 2015.11.01 09:04 #4652 Karputov Vladimir:最後のifを置き換えると(そんな簡単なことなら、、、:)感謝 Artyom Trishkin 2015.11.01 10:05 #4653 Maxim Dobrovolskii:皆様にご挨拶申し上げます。そんな疑問があります。あるインディケータ(modified fractals)をチャート上にロードすると、すべてが正しく、あるべきように動作しますが、EAで使おうとすると、バッファが空だと言われます。同時に、Deinitでバッファを渡す際に、正しい値を格納します。 インジケーターのソースコードを添付します。何が間違っているのか、ヒントや提案に耳を傾ける準備はできています。 EAからのコード。 ざっと見た感じでは質問:ゼロ バーの上にフラクタルがあってもいいのですか?しかしOnDeinit()では、バーをループして自然にフラクタル(空のバッファ値ではない)を見つけるのです。 Maxim Dobrovolskii 2015.11.01 10:16 #4654 Artyom Trishkin: 非常にざっくりとした印象。質問:フラクタルはゼロ バーでもいいのですか?しかし、OnDeinit()では、バーをループして、自然にフラクタル(空のバッファ値ではない)を見つけます。 Deinitでは、4-6をループして、すべてが定位置にあり、価値を持っていることも確認しました。 Artyom Trishkin 2015.11.01 10:23 #4655 Maxim Dobrovolskii: Deinitでは、私も4-6を通過して、すべてがその場所にある。OnDeinit()では、0から100のループで非ゼロのバーを探し、見つかった値を記録します。OnTick()では、バッファ0の最後の6本だけを出力しようとしています。フラクタルが描かれていないかもしれない。 まず、フラクタルがあるバーを見つけて、そのバーの値を表示します。 Maxim Dobrovolskii 2015.11.01 10:31 #4656 Artyom Trishkin:OnDeinit()では、0から100のループで非ゼロのバーを探し、見つかった値を記録します。しかし、OnTick()では、バッファ0の最後の6本のバーだけを表示しようとしています。フラクタルは描かれていないかもしれません。まず、フラクタルがあるバーを見つけ、このバーの値を表示します。6小節目にはフラクタルが入る予定です。 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 フラクタル 上: 1.09855 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 フラクタル アップ: 1.09976 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 フラクタル ダウン: 1.096522015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 フラクタル アップ: 1.10721 2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit Function. 2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!テスト開始しました。ログの冒頭部分です。 テストが始まり、Expert Advisorが動作し、Deinitがロードされ、6でfractalが見つかりました。インジケータバッファに どう対処すればいいのか分かりません。 https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.pngイメージリプレイ ファイル: MetaTrader_4.png 36 kb Questions from Beginners MQL5 Reversal Magic trading system iCustom() Question Artyom Trishkin 2015.11.01 10:34 #4657 Maxim Dobrovolskii:6小節目にはフラクタルが含まれているはずです。 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 フラクタル 上: 1.09855 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 フラクタル アップ: 1.09976 2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 フラクタル ダウン: 1.096522015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 フラクタル アップ: 1.10721 2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit Function. 2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!テスト開始しました。テスト開始後、Expert Advisorが動作し、Deinitが開始され、すぐに6番目の位置でフラクタルが見つかりました。 https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.pngインジケーターバッファのアドレスがわかりません。これですね。if(Time[0] == prevtime) return; prevtime = Time[0];為さるprevtime = Time[0];揚げ句の果て Maxim Dobrovolskii 2015.11.01 10:48 #4658 Artyom Trishkin:これです。為さるを、最後の最後に。残念ながら、何も変わっていません。インジケータがロードされ、ティック/バーごとに 条件をチェックし始め、条件が満たされた場合、選択したバッファに値を入れ、次にEAがバッファ番号でインジケータを呼び出し、あるオフセットで値を取得する、というプロセスを想像しています。そうだろ? Victor Nikolaev 2015.11.01 11:16 #4659 Maxim Dobrovolskii:残念ながら、何も変わっていないのです。 インジケータがロードされ、ティック/バーごとに条件チェックを開始し、条件を満たした場合、選択したバッファに値を格納し、EAがバッファ番号でインジケータを呼び出し、あるオフセットで値を取得するプロセスを想像しています。そうだろ? また、インジケーターに新しいバーが 表示されているのはなぜですか?どうやら複雑な計算はしていないようです Maxim Dobrovolskii 2015.11.01 13:18 #4660 Victor Nikolaev: なぜ、インジケーターに新しいバー コントロールがあるのですか?どうやら複雑な計算はしていないようです インジケータを使用するEAで新しいバーの制御を行います。 1...459460461462463464465466467468469470471472473...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
皆様にご挨拶申し上げます。そんな疑問があります。あるインディケータ(modified fractals)をチャート上にロードすると、すべてが正しく、あるべきように動作しますが、EAで使おうとすると、バッファが空だと言われます。同時に、Deinitでバッファを渡す際に、正しい値を格納します。
インジケーターのソースコードを添付します。何が間違っているのか、ヒントや提案に耳を傾ける準備はできています。
EAからのコード。
最後のifを置き換えると
(そんな簡単なことなら、、、:)
感謝
皆様にご挨拶申し上げます。そんな疑問があります。あるインディケータ(modified fractals)をチャート上にロードすると、すべてが正しく、あるべきように動作しますが、EAで使おうとすると、バッファが空だと言われます。同時に、Deinitでバッファを渡す際に、正しい値を格納します。
インジケーターのソースコードを添付します。何が間違っているのか、ヒントや提案に耳を傾ける準備はできています。
EAからのコード。
非常にざっくりとした印象。質問:フラクタルはゼロ バーでもいいのですか?しかし、OnDeinit()では、バーをループして、自然にフラクタル(空のバッファ値ではない)を見つけます。
Deinitでは、私も4-6を通過して、すべてがその場所にある。
OnDeinit()では、0から100のループで非ゼロのバーを探し、見つかった値を記録します。
OnTick()では、バッファ0の最後の6本だけを出力しようとしています。フラクタルが描かれていないかもしれない。
まず、フラクタルがあるバーを見つけて、そのバーの値を表示します。
OnDeinit()では、0から100のループで非ゼロのバーを探し、見つかった値を記録します。
しかし、OnTick()では、バッファ0の最後の6本のバーだけを表示しようとしています。フラクタルは描かれていないかもしれません。まず、フラクタルがあるバーを見つけ、このバーの値を表示します。
6小節目にはフラクタルが入る予定です。
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 フラクタル 上: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 フラクタル アップ: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 フラクタル ダウン: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 フラクタル アップ: 1.10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit Function.
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!テスト開始しました。
ログの冒頭部分です。 テストが始まり、Expert Advisorが動作し、Deinitがロードされ、6でfractalが見つかりました。インジケータバッファに どう対処すればいいのか分かりません。
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
イメージリプレイ
6小節目にはフラクタルが含まれているはずです。
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 29 フラクタル 上: 1.098552015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 21 フラクタル アップ: 1.09976
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 16 フラクタル ダウン: 1.09652
2015.11.01 13:19:11.023 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: x = 6 フラクタル アップ: 1.10721
2015.11.01 13:19:10.577 2015.10.30 22:54 MoneyRobotics_Proboi! EURUSD,H1: Deinit Function.
2015.11.01 13:19:08.380 2015.10.01 00:00 MoneyRobotics_Proboi!テスト開始しました。
テスト開始後、Expert Advisorが動作し、Deinitが開始され、すぐに6番目の位置でフラクタルが見つかりました。
https://charts.mql5.com/9/256/eurusd-h1-alpari-limited-3.png
インジケーターバッファのアドレスがわかりません。
これですね。
為さる
prevtime = Time[0];
揚げ句の果て
これです。
為さる
を、最後の最後に。
残念ながら、何も変わっていません。
インジケータがロードされ、ティック/バーごとに 条件をチェックし始め、条件が満たされた場合、選択したバッファに値を入れ、次にEAがバッファ番号でインジケータを呼び出し、あるオフセットで値を取得する、というプロセスを想像しています。そうだろ?
残念ながら、何も変わっていないのです。
インジケータがロードされ、ティック/バーごとに条件チェックを開始し、条件を満たした場合、選択したバッファに値を格納し、EAがバッファ番号でインジケータを呼び出し、あるオフセットで値を取得するプロセスを想像しています。そうだろ?
なぜ、インジケーターに新しいバー コントロールがあるのですか?どうやら複雑な計算はしていないようです