Se durante una lunga esecuzione a freddo (con upload dal server) CopyTicks fa una modifica dell'ordine, questa avverrà (non sul server, ma nel terminale - OnTradeTransaction) con un ritardo significativo.
Per esempio, in modalità normale 100 ms, in modalità superiore - 2000 ms.
Bisogna imparare a lavorare con le zecche con parsimonia in qualche modo. Non funziona.
Come rendere CopyTicks per tick più vicini veloce e non consumare centinaia di megabyte?
#property description"Если ваш робот использует тики (таких не встречал!),"#property description"то вы сталкиваетесь либо с тормозами,"#property description"либо с запредельным использованием памяти."#property description"Что не позволит вам спокойно поставить робота на VPS.\n"#property description"Для тех, кто считает возможным для себя участие в деле исправления этого бага,"#property description"просто опубликуйте результат выполнения этого скрипта по ссылке ниже.\n"#property description"https://www.mql5.com/ru/forum/342090/page81#comment_20534660"#property description"Эта ссылка доступна к копировнию в буфер обмена в Журнале (Эксперты)."#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279constbool Init = EventSetTimer(1);
// Вызывается CopyTicks для каждого символа из Обзора рынка.void CopyTicks_Test()
{
staticMqlTick Ticks[2000];
for (int i = SymbolsTotal(true) - 1; !IsStopped() && (i >= 0); i--)
{
conststring Symb = SymbolName(i, true);
if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM))
{
CopyTicks(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000, 1);
// CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000);
}
}
}
// Вызывается CopyTicksRange для каждого символа из Обзора рынка.void CopyTicksRange_Test()
{
staticMqlTick Ticks[2000];
for (int i = SymbolsTotal(true) - 1; !IsStopped() && (i >= 0); i--)
{
conststring Symb = SymbolName(i, true);
if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM))
{
// CopyTicks(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000, 1);CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000);
}
}
}
#define PRINT(A) Print(#A + " = " + (string)(A))
voidOnDeinit( constint )
{
PRINT(SymbolsTotal(true));
PRINT(TerminalInfoInteger(TERMINAL_MEMORY_USED));
Print("https://www.mql5.com/ru/forum/342090/page81#comment_20534660");
}
voidOnTimer()
{
staticint Count = 0;
_BV(CopyTicks_Test(), 1); // Очень много потребляет CPU, выполняется медленно, память не использует.
_BV(CopyTicksRange_Test(), 1); // Очень много потребляет RAM, выполняется быстроComment(TimeCurrent());
if (Count++ > 9)
ExpertRemove();
}
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
Se durante una lunga esecuzione a freddo (con upload dal server) CopyTicks fa una modifica dell'ordine, questa avverrà (non sul server, ma nel terminale - OnTradeTransaction) con un ritardo significativo.
Per esempio, in modalità normale 100 ms, in modalità superiore - 2000 ms.
Come rendere CopyTicks per tick più vicini veloce e non consumare centinaia di megabyte?
Stringa di ricerca: Oshibka 024.
Bisogna imparare a lavorare con le zecche con parsimonia in qualche modo. Non funziona.
Come rendere CopyTicks per tick più vicini veloce e non consumare centinaia di megabyte?
Stringa di ricerca: Oshibka 024.
Grazie, i log mostrano bene il problema del CopyTicks.
Grazie, i log mostrano bene il problema del CopyTicks.
Sab, indicatore spia non ci lavori?, ho un sacco di domande
Attraverso l'id, invece della stringa il robot ottiene un simbolo funzionante, ma oggi 2 terminali hanno ottenuto uno stato diverso sulle transazioni
su M1 in spyro via calculated=, c'è un controllo per un nuovo calcolo e poi inviato al robot
Sub, indicatore spia non ci lavori, ho un sacco di domande
Solo sotto MT4 - in bugie KB.
Solo sotto MT4 - in bugie KB.
non guardare le basi personalizzate, è per i deboli
Forum sul trading, sistemi di trading automatico e test di strategie di trading
MT5 e la velocità in azione
Dzmitry Manannikov, 2021.02.05 14:38
Se aumentate il numero di simboli, vedrete il problema dell'elevato utilizzo della memoria.
Non guardo le basi personalizzate, è per i deboli.
Non rispondo ai post che non capisco.