自定义符号。误差、错误、问题、建议。 - 页 18 1...111213141516171819202122232425...34 新评论 fxsaber 2019.06.21 14:46 #171 Bug 24. 探测到的和进口的 蜱虫的数据库不能正确共存。 #define PRINT(A) Print(#A + " = " + (string)(A)) void OnInit() { MathSrand((int)TimeLocal()); EventSetMillisecondTimer(20); // С такой частотой будем пробрасывать тики } void OnTimer() { static bool FirstRun = true; static const string Name = _Symbol + (string)MathRand(); static MqlTick Ticks[]; static int Pos = 0; if (FirstRun) { if (CustomSymbolCreate(Name, NULL, _Symbol) && SymbolSelect(Name, true)) // Создали символ PRINT(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, (ulong)D'2019.06.20' * 1000, 5)); // Взяли 5 тиков для проброса FirstRun = false; } else if (Pos < ArraySize(Ticks)) { MqlTick Tick[1]; Tick[0] = Ticks[Pos++]; PRINT(CustomTicksAdd(Name, Tick)); // Пробросили тик. PRINT(CustomTicksReplace(Name, Tick[0].time_msc, Tick[0].time_msc, Tick)); // Заменили его же через импорт. } else { PRINT(CopyTicksRange(Name, Ticks)); // Взяли всю тиковую историю ArrayPrint(Ticks); // Распечатали ее. ExpertRemove(); } } 结果 CopyTicks(_Symbol,Ticks,COPY_TICKS_ALL,(ulong)D'2019.06.20'*1000,5) = 5 CustomTicksAdd(Name,Tick) = 1 CustomTicksReplace(Name,Tick[0].time_msc,Tick[0].time_msc,Tick) = 1 CustomTicksAdd(Name,Tick) = 1 CustomTicksReplace(Name,Tick[0].time_msc,Tick[0].time_msc,Tick) = 1 CustomTicksAdd(Name,Tick) = 1 CustomTicksReplace(Name,Tick[0].time_msc,Tick[0].time_msc,Tick) = 1 CustomTicksAdd(Name,Tick) = 1 CustomTicksReplace(Name,Tick[0].time_msc,Tick[0].time_msc,Tick) = 1 CustomTicksAdd(Name,Tick) = 1 CustomTicksReplace(Name,Tick[0].time_msc,Tick[0].time_msc,Tick) = 1 CopyTicksRange(Name,Ticks) = 10 [time] [bid] [ask] [last] [volume] [time_msc] [flags] [volume_real] [0] 2019.06.20 00:00:05 1.12255 1.12268 0.0000 0 1560988805004 6 0.00000 [1] 2019.06.20 00:00:07 1.12259 1.12268 0.0000 0 1560988807693 2 0.00000 [2] 2019.06.20 00:00:08 1.12259 1.12267 0.0000 0 1560988808627 4 0.00000 [3] 2019.06.20 00:00:09 1.12256 1.12267 0.0000 0 1560988809561 2 0.00000 [4] 2019.06.20 00:00:10 1.12255 1.12268 0.0000 0 1560988810083 6 0.00000 [5] 2019.06.20 00:00:05 1.12255 1.12268 0.0000 0 1560988805004 6 0.00000 [6] 2019.06.20 00:00:07 1.12259 1.12268 0.0000 0 1560988807693 6 0.00000 [7] 2019.06.20 00:00:08 1.12259 1.12267 0.0000 0 1560988808627 6 0.00000 [8] 2019.06.20 00:00:09 1.12256 1.12267 0.0000 0 1560988809561 6 0.00000 [9] 2019.06.20 00:00:10 1.12255 1.12268 0.0000 0 1560988810083 6 0.00000 有5只蜱虫陆续被重新取样/进口,但在历史上发现了10只蜱虫。同时,先走五个小点,然后再走同样的五个小点。也就是说,即使是蜱虫数据库中的条目时间也不是连续的。 注意后半段的旗帜,它们与前半段不同。 zull.kzn 2019.06.24 06:10 #172 Slava: 不能重现。在导入条形图后,空图会立即更新。 如果图表没有被打开会怎样?在导入条形图后打开图表。 或者关闭并打开图表。 或者从图表的上下文菜单中更新图表。 领先的问题))) 我引进了酒吧,并关闭了所有的窗户。 然后重新打开符号,进入Bars标签,在那里选择我的符号。 栅栏应该显示出来吗?它是空白的。 当我点击加载按钮时(预先选择了覆盖期),它们也没有出现。 我试过1970版--同样的情况。 打开/关闭图表和程序都没有帮助。 我还没有开始着手编程。 嗯,一定是这样... 如果你有可能,请远程连接,看看她需要什么,谢谢。 zull.kzn 2019.06.27 19:48 #173 https://www.mql5.com/ru/forum/147666/page2#comment_3720399 可能会对某人有所帮助。 但我有一个不同的问题 1.除了2019.hcc文件外,还生成了1970.hcc文件 删除后,它似乎又活过来了。 2. 在o或h位于l h之外的地方有红线 不清楚1970年是怎么来的。 没有这样的日期,没有空行 也许有很多蜡烛,在5万以下 是可以看的,但如何扩大图中更明显的振幅? 我需要在绘制对象时精确瞄准烛台的末端 不方便手动输入属性和设置值 它把图表移到最后,我不得不倒回去。 我怎样才能修复它,使它不会跳到最后一栏? Тестер не работает 2013.11.04www.mql5.com 2013.11.03 17:25:58 TestGenerator: no history data 'EURUSD1' Вот такое сообщение появляется в журнале после нажатия кнопки "Старт"... Stanislav Korotky 2019.08.22 21:11 #174 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 Stanislav Korotky, 2019.08.22 17:34 有人在使用自定义字符时遇到过以下问题吗?CustomRatesUpdate函数通过了正常的报价,但事实上,图表和数据窗口得到了一些奇怪的东西(在这种情况下,在收盘价和低价值比传递的要少100倍)。 另外,在平行的情况下,用CustomTicksAdd来模拟单一的ticks,其收盘价值与日志中的相同(紧接在CustomRatesUpdate之前),也就是说,不清楚报价中减少的值来自哪里。 UPD。 我在美元兑加元上得到了 "反向 "的情况--写完后报价增加了10倍。这是我得到的日志。 2019.08.23 00:04:10.579 RenkoCharts (USDCAD,M1) [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume] 2019.08.23 00:04:10.579 RenkoCharts (USDCAD,M1) [0] 2019.08.23 00:02:00 1.32987 1.32987 1.32980 1.32987 457 48 0 2019.08.23 00:04:10.579 RenkoCharts (USDCAD,M1) Retry: 1 0 2019.08.23 00:04:10.579 RenkoCharts (USDCAD,M1) [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume] 2019.08.23 00:04:10.579 RenkoCharts (USDCAD,M1) [0] 2019.08.23 00:02:00 1.32980 13.29730 1.32980 13.29730 457 52 0 第一个ArrayPrint是在CustomRatesUpdate中写入的内容,第二个ArrayPrint是在写入后立即用CopyRates从最近的一个酒吧中读取的内容。首先,差异是开盘的最后一位数字,但更重要的是,高点和收盘都增加了10倍。 PS。在滴答声中,一切都很好。 fxsaber 2019.08.23 00:22 #175 Stanislav Korotky: PS。蜱虫的一切都很好。 Bug 22. Stanislav Korotky 2019.08.23 08:56 #176 fxsaber: Bug 22. 在最新的版本中,它是否被修复了? Stanislav Korotky 2019.08.26 14:05 #177 什么是4022错误?与试图给自定义字符写一个条子有关。但从代码来看,它是一个通用的。 起初,它得出了这样的结果。 KI 0 16:24:20.957 RenkoCharts (XAUUSD,M1) Alert: Error on writing custom record: 3082, err: 4401 HS 0 16:24:20.957 RenkoCharts (XAUUSD,M1) Failed to add: LE 0 16:24:20.957 RenkoCharts (XAUUSD,M1) [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume] KG 0 16:24:20.957 RenkoCharts (XAUUSD,M1) [0] 2019.08.28 00:06:00 1542.500 1542.500 1542.400 1542.400 15 170 0 GF 0 16:24:20.957 RenkoCharts (XAUUSD,M1) Last known 10 M1: JN 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume] JJ 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [0] 2019.08.28 00:00:00 1543.100 1543.100 1543.000 1543.000 4 180 0 DE 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [1] 2019.08.28 00:01:00 1543.000 1543.000 1542.900 1542.900 2 180 0 EP 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [2] 2019.08.28 00:02:00 1542.900 1542.900 1542.800 1542.800 1 180 0 ES 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [3] 2019.08.28 00:03:00 1542.800 1542.800 1542.700 1542.700 1 180 0 EN 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [4] 2019.08.28 00:04:00 1542.700 1542.700 1542.600 1542.600 1 180 0 QH 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [5] 2019.08.28 00:05:00 1542.600 1542.700 1542.500 1542.500 30 170 0 RE 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [6] 1970.01.01 00:00:00 +0.000 +0.000 +0.000 +0.000 5365435195 1 1827299883397152768 FF 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [7] 2106.02.07 06:28:16 0.078 +0.000 +0.000 +0.000 4597373804417646592 1 9481 KR 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [8] 1970.01.01 00:00:00 +0.000 +0.000 +0.000 +0.000 136454688 1 1827300776750350336 KL 0 16:24:20.973 RenkoCharts (XAUUSD,M1) [9] 0000.00.00 00:00:00 +0.000 2.150 +0.000 +0.000 1287860306076237824 0 4294967300 CH 0 16:24:20.973 RenkoCharts (XAUUSD,M1) Timeout before retry... 4401当调用CustomRatesUpdate 时。然后用CopyRates读取自定义符号的最后10根柱子(我们可以看到基数中的一些胡言乱语)。然后通过超时几次尝试,再次写出一个条形,直到4022出现。然后异常终止了EA,之后它又重新启动了自己。 Denis Kirichenko 2019.09.09 20:32 #178 问题是这样的。 我需要在一个自定义符号中动态地改变停止和冻结水平。 有以下代码用于测试EA。 //+------------------------------------------------------------------+ //| Globals | //+------------------------------------------------------------------+ string symbol_name="EURUSD_1"; string symbol_path=""; string symbol_origin="EURUSD"; long stop_lvl=20; long freeze_lvl=30; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- 1) create if(!::SymbolInfoInteger(symbol_name,SYMBOL_CUSTOM)) { ResetLastError(); if(!::CustomSymbolCreate(symbol_name,symbol_path,symbol_origin)) { PrintFormat("Error code: %d",GetLastError()); return INIT_FAILED; } } //--- 2) set levels ResetLastError(); if(!::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL,stop_lvl)) { PrintFormat("Error code: %d",GetLastError()); return INIT_FAILED; } if(!::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL,freeze_lvl)) { PrintFormat("Error code: %d",GetLastError()); return INIT_FAILED; } //--- return INIT_SUCCEEDED; } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- 1) stop level stop_lvl=::SymbolInfoInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL); if(stop_lvl==20) stop_lvl=30; else stop_lvl=20; ResetLastError(); if(::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL,stop_lvl)) { PrintFormat("Error code while setting a new value for the stop level: %d", GetLastError()); return; } //--- 2) freeze level freeze_lvl=::SymbolInfoInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL); if(freeze_lvl==30) freeze_lvl=40; else freeze_lvl=30; if(::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL,freeze_lvl)) { PrintFormat("Error code while setting a new value for the freeze level: %d", GetLastError()); return; } } //+------------------------------------------------------------------+ 在正常调试模式下,我只在OnTick()处理程序体中得到一个错误。而错误的代码是0。 2019.09.09 23:25:05.010 TestingLevels (EURUSD,M1) Error code while setting a new value for the stop level: 0 在历史记录的调试模式 下,我在初始化过程中得到一个错误。错误是这样的。 2019.09.09 23:29:43.005 2019.09.02 00:00:00 Error code: 4014 也就是禁止调用系统函数。 不允许使用的功能 4014 系统函数不允许被调用 一般来说,当EA在自定义符号上运行时,是否可以改变停止平移和自由平移的值? Artyom Trishkin 2019.09.09 23:46 #179 Denis Kirichenko: 问题是这样的。 我需要在一个自定义符号中动态地改变停止和冻结水平。 有以下代码用于测试EA。 在正常调试模式下,我只在OnTick()处理程序体中得到一个错误。该错误的代码为0。 在历史记录的调试模式 下,我在初始化过程中得到一个错误。错误是这样的。 也就是禁止调用系统函数。 不允许使用的功能 4014 系统函数不允许被调用 一般来说,当EA在自定义符号上运行时,是否可以改变止损点和冻结点的值? 以及为什么在OnTick()行中 if(::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL,stop_lvl)) и if(::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL,freeze_lvl)) 在成功改变字符属性时进入错误处理块的主体?(没有"!"符号) Denis Kirichenko 2019.09.10 04:18 #180 Artyom Trishkin: 为什么OnTick()中的这几行 и 在成功改变字符属性时进入错误处理块体?(没有"!"符号)。 Artyom, 谢谢你!我的疏忽。 更新版本。 //+------------------------------------------------------------------+ //| Globals | //+------------------------------------------------------------------+ string symbol_name="EURUSD_1"; string symbol_path=""; string symbol_origin="EURUSD"; long stop_lvl=20; long freeze_lvl=30; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- 1) create if(!::SymbolInfoInteger(symbol_name,SYMBOL_CUSTOM)) { ResetLastError(); if(!::CustomSymbolCreate(symbol_name,symbol_path,symbol_origin)) { PrintFormat("Error code: %d",GetLastError()); return INIT_FAILED; } } //--- 2) set levels ResetLastError(); if(!::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL,stop_lvl)) { PrintFormat("Error code: %d",GetLastError()); return INIT_FAILED; } if(!::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL,freeze_lvl)) { PrintFormat("Error code: %d",GetLastError()); return INIT_FAILED; } //--- return INIT_SUCCEEDED; } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- 1) stop level stop_lvl=::SymbolInfoInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL); if(stop_lvl==20) stop_lvl=30; else stop_lvl=20; ResetLastError(); if(!::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_STOPS_LEVEL,stop_lvl)) { PrintFormat("Error code while setting a new value for the stop level: %d", GetLastError()); return; } //--- 2) freeze level freeze_lvl=::SymbolInfoInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL); if(freeze_lvl==30) freeze_lvl=40; else freeze_lvl=30; if(!::CustomSymbolSetInteger(symbol_name,SYMBOL_TRADE_FREEZE_LEVEL,freeze_lvl)) { PrintFormat("Error code while setting a new value for the freeze level: %d", GetLastError()); return; } } //+------------------------------------------------------------------+ 现在一切都在正常调试模式 下工作。但在测试器中没有。它一直在那里写。 2019.09.10 07:16:49.867 2019.09.03 00:00:00 Error code: 4014 1...111213141516171819202122232425...34 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Bug 24.
探测到的和进口的 蜱虫的数据库不能正确共存。
结果
有5只蜱虫陆续被重新取样/进口,但在历史上发现了10只蜱虫。同时,先走五个小点,然后再走同样的五个小点。也就是说,即使是蜱虫数据库中的条目时间也不是连续的。
注意后半段的旗帜,它们与前半段不同。
不能重现。在导入条形图后,空图会立即更新。
如果图表没有被打开会怎样?在导入条形图后打开图表。
或者关闭并打开图表。
或者从图表的上下文菜单中更新图表。
领先的问题)))
我引进了酒吧,并关闭了所有的窗户。
然后重新打开符号,进入Bars标签,在那里选择我的符号。
栅栏应该显示出来吗?它是空白的。
当我点击加载按钮时(预先选择了覆盖期),它们也没有出现。
我试过1970版--同样的情况。
打开/关闭图表和程序都没有帮助。
我还没有开始着手编程。
嗯,一定是这样...
如果你有可能,请远程连接,看看她需要什么,谢谢。
https://www.mql5.com/ru/forum/147666/page2#comment_3720399
可能会对某人有所帮助。
但我有一个不同的问题
1.除了2019.hcc文件外,还生成了1970.hcc文件
删除后,它似乎又活过来了。
2. 在o或h位于l h之外的地方有红线
不清楚1970年是怎么来的。
没有这样的日期,没有空行
也许有很多蜡烛,在5万以下
是可以看的,但如何扩大图中更明显的振幅?
我需要在绘制对象时精确瞄准烛台的末端
不方便手动输入属性和设置值
它把图表移到最后,我不得不倒回去。
我怎样才能修复它,使它不会跳到最后一栏?
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
Stanislav Korotky, 2019.08.22 17:34
有人在使用自定义字符时遇到过以下问题吗?CustomRatesUpdate函数通过了正常的报价,但事实上,图表和数据窗口得到了一些奇怪的东西(在这种情况下,在收盘价和低价值比传递的要少100倍)。
另外,在平行的情况下,用CustomTicksAdd来模拟单一的ticks,其收盘价值与日志中的相同(紧接在CustomRatesUpdate之前),也就是说,不清楚报价中减少的值来自哪里。
UPD。
我在美元兑加元上得到了 "反向 "的情况--写完后报价增加了10倍。这是我得到的日志。
第一个ArrayPrint是在CustomRatesUpdate中写入的内容,第二个ArrayPrint是在写入后立即用CopyRates从最近的一个酒吧中读取的内容。首先,差异是开盘的最后一位数字,但更重要的是,高点和收盘都增加了10倍。
PS。在滴答声中,一切都很好。
Stanislav Korotky:
PS。蜱虫的一切都很好。
Bug 22.
Bug 22.
在最新的版本中,它是否被修复了?
什么是4022错误?与试图给自定义字符写一个条子有关。但从代码来看,它是一个通用的。
起初,它得出了这样的结果。
4401当调用CustomRatesUpdate 时。然后用CopyRates读取自定义符号的最后10根柱子(我们可以看到基数中的一些胡言乱语)。然后通过超时几次尝试,再次写出一个条形,直到4022出现。然后异常终止了EA,之后它又重新启动了自己。
问题是这样的。
我需要在一个自定义符号中动态地改变停止和冻结水平。
有以下代码用于测试EA。
在正常调试模式下,我只在OnTick()处理程序体中得到一个错误。而错误的代码是0。
在历史记录的调试模式 下,我在初始化过程中得到一个错误。错误是这样的。
也就是禁止调用系统函数。
不允许使用的功能
4014
系统函数不允许被调用
一般来说,当EA在自定义符号上运行时,是否可以改变停止平移和自由平移的值?
问题是这样的。
我需要在一个自定义符号中动态地改变停止和冻结水平。
有以下代码用于测试EA。
在正常调试模式下,我只在OnTick()处理程序体中得到一个错误。该错误的代码为0。
在历史记录的调试模式 下,我在初始化过程中得到一个错误。错误是这样的。
也就是禁止调用系统函数。
不允许使用的功能
4014
系统函数不允许被调用
一般来说,当EA在自定义符号上运行时,是否可以改变止损点和冻结点的值?
以及为什么在OnTick()行中
и
在成功改变字符属性时进入错误处理块的主体?(没有"!"符号)
为什么OnTick()中的这几行
и
在成功改变字符属性时进入错误处理块体?(没有"!"符号)。
Artyom, 谢谢你!我的疏忽。
更新版本。
现在一切都在正常调试模式 下工作。但在测试器中没有。它一直在那里写。