есть двухмерный массив arr[3,2] . где хранятся "Символ" - "Дата открытия ордера"
можно выслать пример цикла, в котором перебираются значения массива и в случае отсутствия необходимого символа ,то надо увеличить первую размерность массива на 1 , то есть уже arr[4,2] будет. и добавить значения символа и дату текущую.
Массив должен быть динамический arr[][2]; Тогда можно будет увеличить размерность в первом измерении.
int ArrayResize( void& array[], // массив, переданный по ссылке int new_size, // новый размер массива int reserve_size=0 // резервное значение размера (избыточное) );
есть двухмерный массив arr[3,2] . где хранятся "Символ" - "Дата открытия ордера"
"Символ" - строка;
"Дата открытия ордера" - дата.
Не может быть такого массива, где элементы разного типа!
string ar[][2]; void OnStart(){ toAr(ar,"EURUSD"); toAr(ar,"EURUSD"); toAr(ar,"GBPUSD"); Alert("--"); int r=ArrayRange(ar,0); for(int i=0;i<r;i++){ Alert(ar[i][0]," ",ar[i][1]); } } void toAr(string & a[][2],string s){ int r=ArrayRange(a,0); for(int i=0;i<r;i++){ if(a[i][0]==s)return; } ArrayResize(a,r+1); a[r][0]=s; a[r][1]=TimeToStr(TimeCurrent()); }
"Символ" - строка;
"Дата открытия ордера" - дата.
Не может быть такого массива, где элементы разного типа!
Человек может вложить свою обработку к примеру символы у него имеют порядковые номера и тогда это просто число. Так-же время можно записать в секундах, и это то-же просто число.
Хотя конечно в данном случае я бы использовал массив структуры.
struct ArrayStruct { string symbol; datetime time; } Array_Struct[];
Да. Но вопрос был не об этом.
городил у себя вот такую конструкцию для подсчёта активных символов по которым сейчас есть ордера
for(int i=0; i < OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) { if((OrderType()==OP_BUY || OrderType()==OP_SELL)) { if(OSymbol[0]==NULL) { OSymbol[0]=OrderSymbol(); } int f = 0; for(int y=0; y < n; y++) { if(OrderSymbol()!=OSymbol[y]) { f++; } } if(f==n) { n++; ArrayResize(OSymbol,n); ArrayResize(KolSymbolO,n); OSymbol[n-1]=OrderSymbol(); } for(int y=0; y < n; y++) { if(OrderSymbol()==OSymbol[y]) { KolSymbolO[y]++; } } } } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
есть двухмерный массив arr[3,2] . где хранятся "Символ" - "Дата открытия ордера"
можно выслать пример цикла, в котором перебираются значения массива и в случае отсутствия необходимого символа ,то надо увеличить первую размерность массива на 1 , то есть уже arr[4,2] будет. и добавить значения символа и дату текущую.