В операторе FileOpen вместо параметра FILE_WRITE нужно использовать FILE_READ | FILE_WRITE, иначе
ранее внесенные данные будут потеряны. И не плохо бы учитывать внесенные позиции для исключения дублирования записей.
Может подправите кто функцию чегота массивы мне туго даются
непойму никак.В начали единожды выводила правильные значения
теперь одни нули что не так.
//+------------------------------------------------------------------+//| Главная функция получения размера лота (вызывается из советника) | НЕ ПРОВЕРЕНА //+------------------------------------------------------------------+voidStatistika(stringfileName,intMagic){intprofit[]; //неясно со знаком !inthandle=FileOpen(fileName,FILE_READ | FILE_WRITE,";");
if(handle<1){Print("Файл Statistika не обнаружен, последняя ошибка ", GetLastError());
return;
}for(inti=0;i<OrdersHistoryTotal();i++){if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic)continue;
if(OrderType()==OP_BUY ||OrderType()==OP_SELL)for(intpos=0;pos<OrdersHistoryTotal();pos++){profit[pos]=OrderProfit()+OrderCommission();
FileWrite(handle,profit[pos]);
}}FileClose(handle);
}
Все процес пошол благодарю gwend за то что уделил внимание.
У Роша был код выложен Своя статистика (команда #include) , но похоже он больше не работает. Если он уточнит новую ссылку, советую посмотреть.
Может вместо:
Надо как-нибудь так:
Было и так результата нет
! является оператором булевского отрицания. То есть !false==true
Отсюда получаем, что конструкция
эквивалентна
А соотвественно
уже
семантика этих выражений явно разная:-)
gwend а что нужно сделать чтобы статистика наполнялась а то она один раз выведет и все
Создать массив и обрабатывать его.
Может подправите кто функцию чегота массивы мне туго даются непойму никак.В начали единожды выводила правильные значения теперь одни нули что не так.
Не хватает инициализации массива, да он и не в данном случае.
Можно использовать просто int profit;
И еще, у тебя нету перехода на конец файла, а значит он будет переписываться.
Не хватает инициализации массива, да он и не в данном случае.
Можно использовать просто int profit;
И еще, у тебя нету перехода на конец файла, а значит он будет переписываться.