初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1445 1...143814391440144114421443144414451446144714481449145014511452...1503 新评论 Aleksandr Slavskii 2023.02.14 03:54 #14441 Evgeny Dyuka #: 请回答问题 我想fxsaber 已经发布了引导加载程序和使用说明,但我不记得在哪里和如何使用了。 如果我没记错的话,你需要把它放在终端文件夹 C:\Users\username\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:\Users\username\AppData\Roaming\MetaQuotes\Terminal\E98C5173D8A802F9B8F133E800FDDE2B 中。每次启动终端前都运行 botnick 。这个办法不是特别方便,但如果没有其他办法,那就...妈的我先是贴了出来,然后又看到引导者禁止在测试器中记录日志。对不起,我帮不了你。 运行引导程序不是比手动删除日志更简单吗? 网站上发生了什么?我粘贴一张图片时,看到的是应该在那里的那张,但当我粘贴一条信息时,看到的却是另一张图片....。 哦!我明白了... 附加的文件: 01.png 23 kb Evgeny Dyuka 2023.02.14 07:11 #14443 Aleksandr Slavskii #:我想fxsaber 发布了一个引导尼克和如何使用它的说明,但我不记得在哪里以及如何使用的了。如果我没记错的话,你需要把引导程序放在终端文件夹 C:\Users\username\AppData\Roaming\MetaQuotes\Terminal\E98C5173D8A802F9B8F133E800FDDE2B 中。每次启动终端前都运行 botnick 。这个办法不是特别方便,但如果没有其他办法,那就...妈的我先是贴了出来,然后又看到引导者禁止在测试器中记录日志。对不起,我帮不了你。 我以为要在某个地方打勾,结果就这样了 )) 好吧,我只能忍了, 谢谢你的回答。 Alexey Viktorov 2023.02.14 07:29 #14444 Evgeny Dyuka #: 我以为我在某个地方打了个勾,就可以了 )) 不管怎样,我不得不忍受它, 谢谢你的答复。 代码是你自己写的吗?也许你可以显示一段如何调用 db 的代码以及调用后的几行代码。在我看来,它似乎在说打印错误..... Evgeny Dyuka 2023.02.14 17:28 #14445 Alexey Viktorov #:代码是你自己写的吗?也许你可以显示一段如何调用 db 的代码以及调用后的几行代码。在我看来,它似乎说要打印一个错误.... 任务是每 10 秒向数据库写入当前时间。 为了将它们按时间分开,我添加了一个 Sleep() 随机时间形式的拐杖--从 0 秒到 3 秒。 并尝试连接了 10 次。 日志显示,最多在第二次尝试时一切正常,也就是说,总体上运行可靠。 。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ 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 秒将当前时间写入数据库。 为了按时间将它们分开,我添加了 Sleep() 随机时间形式的拐杖--从 0 秒到 3 秒。 并尝试连接了 10 次。 日志显示,最多在第二次尝试时一切正常,即一般情况下工作可靠。 。 下面是打印到日志中的一行。 Print("DB: " + who + " failed with code ", GetLastError(), " DatabaseOpen ", " count: ", count); 只需在前面加上 // 或将其删除,如果其他地方没有其他 Print() 工具,所有问题都会被删除; 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); } 你试图打开数据库,结果出错,并向 telegram.... 发送了消息。 在使用 dbmt 变量时,是否检查了其值? if(dbmt < 0) // ничего делать нельзя. База не открыта… 或者像这样 if(dbmt >= 0) { // Базу можно использовать. } Evgeny Dyuka 2023.02.15 07:44 #14449 Alexey Viktorov #:我看到了。这是在尝试使用数据库时打印出来的。我们需要在使用数据库前检查 db 句柄是否有效。在这里,您调用了函数您试图打开数据库,但出现了错误,并向电报发送了信息...在使用 dbmt 变量时,是否检查了其值?或者像这样 是的,我在 db_exe() 中检查了它,并将其发送给重试。如果失败 10 次,db_exe() 将返回 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.如果收到 INVALID_HANDLE,为什么还要继续执行程序?我认为在这种情况下最好中止程序,返回"......"。 我现在反复尝试打开和关闭一个不存在的数据库,却无法得到错误的打印输出。我认为在向无法打开的数据库创建查询时会出现错误输出。 1...143814391440144114421443144414451446144714481449145014511452...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请回答问题
我想fxsaber 已经发布了引导加载程序和使用说明,但我不记得在哪里和如何使用了。
如果我没记错的话,你需要把它放在终端文件夹 C:\Users\username\AppData\Roaming\MetaQuotes\Terminal\E98C5173D8A802F9B8F133E800FDDE2B 中。
每次启动终端前都运行 botnick 。
这个办法不是特别方便,但如果没有别的办法,那就......
该死的我先是贴了出来,然后又看到 botnik 是用来禁止测试器中的日志的。
抱歉,我帮不上忙。
我想fxsaber 发布了一个引导尼克和如何使用它的说明,但我不记得在哪里以及如何使用的了。
如果我没记错的话,你需要把引导程序放在终端文件夹 C:\Users\username\AppData\Roaming\MetaQuotes\Terminal\E98C5173D8A802F9B8F133E800FDDE2B 中。
每次启动终端前都运行 botnick 。
这个办法不是特别方便,但如果没有其他办法,那就...
妈的我先是贴了出来,然后又看到引导者禁止在测试器中记录日志。
对不起,我帮不了你。
运行引导程序不是比手动删除日志更简单吗?
网站上发生了什么?我粘贴一张图片时,看到的是应该在那里的那张,但当我粘贴一条信息时,看到的却是另一张图片....。
哦!我明白了...
我想fxsaber 发布了一个引导尼克和如何使用它的说明,但我不记得在哪里以及如何使用的了。
如果我没记错的话,你需要把引导程序放在终端文件夹 C:\Users\username\AppData\Roaming\MetaQuotes\Terminal\E98C5173D8A802F9B8F133E800FDDE2B 中。
每次启动终端前都运行 botnick 。
这个办法不是特别方便,但如果没有其他办法,那就...
妈的我先是贴了出来,然后又看到引导者禁止在测试器中记录日志。
对不起,我帮不了你。
好吧,我只能忍了,
谢谢你的回答。
我以为我在某个地方打了个勾,就可以了 )) 不管怎样,我不得不忍受它, 谢谢你的答复。
代码是你自己写的吗?也许你可以显示一段如何调用 db 的代码以及调用后的几行代码。在我看来,它似乎在说打印错误.....
代码是你自己写的吗?也许你可以显示一段如何调用 db 的代码以及调用后的几行代码。在我看来,它似乎说要打印一个错误....
为了将它们按时间分开,我添加了一个 Sleep() 随机时间形式的拐杖--从 0 秒到 3 秒。
并尝试连接了 10 次。
日志显示,最多在第二次尝试时一切正常,也就是说,总体上运行可靠。
。
任务是每 10 秒将当前时间写入数据库。 为了按时间将它们分开,我添加了 Sleep() 随机时间形式的拐杖--从 0 秒到 3 秒。 并尝试连接了 10 次。 日志显示,最多在第二次尝试时一切正常,即一般情况下工作可靠。 。
下面是打印到日志中的一行。
只需在前面加上 // 或将其删除,如果其他地方没有其他 Print() 工具,所有问题都会被删除;
下面是打印到杂志上的一行字
如果其他地方没有其他 Print() 程序,只需在其前面加上 // 或将其完全删除,就可以将所有问题删除;
函数本身会打印错误信息。
如果函数在尝试 10 次后失败,将打印此行。
错误由函数本身打印。
我明白了。它是在尝试使用 db 时打印出来的。在使用数据库之前,我们需要检查 db 句柄是否有效。
在这里,您调用了函数
你试图打开数据库,结果出错,并向 telegram.... 发送了消息。
在使用 dbmt 变量时,是否检查了其值?
或者像这样
我看到了。这是在尝试使用数据库时打印出来的。我们需要在使用数据库前检查 db 句柄是否有效。
在这里,您调用了函数
您试图打开数据库,但出现了错误,并向电报发送了信息...
在使用 dbmt 变量时,是否检查了其值?
或者像这样
。
在 Python 中不会出现这样的问题,显然是内置了队列和等待功能。
感谢您的解答。
是的,我在 db_exe() 中进行了检查,并将其发送给重试。但如果 db_exe() 失败了 10 次,就会返回 False(从未返回)。 在 Python 中不会出现这样的问题,显然它有队列和等待功能。 谢谢您的解答。
1.如果基础句柄没有被检索,就不需要关闭基础。
2.如果收到 INVALID_HANDLE,为什么还要继续执行程序?我认为在这种情况下最好中止程序,返回"......"。
我现在反复尝试打开和关闭一个不存在的数据库,却无法得到错误的打印输出。我认为在向无法打开的数据库创建查询时会出现错误输出。