Adwizard/Utils/Macros.mqh

27 lines
3.2 KiB
MQL5
Raw Permalink Normal View History

2025-04-11 13:28:40 +03:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| 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"
2025-04-18 22:45:30 +03:00
#property version "1.07"
2025-04-11 13:28:40 +03:00
// >;57=K5 <0:@>AK 4;O >?5@0F89 A <0AA820<8
#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<im;i++)
#define FOREACH_AS(A, E) if(ArraySize(A)) E=A[0]; for(int i##E=0, im=ArraySize(A);i##E<im;E=A[++i##E%im])
#define FOR(N) for(int i=0; i<N;i++)
#define REMOVE_AT(A, I) { int s=ArraySize(A);for(int i=I;i<s-1;i++) { A[i]=A[i+1]; } ArrayResize(A, s-1); }
#define REMOVE(A, V) { int i; FIND(A, V, i) if(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)); }
2025-04-18 22:45:30 +03:00
#define SPLIT(V, A) { string s=V; StringReplace(s, ";", ","); StringSplit(s, ',', A); }
2025-04-11 13:28:40 +03:00
#define __MACROS_INCLUDE__
#endif
//+------------------------------------------------------------------+