mql5言語の特徴、微妙なニュアンスとテクニック - ページ 203 1...196197198199200201202203204205206207208209210...247 新しいコメント Artyom Trishkin 2021.05.22 03:41 #2021 このトピックに関係のないコメントは、「MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッション」に移動しました。 Ilyas 2021.05.28 16:18 #2022 初期化シーケンス"{ ... "を拡張しているのです。}" のように、次のビルドでは、定数だけでなく、どんな式でも許されるようになります。 この変更の代わりに、(通常の式と同様に)列挙型に対する定数の使用に制限が設けられます:定数が列挙型の一部でない場合、適切なエラーが生成されます。 既存のコードを分析した結果、単一ゼロシーケンス"{0}"が誤って使用されることが多いことがわかった。 例えば、こんな風に。 MqlTradeRequest request={0}; この表記は、構造体の最初のフィールドに0を設定し、残りのフィールドをゼロにすることを意味する。 上記のコード行では、新しいルールによると、最初のフィールドのタイプがENUM_TRADE_REQUEST_ACTIONS で、値 "0" を欠く列挙型 であるためエラーとなります。 cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS' というのが正しい方法でしょう。 MqlTradeRequest request={}; mktr8591 2021.05.28 17:49 #2023 Ilyas:これは正しい。MqlTradeRequest request={}; そうすると、request.actionは何と同じになるのでしょうか? Ilyas 2021.05.31 09:34 #2024 mktr8591:そうすると、request.actionは何と同じになるのでしょうか? もちろん、この構造体のオブジェクトに対してZeroMemoryが 呼び出されるように、ゼロになります Andrey Khatimlianskii 2021.05.31 15:12 #2025 時系列やそれに基づく指標を把握する方法は? トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム バグ、バグ、質問 スラバ さん 2021.05.29 18:16 思い出してほしい。 1.少なくとも1つのチャートが開かれている各シンボルについて、受信したティックを処理するために別のスレッドが動作しています。あるシンボルに対して複数のチャートが開かれていても、スレッドは1つだけです。 2.シンボルスレッドでは、チャートではなく、時系列を扱います。つまり、CopyRatesリクエストに提出される、まったく同じデータ配列です。 3. OnTickやOnCalculateで、シンボルが同期しているかどうかを確認するのは無駄です。もちろん、そうです。 4.すべての時系列は、低いものから高いものへと順番に処理されます。まず、ティックを適用し、この時系列で作成されたすべての指標を計算する。M1で動作するインジケータから同じH1シンボルのデータを要求しても、適用されたティックでデータを取得することはできません。どんなトリックを施しても、データは必ず1ティック戻る。連続したタイムフレーム処理で1シンボルにつき1スレッドだから。 5.EAとスクリプトはそれぞれ別のスレッドで動作するため、前言は当てはまりません。 Andrey Khatimlianskii 2021.06.05 11:59 #2026 Andrey Khatimlianskii:時系列やそれに基づく指標を把握するにはどうしたらよいですか? トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム バグ、バグ、質問 スラバ さん 2021.06.01 06:34 最初のリクエストの際、インジケータはそのシンボルからではなく、別のタイムフレームからデータを受け取ることがあります。 リクエストに失敗した後は、チャートを更新するコマンドを 送るだけで、OnCalculateを直ちに終了させます。OnCalculateが呼び出され、この時間までにタイムスケールが準備されることが保証されています。 fxsaber 2021.06.30 10:39 #2027 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム mql5言語の特徴、微妙なニュアンスとコツ fxsaber さん 2017.11.30 09:48 メモ アクション/プログラムの種類 TFまたはシンボルの変更 アカウント変更 インジケーター OnDeinitとOnInitを実行すると、グローバルクラスのオブジェクトが変更されます(フルリセット)。 prev_calculatedがリセットされる以外は何も起こりません。 電子ブック OnDeinitとOnInitを実行しても、グローバルクラスのオブジェクトは 変更されません。 OnDeinitとOnInitを実行すると、グローバルクラスのオブジェクトが変更されます(フルリロード)。 指標の強調された挙動が変化した。EAと同じになりました。 Artyom Trishkin 2021.06.30 11:45 #2028 fxsaber:ハイライトされたインジケーターの動作が変更されました。EAと一致するようになりました。 ポイントは別にある。意図的な行動変化ではなく、見落としの可能性もあるのでは?見つかったんですか? fxsaber 2021.06.30 12:01 #2029 Artyom Trishkin:ポイントは別にある。意図的な行動変化ではなく、見落としの可能性もあるのでは?認識できましたか? してないんです。フィードバックはほとんどない。ところが、ここにきて、こんな機能があることを知りました。 const bool Init = EventSetMillisecondTimer(1); const long Account = AccountInfoInteger(ACCOUNT_LOGIN); #define TOSTRING(A) #A + " = " + (string)(A) + " " void OnTimer() { if (Account != AccountInfoInteger(ACCOUNT_LOGIN)) Alert(TOSTRING(Account) + TOSTRING(AccountInfoInteger(ACCOUNT_LOGIN))); } このExpert Advisorは、口座間の切り替え時に警告を発します。ルール上、そうしてはいけないようです。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム mql5言語の特徴、微妙なニュアンスとコツ fxsaber さん 2017.11.30 09:48 メモ アクション/プログラムの種類 TFまたはシンボルの変更 アカウント変更 インジケーター OnDeinitとOnInitを実行すると、グローバルクラスのオブジェクトが変更されます(フルリセット)。 prev_calculatedがリセットされる以外は何も起こりません。 電子ブック OnDeinitとOnInitを実行しても、グローバルクラスのオブジェクトは 変更されません。 OnDeinitとOnInitを実行すると、グローバルクラスのオブジェクトが変更されます(フルリロード)。 ただし、これはタイマーによるものです。 Andrey Khatimlianskii 2021.06.30 12:26 #2030 fxsaber:アカウント切り替え時にアラートを出すアドバイザーです。ルールからすると、してはいけないことだと思われます。しかし、これはタイマーを使っているからこそ起こることです。 他のイベントハンドラが中断される(実行されない)ことは、誰も保証していない。 アラートの後、deinitとinitの両方が起こりますよね? 1...196197198199200201202203204205206207208209210...247 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
初期化シーケンス"{ ... "を拡張しているのです。}" のように、次のビルドでは、定数だけでなく、どんな式でも許されるようになります。
この変更の代わりに、(通常の式と同様に)列挙型に対する定数の使用に制限が設けられます:定数が列挙型の一部でない場合、適切なエラーが生成されます。
既存のコードを分析した結果、単一ゼロシーケンス"{0}"が誤って使用されることが多いことがわかった。
例えば、こんな風に。
この表記は、構造体の最初のフィールドに0を設定し、残りのフィールドをゼロにすることを意味する。
上記のコード行では、新しいルールによると、最初のフィールドのタイプがENUM_TRADE_REQUEST_ACTIONS で、値 "0" を欠く列挙型 であるためエラーとなります。
というのが正しい方法でしょう。
MqlTradeRequest request={};
これは正しい。
MqlTradeRequest request={};
そうすると、request.actionは何と同じになるのでしょうか?
そうすると、request.actionは何と同じになるのでしょうか?
もちろん、この構造体のオブジェクトに対してZeroMemoryが 呼び出されるように、ゼロになります
時系列やそれに基づく指標を把握する方法は?
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
スラバ さん 2021.05.29 18:16
思い出してほしい。
1.少なくとも1つのチャートが開かれている各シンボルについて、受信したティックを処理するために別のスレッドが動作しています。あるシンボルに対して複数のチャートが開かれていても、スレッドは1つだけです。
2.シンボルスレッドでは、チャートではなく、時系列を扱います。つまり、CopyRatesリクエストに提出される、まったく同じデータ配列です。
3. OnTickやOnCalculateで、シンボルが同期しているかどうかを確認するのは無駄です。もちろん、そうです。
4.すべての時系列は、低いものから高いものへと順番に処理されます。まず、ティックを適用し、この時系列で作成されたすべての指標を計算する。M1で動作するインジケータから同じH1シンボルのデータを要求しても、適用されたティックでデータを取得することはできません。どんなトリックを施しても、データは必ず1ティック戻る。連続したタイムフレーム処理で1シンボルにつき1スレッドだから。
5.EAとスクリプトはそれぞれ別のスレッドで動作するため、前言は当てはまりません。
時系列やそれに基づく指標を把握するにはどうしたらよいですか?
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
スラバ さん 2021.06.01 06:34
最初のリクエストの際、インジケータはそのシンボルからではなく、別のタイムフレームからデータを受け取ることがあります。
リクエストに失敗した後は、チャートを更新するコマンドを 送るだけで、OnCalculateを直ちに終了させます。OnCalculateが呼び出され、この時間までにタイムスケールが準備されることが保証されています。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
mql5言語の特徴、微妙なニュアンスとコツ
fxsaber さん 2017.11.30 09:48
メモ
ポイントは別にある。意図的な行動変化ではなく、見落としの可能性もあるのでは?見つかったんですか?
ポイントは別にある。意図的な行動変化ではなく、見落としの可能性もあるのでは?認識できましたか?
してないんです。フィードバックはほとんどない。ところが、ここにきて、こんな機能があることを知りました。
このExpert Advisorは、口座間の切り替え時に警告を発します。ルール上、そうしてはいけないようです。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
mql5言語の特徴、微妙なニュアンスとコツ
fxsaber さん 2017.11.30 09:48
メモ
アカウント切り替え時にアラートを出すアドバイザーです。ルールからすると、してはいけないことだと思われます。
他のイベントハンドラが中断される(実行されない)ことは、誰も保証していない。
アラートの後、deinitとinitの両方が起こりますよね?