模仿EA/指示器的刻度线 - 页 2 12345678 新评论 Vadim Zhunko 2012.11.04 20:58 #11 Meat: 你的代码,首先,不只是模拟一个tick,而是强制图形在每个tick上更新相应的历史记录。 你有时会看一下日志文件吗? 在你有空的时候,看一下,看看那里发生了什么事。并估计一天左右后会有什么。更不用说对你的系统和互联网通道的负荷了。 如果我们不在你的代码中更新图表,而是模拟tick,就会导致循环(即指标会不停地启动),相应地,终端会挂起。 为什么我需要在不加载历史记录的情况下进行更新?图表的强制刷新是对tick的模仿。下面是2500次后的日志。00:51:32 Check_UpdateChart EURUSD,M1:加载成功 00:52:48 Check_UpdateChart EURUSD,M1: uninit reason 1 00:52:48 Check_UpdateChart EURUSD,M1: 删除 没有什么是悬而未决的。仿真是为了让指标循环。换句话说,它自己触发了。 Alexey Navoykov 2012.11.04 21:44 #12 Zhunko: 为什么不加载历史记录就需要更新?强制更新图形是勾选仿真。 下面是2500次后的日志。 00:51:32 Check_UpdateChart EURUSD,M1:加载成功 00:52:48 Check_UpdateChart EURUSD,M1: uninit reason 1 00:52:48 Check_UpdateChart EURUSD,M1: 删除 没有什么是悬而未决的。仿真是为了让指标循环。就是说,它自己开始。 我以为我写得很清楚:"log 日志"。那么你为什么给我看专家的日志呢? 显然,我是对的,你从来不看那里。 如果你有一半的硬盘被这些日志填满,我也不会感到惊讶 :) 历史更新和tick模拟是不同的事情。 从服务器传入的tick不会更新历史(即以前的条形图)。 如果是这样的话,终端将浪费大量的流量和资源。 因此,不清楚为什么你需要在每个tick 上更新它,这将把IndicatorCounted()重置为零,因此需要在每个tick上检查整个历史。这是在浪费大量的资源。 solar 2012.11.04 21:51 #13 Meat: 从服务器传来的刻度线并不更新历史记录(即以前的条形图)。 如果它们这样做,终端将占用大量的流量和资源。 例如,如果1bar=2ticks ))))),该怎么做?在我的情况下,滴答更新历史? Alexey Navoykov 2012.11.04 21:57 #14 IgorM:后放置在 我在日志中得到了它。 23:39:01 test EURUSD,H1: loaded successfully 23:39:01 test EURUSD,H1: PostMsgAddr =1977398342 23:39:01 test EURUSD,H1: initialized 23:39:01 test EURUSD,H1: cycle completed.... 是的,不清楚发生了什么事......那就试试这个。在导入 部分#import"user32.dll" 添加一个函数。 CallWindowProcA(int lpPrevWndFunc[], int hWnd, int Msg, int wParam, int lParam); 并在SetMyTimer函数的末尾添加一行:CallWindowProcA(code,0,0,0,0)。 并用一些平行运行的指标检查此刻是否产生了一个刻度。 Alexey Navoykov 2012.11.04 22:00 #15 solar: 例如,如果我有1个柱子=2个刻度,怎么办?)))))在我的情况下,滴答更新历史? 当然,目前的酒吧总是在更新,但我们谈论的是一般的历史。 Vadim Zhunko 2012.11.04 22:59 #16 Meat: 我写得很清楚:"日志"。那么你为什么给我看专家顾问的日志呢? 显然我是对的,你从来不看那里--如果你一半的硬盘已经塞满了这些日志,我一点也不奇怪 :) 不要混淆这两个概念。历史更新和滴答模拟是不同的事情。从服务器传来的刻度线并不更新历史记录(即以前的条形图)。 如果它们这样做,终端将消耗大量的流量和资源。 因此,不清楚为什么你需要在每个tick上更新它,这将把IndicatorCounted()重置为零,因此需要在每个tick上检查整个历史。这是在浪费大量的资源。 日志也是空的,但有一些其他原因。我在调换历史记录后使用控制台清洁剂。我有自己的日志。MT4的日志对我来说一点都不麻烦。Metacquotes多次表示,伐木是最后要做的事。这不是一个优先事项。它不消耗任何资源。它只是需要及时清理,仅此而已。至于IndicatorCounted()...我不使用它。我的指标是空框,用于从专家顾问中提取信息。我认为在MT4中使用指标是有害的。接口线程很慢,它们的工作速度比专家顾问系统慢3倍。突出的当然是正确的,但值得如此费力地进行分离吗?这里是415的更新日志。03:00:44自定义指标 Check_UpdateChart EURUSD,M1:加载成功 03:00:46 历史中心:同步'EURUSD1 03:00:46 历史中心:在'EURUSD1'中导入了2个柱子 03:00:47 历史中心:同步 "EURUSD1"。 03:00:47 历史中心:在'EURUSD1'中导入了2个柱子 03:00:47 历史中心:同步 "EURUSD1"。 03:00:47 历史中心:在'EURUSD1'中导入了2个柱子 03:00:48 历史中心:同步 "EURUSD1"。 03:00:48 历史中心:在'EURUSD1'中导入了2个柱子 03:00:48 历史中心:同步 "EURUSD1"。 03:00:49 历史中心:在'EURUSD1'中导入了2个柱子 03:00:49 历史中心:同步 "EURUSD1"。 03:00:49 历史中心:在'EURUSD1'中导入了2个柱子 03:00:50 历史中心:同步 "EURUSD1"。 03:00:50 历史中心:在'EURUSD1'中导入了2个柱子 03:00:51 历史中心:同步 "EURUSD1"。 03:00:51 历史中心:在'EURUSD1'中导入了2个柱子 03:00:51 历史中心:同步 "EURUSD1"。 03:00:52 历史中心:在'EURUSD1'中导入了2个柱子 03:00:52 历史中心:同步 "EURUSD1"。 03:00:55 历史中心:在'EURUSD1'中导入了2个柱子 03:00:55 历史中心:同步 "EURUSD1"。 03:00:55 历史中心:在'EURUSD1'中导入了2个柱子 03:00:55 历史中心:同步 "EURUSD1"。 03:00:55 历史中心:在'EURUSD1'中导入了2个柱子 03:00:55 历史中心:同步 "EURUSD1"。 03:00:56 历史中心:在'EURUSD1'中导入了2个柱子 03:00:56 历史中心:同步 "EURUSD1"。 03:00:57 自定义指标Check_UpdateChart EURUSD,M1:移除 03:00:59 历史中心:在'EURUSD1'中导入了2个柱子 03:01:01 MetaTrader build 438停止了对我来说,在周末测试指标的性能似乎并不重要。工作结束后可以手动清理日志。但在start() 的末尾插入一行代码比插入你的代码更容易。将其复杂化是没有意义的。 Emulation of ticks from Bar Data Upon Restart VPS not working elmucon 2012.11.04 23:49 #17 我的操作系统是XP - 似乎可以工作 - 然后它使终端崩溃 .... 无论是在指标代码中,还是在EA代码中,或者本身,结果都是一样的,终端在大约15-50秒后崩溃...... 因此,你有一些问题... 但这并不是一个坏主意... Алексей Тарабанов 2012.11.04 23:55 #18 有没有办法让它类似于一个指标?仅仅通过将光标指向我想看到指标读数的时间点(在该点)? Alexey Navoykov 2012.11.05 02:33 #19 Zhunko,好吧,如果所有的东西都是非标准的(你自己的日志,你自己的指标实现等),那么你为什么要开始这整个谈话? 我们实际上是在讨论专门与MT4的工作,而不是与我们自己的发展。 在我的第一篇文章中,我特别指出,如果任务是在没有外部链接的 情况下进行,即实现一个只使用系统库的自给自足的专家顾问/指标,那么我的代码将是有用的。 而如果你使用自己的开发,那么它对你就不适用。 总的来说,我不明白为什么我必须 "在工作后手动清理日志",如果不把它弄得乱七八糟会更容易。毕竟,据我所知,你在DLL中实现了你的发展。那么是什么阻止了你在那里设置同样的定时器,正如我在这里建议的那样。但由于某些原因,你更喜欢用手鼓跳各种舞蹈和清理日志。 我的代码困扰着你,而你却懒得每天清理日志 :) Alexey Navoykov 2012.11.05 02:39 #20 elmucon: 我的操作系统是XP - 似乎可以工作 - 然后它使终端崩溃 .... 无论是在指标代码中,还是在EA代码中,或者本身,结果都是一样的,终端在大约15-50秒后崩溃...... 因此,你有一些问题... 但这并不是一个坏主意... 是的,也许这有点牵强。 我不是什么汇编专家,所以不要太苛责我 :) 我会试着找出问题所在的。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你的代码,首先,不只是模拟一个tick,而是强制图形在每个tick上更新相应的历史记录。 你有时会看一下日志文件吗? 在你有空的时候,看一下,看看那里发生了什么事。并估计一天左右后会有什么。更不用说对你的系统和互联网通道的负荷了。
如果我们不在你的代码中更新图表,而是模拟tick,就会导致循环(即指标会不停地启动),相应地,终端会挂起。
为什么我需要在不加载历史记录的情况下进行更新?图表的强制刷新是对tick的模仿。
下面是2500次后的日志。
00:51:32 Check_UpdateChart EURUSD,M1:加载成功
00:52:48 Check_UpdateChart EURUSD,M1: uninit reason 1
00:52:48 Check_UpdateChart EURUSD,M1: 删除
为什么不加载历史记录就需要更新?强制更新图形是勾选仿真。
下面是2500次后的日志。
00:51:32 Check_UpdateChart EURUSD,M1:加载成功
00:52:48 Check_UpdateChart EURUSD,M1: uninit reason 1
00:52:48 Check_UpdateChart EURUSD,M1: 删除
我以为我写得很清楚:"log 日志"。那么你为什么给我看专家的日志呢? 显然,我是对的,你从来不看那里。 如果你有一半的硬盘被这些日志填满,我也不会感到惊讶 :)
历史更新和tick模拟是不同的事情。 从服务器传入的tick不会更新历史(即以前的条形图)。 如果是这样的话,终端将浪费大量的流量和资源。
因此,不清楚为什么你需要在每个tick 上更新它,这将把IndicatorCounted()重置为零,因此需要在每个tick上检查整个历史。这是在浪费大量的资源。
从服务器传来的刻度线并不更新历史记录(即以前的条形图)。 如果它们这样做,终端将占用大量的流量和资源。
后放置在
我在日志中得到了它。23:39:01 test EURUSD,H1: loaded successfully
23:39:01 test EURUSD,H1: PostMsgAddr =1977398342
23:39:01 test EURUSD,H1: initialized
23:39:01 test EURUSD,H1: cycle completed....
是的,不清楚发生了什么事......那就试试这个。在导入 部分#import"user32.dll" 添加一个函数。
CallWindowProcA(int lpPrevWndFunc[], int hWnd, int Msg, int wParam, int lParam);
并在SetMyTimer函数的末尾添加一行:CallWindowProcA(code,0,0,0,0)。
并用一些平行运行的指标检查此刻是否产生了一个刻度。
例如,如果我有1个柱子=2个刻度,怎么办?)))))在我的情况下,滴答更新历史?
我写得很清楚:"日志"。那么你为什么给我看专家顾问的日志呢? 显然我是对的,你从来不看那里--如果你一半的硬盘已经塞满了这些日志,我一点也不奇怪 :)
不要混淆这两个概念。历史更新和滴答模拟是不同的事情。从服务器传来的刻度线并不更新历史记录(即以前的条形图)。 如果它们这样做,终端将消耗大量的流量和资源。
因此,不清楚为什么你需要在每个tick上更新它,这将把IndicatorCounted()重置为零,因此需要在每个tick上检查整个历史。这是在浪费大量的资源。
日志也是空的,但有一些其他原因。我在调换历史记录后使用控制台清洁剂。我有自己的日志。
MT4的日志对我来说一点都不麻烦。Metacquotes多次表示,伐木是最后要做的事。这不是一个优先事项。它不消耗任何资源。它只是需要及时清理,仅此而已。
至于IndicatorCounted()...我不使用它。我的指标是空框,用于从专家顾问中提取信息。我认为在MT4中使用指标是有害的。接口线程很慢,它们的工作速度比专家顾问系统慢3倍。
突出的当然是正确的,但值得如此费力地进行分离吗?
这里是415的更新日志。
03:00:44自定义指标 Check_UpdateChart EURUSD,M1:加载成功
03:00:46 历史中心:同步'EURUSD1
03:00:46 历史中心:在'EURUSD1'中导入了2个柱子
03:00:47 历史中心:同步 "EURUSD1"。
03:00:47 历史中心:在'EURUSD1'中导入了2个柱子
03:00:47 历史中心:同步 "EURUSD1"。
03:00:47 历史中心:在'EURUSD1'中导入了2个柱子
03:00:48 历史中心:同步 "EURUSD1"。
03:00:48 历史中心:在'EURUSD1'中导入了2个柱子
03:00:48 历史中心:同步 "EURUSD1"。
03:00:49 历史中心:在'EURUSD1'中导入了2个柱子
03:00:49 历史中心:同步 "EURUSD1"。
03:00:49 历史中心:在'EURUSD1'中导入了2个柱子
03:00:50 历史中心:同步 "EURUSD1"。
03:00:50 历史中心:在'EURUSD1'中导入了2个柱子
03:00:51 历史中心:同步 "EURUSD1"。
03:00:51 历史中心:在'EURUSD1'中导入了2个柱子
03:00:51 历史中心:同步 "EURUSD1"。
03:00:52 历史中心:在'EURUSD1'中导入了2个柱子
03:00:52 历史中心:同步 "EURUSD1"。
03:00:55 历史中心:在'EURUSD1'中导入了2个柱子
03:00:55 历史中心:同步 "EURUSD1"。
03:00:55 历史中心:在'EURUSD1'中导入了2个柱子
03:00:55 历史中心:同步 "EURUSD1"。
03:00:55 历史中心:在'EURUSD1'中导入了2个柱子
03:00:55 历史中心:同步 "EURUSD1"。
03:00:56 历史中心:在'EURUSD1'中导入了2个柱子
03:00:56 历史中心:同步 "EURUSD1"。
03:00:57 自定义指标Check_UpdateChart EURUSD,M1:移除
03:00:59 历史中心:在'EURUSD1'中导入了2个柱子
03:01:01 MetaTrader build 438停止了
对我来说,在周末测试指标的性能似乎并不重要。工作结束后可以手动清理日志。
但在start() 的末尾插入一行代码比插入你的代码更容易。将其复杂化是没有意义的。
我的操作系统是XP - 似乎可以工作 - 然后它使终端崩溃 ....
无论是在指标代码中,还是在EA代码中,或者本身,结果都是一样的,终端在大约15-50秒后崩溃......
因此,你有一些问题...
但这并不是一个坏主意...
有没有办法让它类似于一个指标?
仅仅通过将光标指向我想看到指标读数的时间点(在该点)?
Zhunko,好吧,如果所有的东西都是非标准的(你自己的日志,你自己的指标实现等),那么你为什么要开始这整个谈话? 我们实际上是在讨论专门与MT4的工作,而不是与我们自己的发展。
在我的第一篇文章中,我特别指出,如果任务是在没有外部链接的 情况下进行,即实现一个只使用系统库的自给自足的专家顾问/指标,那么我的代码将是有用的。 而如果你使用自己的开发,那么它对你就不适用。
总的来说,我不明白为什么我必须 "在工作后手动清理日志",如果不把它弄得乱七八糟会更容易。毕竟,据我所知,你在DLL中实现了你的发展。那么是什么阻止了你在那里设置同样的定时器,正如我在这里建议的那样。但由于某些原因,你更喜欢用手鼓跳各种舞蹈和清理日志。 我的代码困扰着你,而你却懒得每天清理日志 :)
我的操作系统是XP - 似乎可以工作 - 然后它使终端崩溃 ....
无论是在指标代码中,还是在EA代码中,或者本身,结果都是一样的,终端在大约15-50秒后崩溃......
因此,你有一些问题...
但这并不是一个坏主意...
是的,也许这有点牵强。 我不是什么汇编专家,所以不要太苛责我 :) 我会试着找出问题所在的。