記事「MQL5での取引戦略の自動化(第24回):リスク管理とトレーリングストップを備えたロンドンセッションブレイクアウトシステム」についてのディスカッション - ページ 2 12 新しいコメント Kyle Young Sangster 2025.08.10 22:34 #11 コードのどこで変数「MaxOpenTrades」を使用するつもりでしたか?定義されていますが、参照されていません。 Kyle Young Sangster 2025.08.10 22:52 #12 Allan Munene Mutiiria #:2つ目の問題については、記事で説明されていますが、テストデータが不十分であったことが問題であると仮定し、ヒントを提供すると、レンジが計算中である場合、ロンドンレンジのセッションまたは入力で定義したセッションを設定するのに十分なデータがあるまで、常に "Calculating... "のステータスが表示されます。デフォルトの設定を使用していると仮定すると、ロンドン前の時間は3時間で、共有されたスクリーンショットの時間は2月13日で、22:00の2小節後は2*15分=30となり、したがって22:30はレンジ計算の時間外であるため、最初のセッションがまだ見つかっていない場合を除き、前の設定されたレンジがまだ有効であるため、パネル上のデータはまだ表示されているはずです。以下を参照してください:レンジを見つけるために、以下のロジックを参照する必要があるかもしれません。そして、どのように設定されるのか。下の画像を見てください。あなたのテストの年がわからないのですが、2025年とします。あなたのケースのように2020年であれば、そのための質の高いデータがないので、いずれにせよ、2025年を使用し、したがって範囲計算は真夜中から始まるはずです。画像から、23時55分のデータはそのままであることがわかります。しかし、午前0時になるとリセットされます。下記参照。他の範囲計算のために午前0時にデータをリセットしていることがわかります。実際、範囲計算が終了したとき、視覚化することによって、実際に何が行われたかを知ることができます。例えば、デフォルトの設定を使用した場合、0300 時から 0800 時までのラネッグ・バーが表示されます。以下をご覧ください:これでまたはっきりしたかと思います。ご自分の取引スタイルに合わせて、すべてを調整することができます。あなたが直面している問題を避けるためには、信頼できるテストデータを使用することをお勧めします。ありがとうございます。 はい、記事を読み、私が説明した問題にぶつかるまで、私自身のコピーのコーディングに従いました。私が見たのは、デフォルトの時間帯でもパネルが更新されないことでした。私のスクリーンショットは、チャート上にボックスが描かれ、データが収集されているにもかかわらず、パネルが更新されていないことを示すものでした。さらに、ログには無効な価格やレベルに関するエラーメッセージはありませんでした。 私のバージョンにログメッセージを追加しました。そこから、レンジが大きすぎたり小さすぎたりするとパネルが更新されないことがわかりました。 テストデータの品質を再チェックしてみます。また、どのペアでテストされたかをご指摘いただきありがとうございます。 ご助力に感謝いたします。 Allan Munene Mutiiria 2025.08.10 23:49 #13 Kyle Young Sangster #: はい、記事を読み、私が説明したような問題にぶつかるまで、自分なりにコーディングしました。私が見たのは、デフォルトの時間帯でもパネルが更新されなかったことです。私のスクリーンショットは、チャート上にボックスが描かれ、データが収集されているにもかかわらず、パネルが更新されていないことを示すものでした。さらに、ログには無効な価格やレベルに関するエラーメッセージはありませんでした。 私のバージョンにログメッセージを追加しました。そこから、レンジが大きすぎたり小さすぎたりするとパネルが更新されないことがわかりました。 テストデータの品質を再チェックしてみます。また、どのペアでテストされたかをご指摘いただきありがとうございます。 ご助力に感謝いたします。 もちろんです。 Torsten Busch 2025.11.11 21:01 #14 コードを共有していただきありがとうございます。 私自身もセッション依存のEAを書いたことがありますので、このコードが機能するのは、お使いのブローカーが常にGMT+1のタイムゾーンにあり、かつ英国夏時間を 使用している場合のみです。 それ以外のケースでは、開始時間は機能しません。なぜでしょうか?ロンドン・セッションは英国時間の午前8時に始まるからです。冬はGMT8:00、夏はGMT7:00です。 TimeCurrent() は、あなたのローカル時間を返すのではなく、常に取引サーバーからの時間を返します。 12 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
2つ目の問題については、記事で説明されていますが、テストデータが不十分であったことが問題であると仮定し、ヒントを提供すると、レンジが計算中である場合、ロンドンレンジのセッションまたは入力で定義したセッションを設定するのに十分なデータがあるまで、常に "Calculating... "のステータスが表示されます。デフォルトの設定を使用していると仮定すると、ロンドン前の時間は3時間で、共有されたスクリーンショットの時間は2月13日で、22:00の2小節後は2*15分=30となり、したがって22:30はレンジ計算の時間外であるため、最初のセッションがまだ見つかっていない場合を除き、前の設定されたレンジがまだ有効であるため、パネル上のデータはまだ表示されているはずです。以下を参照してください:
レンジを見つけるために、以下のロジックを参照する必要があるかもしれません。
そして、どのように設定されるのか。
下の画像を見てください。あなたのテストの年がわからないのですが、2025年とします。あなたのケースのように2020年であれば、そのための質の高いデータがないので、いずれにせよ、2025年を使用し、したがって範囲計算は真夜中から始まるはずです。
画像から、23時55分のデータはそのままであることがわかります。しかし、午前0時になるとリセットされます。下記参照。
他の範囲計算のために午前0時にデータをリセットしていることがわかります。実際、範囲計算が終了したとき、視覚化することによって、実際に何が行われたかを知ることができます。例えば、デフォルトの設定を使用した場合、0300 時から 0800 時までのラネッグ・バーが表示されます。以下をご覧ください:
これでまたはっきりしたかと思います。ご自分の取引スタイルに合わせて、すべてを調整することができます。あなたが直面している問題を避けるためには、信頼できるテストデータを使用することをお勧めします。ありがとうございます。
はい、記事を読み、私が説明した問題にぶつかるまで、私自身のコピーのコーディングに従いました。私が見たのは、デフォルトの時間帯でもパネルが更新されないことでした。私のスクリーンショットは、チャート上にボックスが描かれ、データが収集されているにもかかわらず、パネルが更新されていないことを示すものでした。さらに、ログには無効な価格やレベルに関するエラーメッセージはありませんでした。
私のバージョンにログメッセージを追加しました。そこから、レンジが大きすぎたり小さすぎたりするとパネルが更新されないことがわかりました。
テストデータの品質を再チェックしてみます。また、どのペアでテストされたかをご指摘いただきありがとうございます。
ご助力に感謝いたします。
はい、記事を読み、私が説明したような問題にぶつかるまで、自分なりにコーディングしました。私が見たのは、デフォルトの時間帯でもパネルが更新されなかったことです。私のスクリーンショットは、チャート上にボックスが描かれ、データが収集されているにもかかわらず、パネルが更新されていないことを示すものでした。さらに、ログには無効な価格やレベルに関するエラーメッセージはありませんでした。
私のバージョンにログメッセージを追加しました。そこから、レンジが大きすぎたり小さすぎたりするとパネルが更新されないことがわかりました。
テストデータの品質を再チェックしてみます。また、どのペアでテストされたかをご指摘いただきありがとうございます。
ご助力に感謝いたします。
もちろんです。
コードを共有していただきありがとうございます。
私自身もセッション依存のEAを書いたことがありますので、このコードが機能するのは、お使いのブローカーが常にGMT+1のタイムゾーンにあり、かつ英国夏時間を 使用している場合のみです。
それ以外のケースでは、開始時間は機能しません。なぜでしょうか?ロンドン・セッションは英国時間の午前8時に始まるからです。冬はGMT8:00、夏はGMT7:00です。
TimeCurrent() は、あなたのローカル時間を返すのではなく、常に取引サーバーからの時間を返します。