mql5言語の特徴、微妙なニュアンスとテクニック - ページ 239 1...232233234235236237238239240241242243244245246247 新しいコメント fxsaber 2024.01.04 23:04 #2381 Anatoli Kazharski #:シンボルにデータがあるかどうかを調べるにはどうすればよいですか?データがない場合、[Market Watch]ウィンドウに表示したままにしないですみますか? SymbolInfoTick. Anatoli Kazharski 2024.01.04 23:30 #2382 fxsaber #:SymbolInfoTick。 このオプションを試してみた。残念ながら、うまくいきません。シンボルが [Market Watch] ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、SymbolInfoTick は null 値を返します。 CopyXXX 関数もテストしましたが、タイムアウトがなく、サーバーからのデータを待つプロセスが約 45 秒と長すぎます。 文字が使用不可能かどうかを調べる簡単な方法が必要です。以下のようなケースです: //--- このようなシンボルはサーバーにデータを持っていないので、[市場概要]ウィンドウに追加されないように、あるいは追加されてもリストから削除されないように識別する方法が必要です。 追伸:[ Market Watch]ウィンドウのリストからシンボルを削除する際のロックを解除する方法はないでしょうか? fxsaber 2024.01.05 02:37 #2383 Anatoli Kazharski #:そのオプションを試してみた。残念ながらうまくいかない。シンボルが[Market Watch]ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、SymbolInfoTickは NULL値を返します。手でシンボルを取得するのは簡単です。 数回クリックするだけで、すべてのシンボルを [Market Watch] に追加できます。 数秒後にティックが表示されます。 ワンクリックで時間順にソート。 Delキーを使って、取得したリストの末尾の1つを削除する。 この作業には最大半分かかる。 Vladimir Pastushak 2024.01.05 04:23 #2384 Anatoli Kazharski #:そのオプションを試してみた。残念ながらうまくいかない。シンボルが[Market Watch]ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、SymbolInfoTickは NULL値を返します。CopyXXX 関数も試しましたが、タイムアウトがなく、サーバーからのデータを待つプロセスが約 45 秒と長すぎます。文字が使用不可能かどうかを調べる簡単な方法が必要です。このようなケースを想定しています://---このようなシンボルはサーバー上にデータがなく、[Market Watch]ウィンドウに追加されたり、追加されてもリストから削除されないように識別する方法が必要です。追伸:[Market Watch]ウィンドウのリストからシンボルを削除する際のロックを解除する方法はないでしょうか? 私は6年ほどこの問題と戦ってきたので、開発者にこの問題を解決するようお願いしています。 残念ながら、この問題は解決されておらず、現時点では、誰もが初めて金融商品にアクセスしたときにターミナルがハングする状況があります。 Alexey Viktorov 2024.01.05 07:40 #2385 Anatoli Kazharski #:シンボルにデータがあるかどうかを調べるにはどうすればよいですか?データがない場合、[Market Watch]ウィンドウに表示したままにしないですみますか?私はこのようなチェックをループの中で使っています:しかし、Expert Advisorがチャート上にある間は、[Market Watch] ウィンドウからシンボルを手動で1つずつ削除することも、一度に 削除することもできません: 最後の気配値の時刻をチェックしてみてください。 SymbolInfoInteger(name, SYMBOL_TIME); 0ならデータがない。 チャートを開いて確認しました。 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) USDCAD 2024.01.05 09:38:51 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) NZDUSD 2024.01.05 09:38:51 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) USDCAD 2024.01.05 09:38:51 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) EURGBP 2024.01.05 09:38:49 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) GBPUSD 2024.01.05 09:38:49 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) POZ3 1970.01.01 00:00:00 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) EDH4 1970.01.01 00:00:00 2024.01.05 10:38:43.783 !00 (GBPUSD,H1) BRZ3 1970.01.01 00:00:00 Nauris Zukas 2024.01.05 07:48 #2386 サーバーを切り替えることで追加データを取得することは可能だ。コードで実装できるかどうかはわからない。 JRandomTrader 2024.01.05 08:28 #2387 Nauris Zukas #: サーバーを切り替えることで追加データを取得することは可能だ。コードで実装できるかどうかはわからない。 サーバー間」が「ブローカー間」を意味するのであれば、プロファイルを弄らない限り、それは難しい。 しかし、もし本当に1つのブローカー(Openは多数、Finamは2つ)の異なるサーバー間を切り替える必要があれば、iptables/nftablesと私のbashスクリプトを使ってそれを行うだろう。でも、Linuxがあるここなら簡単だ。 Nauris Zukas 2024.01.05 08:52 #2388 JRandomTrader #:サーバー間」というのが「ブローカー間」という意味であれば。 . JRandomTrader 2024.01.05 09:16 #2389 Nauris Zukas #: はい、原理的には可能です。 しかし、MQLプログラムからサーバーの名前とipを調べる方法はないので、サーバーを切り替えて接続先のipをチェックし、手動で調べる必要がある。 それから、ファイアウォールの設定を変更することで、あるサーバーへの接続を禁止し(ここでは、タイムアウトを避けるためにパケットをドロップするのではなく、リジャックする必要がある)、MTを別のサーバーに強制的に切り替えることができる。 繰り返しますが、Linuxでこれを行うのは難しくありませんが、Windowsでこれを行う方法は想像できません。 Anatoli Kazharski 2024.01.05 11:19 #2390 Alexey Viktorov #:最後の引用の時間をチェックしてみてください。0ならデータがない。オープンチャートと照らし合わせてみました。 似たようなケースにも当てはまります: このオプションを試してみました。残念ながら、これは適合しません。シンボルが[Market Watch]ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、 SymbolInfoTickは null値を返します。 めったにティックが来ない場合、そのようなシンボルはすべて除外されます。 fxsaber#: 手作業でシンボルを取得するのは簡単です。 数回クリックするだけで、すべてのシンボルを Market Watch に追加できます。 数秒後にティックが表示されます。 ワンクリックで時間順にソート。 Delキーを使って、取得したリストの末尾の1つを削除する。 これだけで、最大半分かかる。 いいえ、全自動が必要です。 Vladimir Pastushak#: 私はすでに6年間この問題と戦ってきました。残念なことに、この問題は解決されておらず、現時点では、誰もが初めて金融商品にアクセスしたときにターミナルがハングアップする状況があります。 私がこの問題に気づいたのは、以下の関数を呼び出したときだけです: Bars() iBars() SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT) //--- ターミナル開発者: 1. トレードサーバーにデータのないシンボルを追加する可能性を排除する。 2.Market Watch] ウィンドウからのシンボル削除ブロックを無効にするか、バグであれば修正する。現在はターミナルを再起動しないとできない。 3.CopyXXXの ような関数に、タイムアウト(サーバーからのデータを待つ最大時間)を設定するオプション・パラメーターを追加する。 これは今すぐには再現できません。今のところ、遅延なく動作しています。しかし、場合によっては発生することもあるようです。 4.Bars()、iBars()、SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT)関数を以下のような場合に使用すると、無限に待たされるバグを修正: サーバーへの接続がない。 シンボルにデータがない。 チャートからプログラムを削除しようとすると、端末が数分間ハングすることがある。 5.サーバーへの接続がない場合に関数を使用すると無限待機になるバグを修正: SeriesInfoInteger(symbol, PERIOD_M1, SERIES_FIRSTDATE) SeriesInfoInteger(symbol, PERIOD_M1, SERIES_LASTBAR_DATE) SeriesInfoInteger(symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE) この場合、タイムアウト(サーバーからのデータを待つ最大時間)を設定するオプションのパラメータを追加することもできます。 //--- 追伸: 今のところ、私はCopyXXXの ような関数でデータをチェックする亜種に落ち着いています。しかし、上記のような問題が再び現れるかどうか、注視したいと思います。 Features of the mql5 Multicurrency and multitimeframe indicators MQL5 クックブック: MQL5でのマルチシンボルボラティリティインジケーターの開発 1...232233234235236237238239240241242243244245246247 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
シンボルにデータがあるかどうかを調べるにはどうすればよいですか?データがない場合、[Market Watch]ウィンドウに表示したままにしないですみますか?
SymbolInfoTick.
SymbolInfoTick。
このオプションを試してみた。残念ながら、うまくいきません。シンボルが [Market Watch] ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、SymbolInfoTick は null 値を返します。
CopyXXX 関数もテストしましたが、タイムアウトがなく、サーバーからのデータを待つプロセスが約 45 秒と長すぎます。
文字が使用不可能かどうかを調べる簡単な方法が必要です。以下のようなケースです:
//---
このようなシンボルはサーバーにデータを持っていないので、[市場概要]ウィンドウに追加されないように、あるいは追加されてもリストから削除されないように識別する方法が必要です。
追伸:[ Market Watch]ウィンドウのリストからシンボルを削除する際のロックを解除する方法はないでしょうか?
そのオプションを試してみた。残念ながらうまくいかない。シンボルが[Market Watch]ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、SymbolInfoTickは NULL値を返します。
手でシンボルを取得するのは簡単です。
そのオプションを試してみた。残念ながらうまくいかない。シンボルが[Market Watch]ウィンドウに初めて追加された場合、そのシンボルにはまだデータがなく、SymbolInfoTickは NULL値を返します。
CopyXXX 関数も試しましたが、タイムアウトがなく、サーバーからのデータを待つプロセスが約 45 秒と長すぎます。
文字が使用不可能かどうかを調べる簡単な方法が必要です。このようなケースを想定しています:
//---
このようなシンボルはサーバー上にデータがなく、[Market Watch]ウィンドウに追加されたり、追加されてもリストから削除されないように識別する方法が必要です。
追伸:[Market Watch]ウィンドウのリストからシンボルを削除する際のロックを解除する方法はないでしょうか?
私は6年ほどこの問題と戦ってきたので、開発者にこの問題を解決するようお願いしています。
残念ながら、この問題は解決されておらず、現時点では、誰もが初めて金融商品にアクセスしたときにターミナルがハングする状況があります。
シンボルにデータがあるかどうかを調べるにはどうすればよいですか?データがない場合、[Market Watch]ウィンドウに表示したままにしないですみますか?
私はこのようなチェックをループの中で使っています:
しかし、Expert Advisorがチャート上にある間は、[Market Watch] ウィンドウからシンボルを手動で1つずつ削除することも、一度に 削除することもできません:
最後の気配値の時刻をチェックしてみてください。
0ならデータがない。
チャートを開いて確認しました。
サーバーを切り替えることで追加データを取得することは可能だ。コードで実装できるかどうかはわからない。
サーバー間」が「ブローカー間」を意味するのであれば、プロファイルを弄らない限り、それは難しい。
しかし、もし本当に1つのブローカー(Openは多数、Finamは2つ)の異なるサーバー間を切り替える必要があれば、iptables/nftablesと私のbashスクリプトを使ってそれを行うだろう。でも、Linuxがあるここなら簡単だ。
サーバー間」というのが「ブローカー間」という意味であれば。
.
はい、原理的には可能です。
しかし、MQLプログラムからサーバーの名前とipを調べる方法はないので、サーバーを切り替えて接続先のipをチェックし、手動で調べる必要がある。
それから、ファイアウォールの設定を変更することで、あるサーバーへの接続を禁止し(ここでは、タイムアウトを避けるためにパケットをドロップするのではなく、リジャックする必要がある)、MTを別のサーバーに強制的に切り替えることができる。
繰り返しますが、Linuxでこれを行うのは難しくありませんが、Windowsでこれを行う方法は想像できません。
最後の引用の時間をチェックしてみてください。
0ならデータがない。
オープンチャートと照らし合わせてみました。
似たようなケースにも当てはまります:
めったにティックが来ない場合、そのようなシンボルはすべて除外されます。
手作業でシンボルを取得するのは簡単です。
いいえ、全自動が必要です。
私はすでに6年間この問題と戦ってきました。
残念なことに、この問題は解決されておらず、現時点では、誰もが初めて金融商品にアクセスしたときにターミナルがハングアップする状況があります。
私がこの問題に気づいたのは、以下の関数を呼び出したときだけです:
//---
ターミナル開発者:
1. トレードサーバーにデータのないシンボルを追加する可能性を排除する。
2.Market Watch] ウィンドウからのシンボル削除ブロックを無効にするか、バグであれば修正する。現在はターミナルを再起動しないとできない。
3.CopyXXXの ような関数に、タイムアウト(サーバーからのデータを待つ最大時間)を設定するオプション・パラメーターを追加する。
これは今すぐには再現できません。今のところ、遅延なく動作しています。しかし、場合によっては発生することもあるようです。
4.Bars()、iBars()、SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT)関数を以下のような場合に使用すると、無限に待たされるバグを修正:
チャートからプログラムを削除しようとすると、端末が数分間ハングすることがある。
5.サーバーへの接続がない場合に関数を使用すると無限待機になるバグを修正:
この場合、タイムアウト(サーバーからのデータを待つ最大時間)を設定するオプションのパラメータを追加することもできます。
//---
追伸: 今のところ、私はCopyXXXの ような関数でデータをチェックする亜種に落ち着いています。しかし、上記のような問題が再び現れるかどうか、注視したいと思います。