Нужно вычислить каких элементов нет в массиве array2 в сравнении с array1
Результат должен быть: 6 и 7
Об этом речь и подымалась - есть возможности языка но нету "инфраструктуры" по решению элементарных алгоритмических задач. Вот сколько усилий занимает решение поставленной задачи на Python:
typedefvoid (*fn)( void * );
void f1 ( void * ) {}
class A {};
voidOnStart()
{
fn f2 = f1;
const A *a;
// f1( a ); //Error: 'a' - cannot convert from const pointer to nonconst pointer
f2( a ); //нет сообщения об ошибке ???
}
Очень неприятный баг с кастомными символами. Тиковая история кастомных символов может полностью пропасть.
Несколько десятков часов шла Оптимизация по реальным тикам кастомного символа. К компу никто не подходил и ничего не делал.
Через 15 часов после Оптимизации подошел посмотреть результаты. Воспользоваться пунктом меню "Запустить одиночное тестирование" на любом проходе не получается - Тестер начинает и сразу заканчивает.
Лог такой
2018.03.0315:48:04.696 Tester file cache used 3010 times
2018.03.0315:48:04.698 Tester optimization finished, total passes 3520002018.03.0315:48:04.708 Statistics optimization done in41 hours 32 minutes 37 seconds
2018.03.0315:48:04.708 Statistics local 348990 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2018.03.0315:48:04.708 Core 1 connection closed
2018.03.0315:48:04.709 Core 2 connection closed
2018.03.0315:48:04.710 Core 3 connection closed
2018.03.0315:48:04.710 Core 4 connection closed
2018.03.0315:48:04.711 Core 5 connection closed
2018.03.0315:48:04.711 Core 6 connection closed
2018.03.0315:48:04.712 Core 7 connection closed
2018.03.0315:48:04.714 Core 8 connection closed
2018.03.0315:48:04.716 Tester 348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
2018.03.0315:48:04.722 Tester Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03.0408:26:30.933 Tester single pass 297022 started
2018.03.0408:26:31.000 Tester TESTER_EURUSD: history data begins from2018.02.0600:002018.03.0408:27:36.409 Tester single pass 297022 started
2018.03.0408:27:36.491 Tester TESTER_EURUSD: history data begins from2018.02.0600:002018.03.0414:05:10.940 Tester single pass 297022 started
2018.03.0414:05:11.007 Tester TESTER_EURUSD: history data begins from2018.02.0600:00
Обнаружил, что тики всех кастомных символов удалены.
Как можно сравнить два массива?
Нужно вычислить каких элементов нет в массиве array2 в сравнении с array1
Результат должен быть: 6 и 7
Об этом речь и подымалась - есть возможности языка но нету "инфраструктуры" по решению элементарных алгоритмических задач.
Вот сколько усилий занимает решение поставленной задачи на Python:
А сколько нужно, что бы решить на MQL?
Стандартная библиотека как-то помочь может, или нет?
Перерыл все что только можно. В разных языках везде есть для этого функции и действительно там все просто...
я делаю на MQL4 ... нужно сделать все как можно проще.
Перерыл все что только можно. В разных языках везде есть для этого функции и действительно там все просто...
я делаю на MQL4 ... нужно сделать все как можно проще.
Полистал стандартную библиотеку - посмотрите в сторону CSortedSet и его метода ExceptWith, может поможет.
https://www.mql5.com/ru/docs/standardlibrary/generic/csortedset/csortedsetexceptwith
Полистал стандартную библиотеку - посмотрите в сторону CSortedSet и его метода ExceptWith, может поможет.
https://www.mql5.com/ru/docs/standardlibrary/generic/csortedset/csortedsetexceptwith
Спасибо большое !
Было решено намного прощеНет сообщения об ошибке
при том что нарушена константность
такой вопрос:
как узнать во сколько закрываются торги по символу форекс?
как узнать во сколько закрываются торги по символу форекс?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2017.02.25 16:39
{
MqlDateTime sTime = {0};
::TimeToStruct(time, sTime);
return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}
// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
datetime TimeNow = ::TimeTradeServer();
const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);
TimeNow %= 24 * 60 * 60;
bool Res = false;
datetime From, To;
for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
Res = ((From <= TimeNow) && (TimeNow < To));
return(Res);
}
// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
MqlTick Tick;
return(::SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) /* &&
((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */) : false);
}
Применение
OrderSend(Request, Result);
Очень неприятный баг с кастомными символами. Тиковая история кастомных символов может полностью пропасть.
Несколько десятков часов шла Оптимизация по реальным тикам кастомного символа. К компу никто не подходил и ничего не делал.
Через 15 часов после Оптимизации подошел посмотреть результаты. Воспользоваться пунктом меню "Запустить одиночное тестирование" на любом проходе не получается - Тестер начинает и сразу заканчивает.
Лог такой
Обнаружил, что тики всех кастомных символов удалены.