Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
историю сделок в нужном разрезе. по убыванию/возрастанию времени закрытия/открытия ордера, или убыванию/возрастанию, прибыли кто хорошо знаком с массивами помомгите плиз решить проблему
прямое обращение к OrdersHistoryTotal() считаю ненадежным т.к. этот метод загадочным образом зависит (или наоборот независит?) от состояния окна история счета :(
double ArrayPosHistory[][]; //******************************************************************** // Функция заполняет массив закрытых ордеров в порядке убывания/возрастания // Параметры // int obj - сортировка по // 1 - времени закрытия // 2 - времени открытия // 3 - прибыли // 4 - по объему // 5 - по тикету // int st - в порядке // 1 - возрастания // 2 - убывания // int op - отбор по типу позиций: // 100 - по всем // 0 - по лонгам // 1 - по шортам double FillUpHistoryArray(int obj=1, int st=2, int op=100) {//1 //1-OpenTime 2-CloseTime 3-OpenPrice 4-ClosePrice, 5-Lots, 6-Magic, 7-Profit, 8-Ticket | double CommonArray[1][1]; int tc=0, i=0, cnt = OrdersHistoryTotal(); ArrayResize(CommonArray,cnt); for (i=cnt; i>=0; i--){//2 if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){// 3 if (OrderSymbol() == Symbol() && OrderMagicNumber() == ExpertID){//4 if (op==100 && (OrderType() == OP_BUY || OrderType() == OP_SELL)){//5 //по времени закрытия if(obj==1){CommonArray[0][0]=0;} //по времени открытия if(obj==2){CommonArray[0][0]=0;} //по прибыли if(obj==3){CommonArray[0][0]=0;} //по объему if(obj==4){CommonArray[0][0]=0;} //по тикету if(obj==5){CommonArray[0][0]=0;} }//5 if (op==0 && (OrderType() == OP_BUY)){//5 //по времени закрытия if(obj==1){CommonArray[0][0]=0;} //по времени открытия if(obj==2){CommonArray[0][0]=0;} //по прибыли if(obj==3){CommonArray[0][0]=0;} //по объему if(obj==4){CommonArray[0][0]=0;} //по тикету if(obj==5){CommonArray[0][0]=0;} }//5 if (op==1 && (OrderType() == OP_SELL)){//5 //по времени закрытия if(obj==1){CommonArray[0][0]=0;} //по времени открытия if(obj==2){CommonArray[0][0]=0;} //по прибыли if(obj==3){CommonArray[0][0]=0;} //по объему if(obj==4){CommonArray[0][0]=0;} //по тикету if(obj==5){CommonArray[0][0]=0;} }//5 }//4 }//3 }//2 if(op==0) // это по всем. { if(st==1){ArraySort(CommonArray);} // порядок возрастания if(st==2){ArraySort(CommonArray,MODE_DESCEND);} // порядок убывания ArrayCopy(ArrayPosHistory,CommonArray); } }//1