Запись суммарного профита в файл.

[Удален]  

Дорогие участники!

Прошу помощи.

Ищу грааль форекса в хеджировании валютных пар.

Столкнулся с проблемой: очень необходим кусок кода который записывает суммарный профит по всем открытым позициям в файл.

С уважением.

Александр.

 
Как-то так:

bool ProfitToFile( string FILE_NAME )
{   
   double profit = 0;
   for ( int i = OrdersTotal() - 1; i >= 0; i -- )
   {
           if ( !OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) { Print( "OrderSelect error #", GetLastError() ); continue; }
           //тут выбираете позиции по своему признаку: символ, меджик, тип...
           profit = profit + OrderProfit() + OrderSwap() + OrderCommission(); //Своп и комишн опционально
   }
   
   int FILE = FileOpen( FILE_NAME, FILE_READ|FILE_WRITE|FILE_CSV );
   
   if ( FILE < 0 ) { Print( "File open error #", GetLastError() ); return(false); }

   int res = FileWrite( FILE, DoubleToString( profit, 2 ) );

   FileClose( FILE );

   if ( res < 0 ) { Print( "File write error #", GetLastError() ); }

   return(true);
}
[Удален]  

Спасибо щас буду пробовать.

[Удален]  

Я использую MQL4

Не подскажете код функции DoubleToString

Компилятор у меня её не знает.

 
Сорри, из пятерки притащил) В 4-ке она называется DoubleToStr
[Удален]  

Спасибо всё заработало.

Компилятор не ругается но и в файл не пишет.

Буду разбиратсья

[Удален]  

Разобрался всё работает.

А не подскажете что нужно поправить, чтобы в файл значения добавлялись построчно а не перезаписывались.

Ваша функция перезаписывает постоянно первую запись файла.

Хотя в функции открытия файла стоит: FILE_READ | FILE_WRITE.

 

Сам удивлен, файл должен дописываться, а не перезаписываться...

Попробуйте перед вызовом функции FileWrite вызывать FileSeek( FILE, 0, SEEK_END ).

[Удален]  

Огромное спасибо.

Всё работает прекрасно.