MT5和速度在行动 - 页 57 1...505152535455565758596061626364...94 新评论 fxsaber 2020.10.14 05:53 #561 Renat Fatkhullin:在大规模并行访问的情况下,速度提高了10倍。对于其他情况,只有处理器、内存和操作系统的升级。 在PM中,来自同一台机器的比较性日志。 Renat Fatkhullin 2020.10.14 05:55 #562 fxsaber:这是对CopyTicks的一次性调用。这样做是为了在OnInit中对这些点位进行虚拟回测,然后在实时中继续进行,只提供新的点位。作为一个折中方案,我建议在OnInit中调用CopyTicks后立即释放终端的内存。那么我们就不必为CopyTicks引入强制冷却功能。现在,睡眠版的冷却是非常拐弯抹角的。但我在上面展示了这个拐杖是如何节省内存的。现在事实证明,20个专家顾问即使在慢速VPS上也能快速运行。但启动它们是一个严重的问题。 不久前,你自己一直在进行压力测试,并要求在每一次打勾 时即时发出深层打勾。 也就是说,你和其他100%的开发者都应用了并将应用待定的全面缓存请求策略。每一次都有越来越多代价高昂、头破血流的专家被写入。 这就是为什么我们不会以任何方式废除缓存,而是建议将16-32GB的内存放在一起,并忘记问题和延迟。 在VPS上的行为和经济性(保持在512 mb-1 gb),我们完全不关心。 fxsaber 2020.10.14 05:57 #563 Renat Fatkhullin:你自己不久前还在进行压力测试,事实上你要求在每一次打勾 时都 要即时深打勾。也就是说,你和其他100%的开发者都应用了并将应用待定的全面缓存请求策略。每一次都有越来越多代价高昂、头破血流的专家被写入。这就是为什么我们不会以任何方式废除缓存,而是建议将16-32GB的内存放在一起,并忘记问题和延迟。在VPS上的行为和经济性(以适应512 mb-1gb)我们完全不在乎。 上面用代码补充了我的帖子。这是关于OnInit的问题,而不是其他问题。热CopyTicks是非常需要的,但不是在OnInit中。 Andrey Khatimlianskii 2020.10.14 20:47 #564 fxsaber:作为一种妥协,我建议在OnInit中调用CopyTicks后,应立即在终端释放内存。 在任何情况下都不可能! 如果我在OnInit中提高缓存,以便在工作中不出现延迟呢? 最好是引入一个函数来卸载终端缓存。 不仅对ticks,而且对时间序列和指标也是必要的(尝试为5个工具和5个TF写一个5K)。 @雷纳特? fxsaber 2020.10.14 21:38 #565 Andrey Khatimlianskii:不可能! 如果我在OnInit中提高缓存,这样我就可以毫不迟疑地使用它了。 勾选缓存的寿命只有10秒。 fxsaber 2020.10.16 22:08 #566 如果你拿五个月的报价,嘀嗒历史 脚本筛选器(唯一在终端运行的软件)会吃掉6GB。 机器和互联网越快,内存负荷越大。也就是说,终端的内部缓存在10秒内积累到几个字符。 fxsaber 2020.10.19 19:54 #567 快速的机器,九个顾问。 2020.10.19 22:32:06.965 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1229 mcs. 2020.10.19 22:33:23.727 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1250 mcs. 2020.10.19 22:34:29.802 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1281 mcs. 2020.10.19 22:35:58.747 Bench_Stack = 2, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1164 mcs. 2020.10.19 22:37:20.196 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1045 mcs. 2020.10.19 22:38:24.920 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1907 mcs. 2020.10.19 22:39:48.359 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1387 mcs. 2020.10.19 22:40:03.623 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1302 mcs. 2020.10.19 22:40:44.569 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1271 mcs. 2020.10.19 22:41:09.393 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1482 mcs. 2020.10.19 22:41:19.831 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1024 mcs. 2020.10.19 22:41:19.975 Alert: Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 8026 mcs. 2020.10.19 22:41:50.137 Bench_Stack = 2, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1040 mcs. 2020.10.19 22:42:05.876 Bench_Stack = 2, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1346 mcs. 2020.10.19 22:43:21.478 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1523 mcs. 2020.10.19 22:43:21.557 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1245 mcs. 2020.10.19 22:43:21.843 Alert: Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 4675 mcs. 2020.10.19 22:43:21.854 Alert: Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 7567 mcs. 2020.10.19 22:44:01.181 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 1052 mcs. 2020.10.19 22:44:33.124 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 2714 mcs. 2020.10.19 22:44:54.967 Alert: Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 13626 mcs. 2020.10.19 22:45:07.561 Bench_Stack = 3, 100 <= Time[NewTicks.mqh 33 in NEWTICKS::GetMarketWatchTick: ::SymbolInfoTick(_Symbol,Tick)] = 2800 mcs. 我不知道如何克服这种滞后。我想不出有什么其他方法可以在OnTick运行时知道是否有一个新的tick。 fxsaber 2020.10.19 20:42 #568 fxsaber: 我想不出有什么其他方法可以在OnTick运行时知道有一个新的tick。 三个选项。 // Идентификация нового тика bool IsNewTick_CopyRates() { static MqlRates PrevRates = {0}; MqlRates Rates[1]; const bool Res = (::CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, Rates) == 1) && // (_R(PrevRates) != Rates[0]); // TypeToBytes.mqh ((Rates[0].time != PrevRates.time) || (Rates[0].tick_volume > PrevRates.tick_volume) || (Rates[0].close != PrevRates.close)); // Лишнее условие, но на всякий случай. if (Res) PrevRates = Rates[0]; return(Res); } // Идентификация нового тика bool IsNewTick_SymbolInfoTick() { static MqlTick PrevTick = {0}; MqlTick Tick; const bool Res = ::SymbolInfoTick(_Symbol, Tick) && // (_R(PrevTick) != Tick); // TypeToBytes.mqh ((PrevTick.time_msc != Tick.time_msc) || (PrevTick.bid != Tick.bid) || (PrevTick.ask != Tick.ask)); if (Res) PrevTick = Tick; return(Res); } // Идентификация нового тика bool IsNewTick_CopyTicks() { static MqlTick PrevTick = {0}; MqlTick Tick[1]; const bool Res = (::CopyTicks(_Symbol, Tick, COPY_TICKS_ALL, 0, 1) == 1) && // (_R(PrevTick) != Tick[0]); // TypeToBytes.mqh ((PrevTick.time_msc != Tick[0].time_msc) || (PrevTick.bid != Tick[0].bid) || (PrevTick.ask != Tick[0].ask)); if (Res) PrevTick = Tick[0]; return(Res); } #define PRINT(A) \ if (!A) \ Print(#A + " = false"); void OnTick() { PRINT(IsNewTick_CopyTicks()); // true PRINT(IsNewTick_SymbolInfoTick()); // true PRINT(IsNewTick_CopyRates()) // false } 最好不要通过条形图来确定一个新的勾股。 fxsaber 2020.10.19 21:37 #569 它变得很清楚,CopyTicks可以滞后于SymbolInfoTick多久。 // Замер длительности синхронизации CopyTicks и SymbolInfoTick. #include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280 bool IsSynch() { MqlTick Tick; MqlTick Ticks[1]; return(SymbolInfoTick(_Symbol, Tick) && (CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 1) == 1) && (_R(Tick) == Ticks[0])); } ulong WaitSynch( int &Count ) { while (!IsStopped() && IsSynch()) Sleep(0); const ulong StartTime = GetMicrosecondCount(); Count = 0; while (!IsStopped() && !IsSynch()) Count++; return(GetMicrosecondCount() - StartTime); } void OnTick() { int Count; const uint StartTime = GetTickCount(); while (GetTickCount() - StartTime < 10000) Print("Cинхронизация CopyTicks и SymbolInfoTick длилась " + (string)(WaitSynch(Count) / 1000) + " ms., число проверок = " + (string)Count); }结果(inAmount = 15)。2020.10.20 00:32:46.316 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 163 ms., число попыток = 391432 2020.10.20 00:32:46.894 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 221 ms., число попыток = 526533 2020.10.20 00:32:50.839 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 69 ms., число попыток = 112339 2020.10.20 00:32:50.839 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 385 ms., число попыток = 837204 2020.10.20 00:32:51.958 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 74 ms., число попыток = 166407 2020.10.20 00:32:52.044 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 80 ms., число попыток = 180256 2020.10.20 00:32:52.797 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 737 ms., число попыток = 1469883 2020.10.20 00:33:04.229 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 8550 ms., число попыток = 14608891 2020.10.20 00:33:04.319 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 159 ms., число попыток = 150630 2020.10.20 00:33:04.324 Test9 (AUDCHF,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 85 ms., число попыток = 78591 2020.10.20 00:33:07.340 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 2947 ms., число попыток = 4899320 2020.10.20 00:33:08.076 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 727 ms., число попыток = 1209371 2020.10.20 00:33:08.138 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 55 ms., число попыток = 73155 2020.10.20 00:33:14.233 Test9 (EURCAD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 107 ms., число попыток = 149697 2020.10.20 00:33:15.985 Test9 (EURCAD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 190 ms., число попыток = 230501 2020.10.20 00:33:16.114 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 208 ms., число попыток = 275639 2020.10.20 00:33:41.328 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 9457 ms., число попыток = 14426849 2020.10.20 00:33:46.000 Test9 (GBPCHF,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 53622 ms., число попыток = 109127013 2020.10.20 00:33:47.936 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 1302 ms., число попыток = 3104323 2020.10.20 00:33:55.715 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 59 ms., число попыток = 87263 2020.10.20 00:33:55.776 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 88 ms., число попыток = 125641 2020.10.20 00:33:55.869 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 86 ms., число попыток = 140282 2020.10.20 00:33:55.974 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 95 ms., число попыток = 91802 2020.10.20 00:33:56.004 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 125 ms., число попыток = 127590 2020.10.20 00:33:56.202 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 214 ms., число попыток = 311277 2020.10.20 00:34:40.522 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 31 ms., число попыток = 48189 2020.10.20 00:34:40.672 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 69 ms., число попыток = 99619 2020.10.20 00:34:41.094 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 412 ms., число попыток = 613382 2020.10.20 00:34:41.864 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 768 ms., число попыток = 1136798 2020.10.20 00:34:46.035 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 2012 ms., число попыток = 2955715 2020.10.20 00:34:46.124 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 79 ms., число попыток = 109796 2020.10.20 00:34:46.239 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 98 ms., число попыток = 152433 2020.10.20 00:34:47.261 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 1009 ms., число попыток = 1300923 2020.10.20 00:34:47.337 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 73 ms., число попыток = 66414 2020.10.20 00:34:47.850 Test9 (AUDCHF,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 885 ms., число попыток = 832072 2020.10.20 00:34:48.383 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 1040 ms., число попыток = 1239140 2020.10.20 00:34:49.093 Test9 (EURCAD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 46 ms., число попыток = 43232 2020.10.20 00:34:49.839 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 1445 ms., число попыток = 2065046 2020.10.20 00:34:51.474 Test9 (GBPCHF,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 55801 ms., число попыток = 119517920 2020.10.20 00:34:51.755 Test9 (GBPAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 1498 ms., число попыток = 1625714 2020.10.20 00:34:52.269 Test9 (GBPJPY,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 403 ms., число попыток = 693015 2020.10.20 00:34:59.175 Test9 (AUDCAD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 9413 ms., число попыток = 16211601 2020.10.20 00:35:00.398 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 6302 ms., число попыток = 11626079 2020.10.20 00:35:05.587 Test9 (AUDCHF,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 3645 ms., число попыток = 8637511 2020.10.20 00:35:07.247 Test9 (EURAUD,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 133 ms., число попыток = 205326 2020.10.20 00:35:09.033 Test9 (AUDCHF,H1) Cинхронизация CopyTicks и SymbolInfoTick длилась 3427 ms., число попыток = 8060967解除同步化可持续一分钟。某处有一个错误。 fxsaber 2020.10.19 22:06 #570 SymbolInfoTick刹车的原因似乎是平行处理。 // Демонстрация тормозов SymbolInfoTick #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 void OnTick() { const uint StartTime = GetTickCount(); while (!IsStopped() && (GetTickCount() - StartTime < 10000)) { _B(SymbolInfoInteger(_Symbol, SYMBOL_TIME_MSC), 100000); // Sleep(0); // Специально убрал. } } 结果(inAmount = 15)。 2020.10.20 01:01:30.517 Test9 (EURAUD,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 105941 mcs. 2020.10.20 01:01:37.596 Test9 (USDCAD,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 103045 mcs. 2020.10.20 01:01:38.968 Test9 (EURCHF,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 103305 mcs. 2020.10.20 01:01:41.307 Test9 (EURUSD,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 106121 mcs. 2020.10.20 01:01:42.573 Test9 (USDCAD,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 128241 mcs. 2020.10.20 01:01:45.175 Test9 (GBPCHF,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 120367 mcs. 2020.10.20 01:01:46.394 Test9 (EURCHF,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 104458 mcs. 2020.10.20 01:01:57.832 Test9 (GBPCHF,H1) Alert: Bench_Stack = 0, 100000 <= Time[Test9.mq5 97 in OnTick: SymbolInfoInteger(_Symbol,SYMBOL_TIME_MSC)] = 125348 mcs. > 对于SymbolInfoTick的执行,大于100ms。很明显,代码是自拍的。但它显示了在通常的EA中速度变慢的原因。 1...505152535455565758596061626364...94 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在大规模并行访问的情况下,速度提高了10倍。
对于其他情况,只有处理器、内存和操作系统的升级。
在PM中,来自同一台机器的比较性日志。
这是对CopyTicks的一次性调用。这样做是为了在OnInit中对这些点位进行虚拟回测,然后在实时中继续进行,只提供新的点位。
作为一个折中方案,我建议在OnInit中调用CopyTicks后立即释放终端的内存。那么我们就不必为CopyTicks引入强制冷却功能。
现在,睡眠版的冷却是非常拐弯抹角的。但我在上面展示了这个拐杖是如何节省内存的。
现在事实证明,20个专家顾问即使在慢速VPS上也能快速运行。但启动它们是一个严重的问题。
不久前,你自己一直在进行压力测试,并要求在每一次打勾 时即时发出深层打勾。
也就是说,你和其他100%的开发者都应用了并将应用待定的全面缓存请求策略。每一次都有越来越多代价高昂、头破血流的专家被写入。
这就是为什么我们不会以任何方式废除缓存,而是建议将16-32GB的内存放在一起,并忘记问题和延迟。
在VPS上的行为和经济性(保持在512 mb-1 gb),我们完全不关心。
你自己不久前还在进行压力测试,事实上你要求在每一次打勾 时都 要即时深打勾。
也就是说,你和其他100%的开发者都应用了并将应用待定的全面缓存请求策略。每一次都有越来越多代价高昂、头破血流的专家被写入。
这就是为什么我们不会以任何方式废除缓存,而是建议将16-32GB的内存放在一起,并忘记问题和延迟。
在VPS上的行为和经济性(以适应512 mb-1gb)我们完全不在乎。
上面用代码补充了我的帖子。这是关于OnInit的问题,而不是其他问题。热CopyTicks是非常需要的,但不是在OnInit中。
作为一种妥协,我建议在OnInit中调用CopyTicks后,应立即在终端释放内存。
在任何情况下都不可能!
如果我在OnInit中提高缓存,以便在工作中不出现延迟呢?
最好是引入一个函数来卸载终端缓存。
不仅对ticks,而且对时间序列和指标也是必要的(尝试为5个工具和5个TF写一个5K)。
@雷纳特?
不可能!
如果我在OnInit中提高缓存,这样我就可以毫不迟疑地使用它了。
勾选缓存的寿命只有10秒。
如果你拿五个月的报价,嘀嗒历史 脚本筛选器(唯一在终端运行的软件)会吃掉6GB。
机器和互联网越快,内存负荷越大。也就是说,终端的内部缓存在10秒内积累到几个字符。
我想不出有什么其他方法可以在OnTick运行时知道有一个新的tick。
三个选项。
最好不要通过条形图来确定一个新的勾股。
结果(inAmount = 15)。
解除同步化可持续一分钟。某处有一个错误。
SymbolInfoTick刹车的原因似乎是平行处理。
结果(inAmount = 15)。
> 对于SymbolInfoTick的执行,大于100ms。很明显,代码是自拍的。但它显示了在通常的EA中速度变慢的原因。