初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1445 1...143814391440144114421443144414451446144714481449145014511452...1503 新しいコメント Aleksandr Slavskii 2023.02.14 03:54 #14441 Evgeny Dyuka #: 質問に答えてください fxsaberが ブートローダーとその使い方の説明を投稿したと思いますが、どこでどのようにかは覚えていません。 私の記憶が間違っていなければ、ターミナルフォルダC:¥Usersusername¥AppData¥Roaming¥MetaQuotes¥Terminal¥E98C5173D8A802F9B8F133E800FDDE2Bに入れる必要があります。 そして、ターミナルを起動する前に毎回 botnickを 実行 する。 この解決策は特に便利というわけではないが、他に方法がないのなら......。 rem Создали RAM-Drive для Тестера. imdisk -a -o awe -s 3 G -m Z: -p "/fs:ntfs /q /y /v:MT5Tester" mkdir z:\Tester mklink /j Tester z:\Tester rem Кеш оптимизатора будет сохраняться на диске. mkdir cache mklink /j z:\Tester\cache cache rem Временный RAM-Drive, чтобы на него можно было перенаправить log-папки. imdisk -a -o awe -s 3 M -m Y: -p "/fs:ntfs /q /y /v:MT5Tester_Logs" mkdir y:\logs mklink /j Tester\logs y:\logs mkdir y:\logs0 mkdir Tester\Agent-127.0.0.1-3000 mklink /j Tester\Agent-127.0.0.1-3000\logs y:\logs0 mkdir y:\logs1 mkdir Tester\Agent-127.0.0.1-3001 mklink /j Tester\Agent-127.0.0.1-3001\logs y:\logs1 mkdir y:\logs2 mkdir Tester\Agent-127.0.0.1-3002 mklink /j Tester\Agent-127.0.0.1-3002\logs y:\logs2 mkdir y:\logs3 mkdir Tester\Agent-127.0.0.1-3003 mklink /j Tester\Agent-127.0.0.1-3003\logs y:\logs3 mkdir y:\logs4 mkdir Tester\Agent-127.0.0.1-3004 mklink /j Tester\Agent-127.0.0.1-3004\logs y:\logs4 mkdir y:\logs5 mkdir Tester\Agent-127.0.0.1-3005 mklink /j Tester\Agent-127.0.0.1-3005\logs y:\logs5 mkdir y:\logs6 mkdir Tester\Agent-127.0.0.1-3006 mklink /j Tester\Agent-127.0.0.1-3006\logs y:\logs6 mkdir y:\logs7 mkdir Tester\Agent-127.0.0.1-3007 mklink /j Tester\Agent-127.0.0.1-3007\logs y:\logs7 mkdir y:\logs8 mkdir Tester\Agent-127.0.0.1-3008 mklink /j Tester\Agent-127.0.0.1-3008\logs y:\logs8 mkdir y:\logs9 mkdir Tester\Agent-127.0.0.1-3009 mklink /j Tester\Agent-127.0.0.1-3009\logs y:\logs9 mkdir y:\logs10 mkdir Tester\Agent-127.0.0.1-3010 mklink /j Tester\Agent-127.0.0.1-3010\logs y:\logs10 mkdir y:\logs11 mkdir Tester\Agent-127.0.0.1-3011 mklink /j Tester\Agent-127.0.0.1-3011\logs y:\logs11 mkdir y:\logs12 mkdir Tester\Agent-127.0.0.1-3012 mklink /j Tester\Agent-127.0.0.1-3012\logs y:\logs12 mkdir y:\logs13 mkdir Tester\Agent-127.0.0.1-3013 mklink /j Tester\Agent-127.0.0.1-3013\logs y:\logs13 mkdir y:\logs14 mkdir Tester\Agent-127.0.0.1-3014 mklink /j Tester\Agent-127.0.0.1-3014\logs y:\logs14 mkdir y:\logs15 mkdir Tester\Agent-127.0.0.1-3015 mklink /j Tester\Agent-127.0.0.1-3015\logs y:\logs15 mkdir y:\logs16 mkdir Tester\Agent-127.0.0.1-3016 mklink /j Tester\Agent-127.0.0.1-3016\logs y:\logs16 mkdir y:\logs17 mkdir Tester\Agent-127.0.0.1-3017 mklink /j Tester\Agent-127.0.0.1-3017\logs y:\logs17 mkdir y:\logs18 mkdir Tester\Agent-127.0.0.1-3018 mklink /j Tester\Agent-127.0.0.1-3018\logs y:\logs18 mkdir y:\logs19 mkdir Tester\Agent-127.0.0.1-3019 mklink /j Tester\Agent-127.0.0.1-3019\logs y:\logs19 mkdir y:\logs20 mkdir Tester\Agent-127.0.0.1-3020 mklink /j Tester\Agent-127.0.0.1-3020\logs y:\logs20 mkdir y:\logs21 mkdir Tester\Agent-127.0.0.1-3021 mklink /j Tester\Agent-127.0.0.1-3021\logs y:\logs21 mkdir y:\logs22 mkdir Tester\Agent-127.0.0.1-3022 mklink /j Tester\Agent-127.0.0.1-3022\logs y:\logs22 mkdir y:\logs23 mkdir Tester\Agent-127.0.0.1-3023 mklink /j Tester\Agent-127.0.0.1-3023\logs y:\logs23 mkdir y:\logs24 mkdir Tester\Agent-127.0.0.1-3024 mklink /j Tester\Agent-127.0.0.1-3024\logs y:\logs24 rem Убили временный RAM-Drive imdisk -D -m Y: くそ。最初に投稿して、それからbotnikはテスターでログを禁止するためのものだとわかりました。 申し訳ありませんが、私はあなたを助けることができない。 Alexey Viktorov 2023.02.14 06:44 #14442 Aleksandr Slavskii #:fxsaberが ブートニクと使い方の説明を投稿したと思うが、どこでどのようにかは覚えていない。記憶違いでなければ、ブートストラップをターミナルフォルダC:¥Usersusername¥AppData¥Roaming¥MetaQuotes¥Terminal¥E98C5173D8A802F9B8F133E800FDDE2Bに入れる必要があります。そして、ターミナルを起動する前に毎回 botnickを 実行 する。この解決策は特に便利というわけではないが、他に方法がないのであれば...。くそ。最初に投稿して、それからブートニックがテスターでのログを禁止しているのを見た。ごめんなさい、力になれません。 手動でログを削除するよりも、ブートローダを実行する方が簡単ではありませんか? サイトでは何が起こっているのですか?ある写真を貼り付けると、そこにあるべき写真が表示されるんですが、メッセージを貼り付けると、違う写真が表示されるんです...。 おお!わかったぞ...。 ファイル: 01.png 23 kb Evgeny Dyuka 2023.02.14 07:11 #14443 Aleksandr Slavskii #:fxsaberが ブートニクと使い方の説明を投稿したと思うが、どこでどのようにかは覚えていない。記憶違いでなければ、ブートストラップをターミナルフォルダC:¥Usersusername¥AppData¥Roaming¥MetaQuotes¥Terminal¥E98C5173D8A802F9B8F133E800FDDE2Bに入れる必要があります。そして、ターミナルを起動する前に毎回 botnickを 実行 する。この解決策は特に便利というわけではないが、他に方法がないのであれば...。くそ。最初に投稿して、それからブートニックがテスターでのログを禁止しているのを見た。ごめんなさい、力になれません。 どこかにチェックを入れようと思ったんだけど、それしかなかったんだ) まあ、我慢するしかないね。 回答ありがとう。 Alexey Viktorov 2023.02.14 07:29 #14444 Evgeny Dyuka #: どこかのボックスにチェックを入れて、それで終わりだと思ったんだ) とにかく、我慢するしかないね。 返信ありがとう。 そのコードはご自分で書かれたのですか?多分、dbがどのように呼び出されるのか、そして呼び出された後の数行をコードの一部で示してもらえると思います。何か、print errorと書いてあるような気がするのですが......。 Evgeny Dyuka 2023.02.14 17:28 #14445 Alexey Viktorov #:そのコードは自分で書いたのですか?多分、dbがどのように呼び出されるのか、そして呼び出された後の数行をコードの一部で示してくれるでしょう。エラーを表示すると書いてあるような気がするのですが・・・。 タスクは10秒ごとに現在時刻をデータベースに書き込むことです。これは同じExpert Advisorで行われますが、4つのチャートで行われます。 時間で区切るために、Sleep()というランダムな時間(0秒から3秒まで)を追加しました。 そして、接続を10回試みました。 ログによると、最大でも2回目の試行ですべてが機能することがわかりました。つまり、一般的には確実に機能します。. //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void db_update_lastseen(string symbol) { string comm = "UPDATE LastSeen SET utime='" + IntegerToString((int)TimeGMT()) + "' WHERE who='mt5' AND symbol='" + symbol + "'"; if(!db_exe("db_update_lastseen", comm)) Telegram("⚠MT5 DB ERROR db_update_lastseen() " + symbol, DevChannel); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool db_exe(string who, string comm, bool readonly = false) { ResetLastError(); int count = 0; bool repeat = true; int dbmt = INVALID_HANDLE; while(repeat) { count++; Sleep((int)((float)MathRand() / 10)); if(count > 10) { Print("DB: " + who + " failed with code ", GetLastError(), " DatabaseOpen ", " count: ", count); return false; } if(readonly) dbmt = DatabaseOpen(path_to_db, DATABASE_OPEN_READONLY); else dbmt = DatabaseOpen(path_to_db, DATABASE_OPEN_READWRITE); if(dbmt == INVALID_HANDLE) { DatabaseClose(dbmt); continue; } else { if(!DatabaseExecute(dbmt, comm)) { DatabaseClose(dbmt); continue; } else { DatabaseClose(dbmt); return true; } } } DatabaseClose(dbmt); return false; } Alexey Viktorov 2023.02.14 18:50 #14446 Evgeny Dyuka #: タスクは10秒ごとに現在時刻をデータベースに書き込むこと。これは同じExpert Advisorによって行われるが、チャートは4つある。 時間で区切るために、Sleep()というランダムな時間(0秒から3秒まで)を追加した。 そして10回接続を試みた。 ログによると、最大でも2回目の接続ですべてが機能する。つまり、一般的には確実に機能する。 。 これがログに出力される行だ。 Print("DB: " + who + " failed with code ", GetLastError(), " DatabaseOpen ", " count: ", count); ー//をー行のー行のー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー Evgeny Dyuka 2023.02.14 19:24 #14447 Alexey Viktorov #:だから、雑誌に印刷されるラインはこうだ。他にPrint()がなければ、//を前につけてコメントアウトするか、完全に削除すれば、すべての質問は取り除かれる; この関数自体がエラーを表示します。 Alexey Viktorov 2023.02.15 06:59 #14448 Evgeny Dyuka #:この行は、関数が10回試行した後に失敗した場合に表示される。 このエラーは、関数自体によって表示される。 なるほど。dbを操作しようとすると表示されます。データベースを使用する前に、dbハンドルの有効性チェックがあるかどうかを確認する必要があります。 ここでは関数を呼び出しています。 void db_update_lastseen(string symbol) { string comm = "UPDATE LastSeen SET utime='" + IntegerToString((int)TimeGMT()) + "' WHERE who='mt5' AND symbol='" + symbol + "'"; if(!db_exe("db_update_lastseen", comm)) Telegram("⚠MT5 DB ERROR db_update_lastseen() " + symbol, DevChannel); } dbを開こうとしてエラーになり、電報にメッセージを送りました。 また、dbmt変数を使用していますが、そこでその値をチェックしていますか? if(dbmt < 0) // ничего делать нельзя. База не открыта… それともこのように if(dbmt >= 0) { // Базу можно использовать. } Evgeny Dyuka 2023.02.15 07:44 #14449 Alexey Viktorov #:なるほど。これはdbを操作しようとしたときに出力されます。データベースを使用する前に、dbハンドルの有効性チェックがあるかどうかを確認する必要があります。ここではdbを開こうとしてエラーが発生し、telegramにメッセージを送った...また、dbmt変数を使用していますが、その値をチェックしていますか?それとも次のように はい、db_exe()でチェックし、retryに送ります。そして、db_exe()は10回失敗したらFalseを返します(一度も返したことはありません)。 if(dbmt == INVALID_HANDLE) { DatabaseClose(dbmt); continue; } Pythonではこのような問題は発生しません。どうやらキューイングと待機に組み込まれているようです。 ご回答ありがとうございました。 Alexey Viktorov 2023.02.15 07:59 #14450 Evgeny Dyuka #: はい、db_exe()でチェックして再試行に回します。しかし、db_exe()は10回失敗するとFalseを返します(一度も返されません)。 Pythonではこのような問題は発生せず、キューイングや待ち時間があるようです。 ご回答ありがとうございました。 1.ベースハンドルが取得されなければ、ベースを閉じる必要はありません。 2.2.INVALID_HANDLEを受信した場合、なぜプログラムの実行を続けるのですか?このような場合は、中止してreturnした方が良いと思います。 私は今、存在しないベースを開いたり閉じたりを繰り返していますが、エラー・プリントアウトを得ることができません。このプリントアウトは、オープンできなかったベースへのクエリを作成する瞬間に表示されるのだと思います。 1...143814391440144114421443144414451446144714481449145014511452...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
質問に答えてください
fxsaberが ブートローダーとその使い方の説明を投稿したと思いますが、どこでどのようにかは覚えていません。
私の記憶が間違っていなければ、ターミナルフォルダC:¥Usersusername¥AppData¥Roaming¥MetaQuotes¥Terminal¥E98C5173D8A802F9B8F133E800FDDE2Bに入れる必要があります。
そして、ターミナルを起動する前に毎回 botnickを 実行 する。
この解決策は特に便利というわけではないが、他に方法がないのなら......。
くそ。最初に投稿して、それからbotnikはテスターでログを禁止するためのものだとわかりました。
申し訳ありませんが、私はあなたを助けることができない。
fxsaberが ブートニクと使い方の説明を投稿したと思うが、どこでどのようにかは覚えていない。
記憶違いでなければ、ブートストラップをターミナルフォルダC:¥Usersusername¥AppData¥Roaming¥MetaQuotes¥Terminal¥E98C5173D8A802F9B8F133E800FDDE2Bに入れる必要があります。
そして、ターミナルを起動する前に毎回 botnickを 実行 する。
この解決策は特に便利というわけではないが、他に方法がないのであれば...。
くそ。最初に投稿して、それからブートニックがテスターでのログを禁止しているのを見た。
ごめんなさい、力になれません。
手動でログを削除するよりも、ブートローダを実行する方が簡単ではありませんか?
サイトでは何が起こっているのですか?ある写真を貼り付けると、そこにあるべき写真が表示されるんですが、メッセージを貼り付けると、違う写真が表示されるんです...。
おお!わかったぞ...。
fxsaberが ブートニクと使い方の説明を投稿したと思うが、どこでどのようにかは覚えていない。
記憶違いでなければ、ブートストラップをターミナルフォルダC:¥Usersusername¥AppData¥Roaming¥MetaQuotes¥Terminal¥E98C5173D8A802F9B8F133E800FDDE2Bに入れる必要があります。
そして、ターミナルを起動する前に毎回 botnickを 実行 する。
この解決策は特に便利というわけではないが、他に方法がないのであれば...。
くそ。最初に投稿して、それからブートニックがテスターでのログを禁止しているのを見た。
ごめんなさい、力になれません。
まあ、我慢するしかないね。
回答ありがとう。
どこかのボックスにチェックを入れて、それで終わりだと思ったんだ) とにかく、我慢するしかないね。 返信ありがとう。
そのコードはご自分で書かれたのですか?多分、dbがどのように呼び出されるのか、そして呼び出された後の数行をコードの一部で示してもらえると思います。何か、print errorと書いてあるような気がするのですが......。
そのコードは自分で書いたのですか?多分、dbがどのように呼び出されるのか、そして呼び出された後の数行をコードの一部で示してくれるでしょう。エラーを表示すると書いてあるような気がするのですが・・・。
時間で区切るために、Sleep()というランダムな時間(0秒から3秒まで)を追加しました。
そして、接続を10回試みました。
ログによると、最大でも2回目の試行ですべてが機能することがわかりました。つまり、一般的には確実に機能します。
.
タスクは10秒ごとに現在時刻をデータベースに書き込むこと。これは同じExpert Advisorによって行われるが、チャートは4つある。 時間で区切るために、Sleep()というランダムな時間(0秒から3秒まで)を追加した。 そして10回接続を試みた。 ログによると、最大でも2回目の接続ですべてが機能する。つまり、一般的には確実に機能する。 。
これがログに出力される行だ。
ー//をー行のー行のー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー行ー
だから、雑誌に印刷されるラインはこうだ。
他にPrint()がなければ、//を前につけてコメントアウトするか、完全に削除すれば、すべての質問は取り除かれる;
この関数自体がエラーを表示します。
この行は、関数が10回試行した後に失敗した場合に表示される。
このエラーは、関数自体によって表示される。
なるほど。dbを操作しようとすると表示されます。データベースを使用する前に、dbハンドルの有効性チェックがあるかどうかを確認する必要があります。
ここでは関数を呼び出しています。
dbを開こうとしてエラーになり、電報にメッセージを送りました。
また、dbmt変数を使用していますが、そこでその値をチェックしていますか?
それともこのように
なるほど。これはdbを操作しようとしたときに出力されます。データベースを使用する前に、dbハンドルの有効性チェックがあるかどうかを確認する必要があります。
ここでは
dbを開こうとしてエラーが発生し、telegramにメッセージを送った...
また、dbmt変数を使用していますが、その値をチェックしていますか?
それとも次のように
Pythonではこのような問題は発生しません。どうやらキューイングと待機に組み込まれているようです。
ご回答ありがとうございました。
はい、db_exe()でチェックして再試行に回します。しかし、db_exe()は10回失敗するとFalseを返します(一度も返されません)。 Pythonではこのような問題は発生せず、キューイングや待ち時間があるようです。 ご回答ありがとうございました。
1.ベースハンドルが取得されなければ、ベースを閉じる必要はありません。
2.2.INVALID_HANDLEを受信した場合、なぜプログラムの実行を続けるのですか?このような場合は、中止してreturnした方が良いと思います。
私は今、存在しないベースを開いたり閉じたりを繰り返していますが、エラー・プリントアウトを得ることができません。このプリントアウトは、オープンできなかったベースへのクエリを作成する瞬間に表示されるのだと思います。