Запись в Exele

 

Подскажите, есть код

FileName=AccountNumber()+".csv";
   //FileName="Дневник торговли.csv";
   FileHandle=FileOpen(FileName,FILE_WRITE | FILE_CSV,";");
   if(FileHandle<1)
     {
       Print("Не удаётся открыть файл ошибка ",GetLastError());
       return;
     }
   FileWrite(FileHandle,"","Тикет","Время открытия","Тип ордера","Символ","Цени открытия","Стоп-Лос","Тейк профит","Своп","Прибыль","Коментарий","Megic Number");
   total=OrdersTotal(); //Всего ордеров
   for(int i=0; i<total; i++)
     {
       isSelected=OrderSelect(i,SELECT_BY_POS);
       if(isSelected)  //Ордер выбран
         {
           //Определим тип ордера
           if(OrderType()==OP_BUY)
             {
               type="buy";
               buyOrders++;
             }
           if(OrderType()==OP_SELL)
             {
               type="sell";
               sellOrders++;
             }
           if(OrderType()==OP_BUYLIMIT)
             {
               type="buy limit";
               buy_limitOrders++;
             }
           if(OrderType()==OP_SELLLIMIT)
             {
               type="sell limit";
               sell_limitOrders++;
             }
           if(OrderType()==OP_BUYSTOP)
             {
               type="buy stop";
               buy_stopOrders++;
             }
           if(OrderType()==OP_SELLSTOP)
             {
               type="sell stop";
               sell_stopOrders++;
             }
           Print("Обработка позиции №",i,"ticket=",OrderTicket(),"тип",type);
           FileWrite(FileHandle,i,OrderTicket(),TimeToStr(OrderOpenTime()),type,OrderSymbol(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),OrderSwap(),OrderProfit(),OrderComment(),OrderMagicNumber());
         }
         else  //не удалось выбрать ордер
         {
           Print("Не удалось выбрать ордер на позиции",i);
         }
         //Закроем файл(освободим указатель/handle, чтобы файл можно было открыть
         //для редактирования другими программами)
         if(FileHandle>0)
         FileClose(FileHandle);
       }

1. У меня в полях "Цени открытия","Стоп-Лос","Тейк профит" пишет не цену, а например янв.84, янв.49 и т.д.

2. Почемуто после закрытия ордера данные не сохраняются.

Подскажите причину если знаете?

 

Достаточно поменять региональные настройки в виндовс. Заменить точку на запятую.

 
tdutybq:

...

2. Почемуто после закрытия ордера данные не сохраняются.

Подскажите причину если знаете?

Потому что анализируются только открытые и отложенные ордера.

isSelected=OrderSelect(i,SELECT_BY_POS);
 

по п.1

Десятичный разделитель. Можно перед экспортом в Excel заменить в файле глобально десятичный разделитель на нужный. Только чтобы он не перепутался с разделителем полей, который тоже может быть запятой. Вобщем, по уму, надо согласовать региональные настройки винды, разделители, используемые MQL и формат экспорта в Excel. Он любит по умолчанию применять формат от последнего экспорта или использованный при выполнении команды "Данные--Текст по столбцам"

 
И как это можно устранить?
 
Talex:
tdutybq:

...

2. Почемуто после закрытия ордера данные не сохраняются.

Подскажите причину если знаете?

Потому что анализируются только открытые и отложенные ордера.

isSelected=OrderSelect(i,SELECT_BY_POS);

В принципе мне это и надо, но ещё и чтобы запись оставалась после закрытия ордера. Если не трудно дайте код?

 
tdutybq:
Talex:
tdutybq:

...

2. Почемуто после закрытия ордера данные не сохраняются.

Подскажите причину если знаете?

Потому что анализируются только открытые и отложенные ордера.

isSelected=OrderSelect(i,SELECT_BY_POS);

В принципе мне это и надо, но ещё и чтобы запись оставалась после закрытия ордера. Если не трудно дайте код?

Не совсем всетаки понятно, что надо. Четко сформулируйте.

 

Вобщем всё работает только еданственное осталось с записью в графах пишет ярв.62, а в окошку получается 01.01.5562, но когда пытаешся поменять запись она всёравно возвращается к прежней записи.

Как это победить?

 
С каким окошком Вы работаете? Где должна быть дата или цифра? Проверьте форматирование "окошка": ПрКнопка-ФорматЯчеек-ВкладкаЧисло. Для даты - выберите формат из дат. Для числа - из чисел.
 

И еще. В Excel. F1. Вкладка "Мастер ответов". Скопируйте туда следующую строку:

Разрешение вопросов при форматировании листов

и нажмите Enter. Это полезно почитать.

 
Я пробывал менять на числовой там хрень получается, а по умолчанию стоит Все форматы.
Причина обращения: