//+------------------------------------------------------------------+ //| Macros.mqh | //| Copyright 2019-2025, Yuriy Bykov | //| https://www.mql5.com/ru/users/antekov | //+------------------------------------------------------------------+ #property copyright "Copyright 2019-2025, Yuriy Bykov" #property link "https://www.mql5.com/ru/users/antekov" #property version "1.07" // Полезные макросы для операций с массивами #ifndef __MACROS_INCLUDE__ #define APPEND(A, V) A[ArrayResize(A, ArraySize(A) + 1) - 1] = V; #define FIND(A, V, I) { for(I=ArraySize(A)-1;I>=0;I--) { if(A[I]==V) break; } } #define SEARCH(A, C, I) { for(I=ArraySize(A)-1;I>=0;I--) { if(C) break; } } #define ADD(A, V) { int i; FIND(A, V, i) if(i==-1) { APPEND(A, V) } } #define FOREACH(A) for(int i=0, im=ArraySize(A);i=0) REMOVE_AT(A, i) } #define JOIN(A, V, S) { FOREACH(A) { V+=(string)A[i]+S; } V=StringSubstr(V, 0, StringLen(V)-StringLen(S)); } #define SPLIT(V, A) { string s=V; StringReplace(s, ";", ","); StringSplit(s, ',', A); } #define __MACROS_INCLUDE__ #endif //+------------------------------------------------------------------+