Скачать MetaTrader 5

Вопрос по сохранению csv

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
alex
14
alex  

Здравствуйте, есть индикатор, который сохраняет csv. Подскажите пожалуйста как сделать, чтобы в начале файла строка начиналась с mm

например:

mm
0.9864;0.9858
0.9864;0.9859
0.9863;0.9861
0.9863;0.9856
0.9865;0.9856
0.9865;0.9862
0.9865;0.9859
0.9865;0.9863
0.9866;0.9863
0.9867;0.9864
0.9867;0.9865
0.9869;0.9865

//+------------------------------------------------------------------+

 

//|                  Copyright © 2005, FX Waves  :) Fixed by Roman Mamchyts

 

//+------------------------------------------------------------------+

 

#property copyright "Copyright © 2005, Sprrite&Lemon"

 

#property link      "wladimir447@yandex.ru"

 

#property indicator_chart_window

 

#property indicator_buffers 1

 

#property indicator_color1 Blue

 

//---- input parameters

 

int              Bar;

 

extern int       LastBar=0;

 

extern int       cnttik = 3 ;

 

double           ExtMapBuffer1[];

 

// ???????  ????  ?  ??  ?????? N-?  ??? ?????????  ???? ?????????

 

int tick = 0 ;

 

int init()

 

  {

 

 

 

 

 

//---- indicators

 

   SetIndexStyle(0,DRAW_LINE);

 

   SetIndexBuffer(0,ExtMapBuffer1);

 

//----

 

   return(0);

 

  }

 

//+------------------------------------------------------------------+

 

//| Custor indicator deinitialization function                       |

 

//+------------------------------------------------------------------+

 

int deinit()

 

  {

 

//----

 

   

 

//----

 

   return(0);

 

  }

 

//+------------------------------------------------------------------+

 

//| Custom indicator iteration function                              |

 

//+------------------------------------------------------------------+

 

int start()

 

  {

 

   string sName="",ss1=" ",ss2=" ";

 

   int file=0, NumBar=0, shift=0;

 

   int Ye=0,Mo=0,Da=0,Ho=0,Mi=0,Se=0,Ti=0;

 

   int    counted_bars=IndicatorCounted();

 

   

 

   //---- check for possible errors

 

   if (counted_bars<0) return(-1);

 

   // ???????  ????   ;

 

    tick++;

 

    if  ( tick <= cnttik  )

 

      {

 

        Print(" Tick  =  ", tick);

 

        Comment( tick ,"/", cnttik ," |  " , Bars);

 

        // ????? ????  ! -  ?????????

 

        return(0) ;

 

       }

 

    else

 

    {

 

       tick =  0 ;

 

       // ??????? ??????????? ????

 

       //int rfile = FileOpen("sprrite.csv",FILE_CSV|FILE_WRITE,",");

 

       //FileWrite(rfile,"yes");

 

       //FileClose(rfile);

 

       

 

    }   

 

       

 

    //int  filesh = FileOpen("zag.csv",FILE_CSV|FILE_READ);

 

   // string sh = FileReadString(filesh);

 

  //  FileClose( filesh );

 

//----

 

 if ( 1 == 1)  

 

    {

 

     //  ???

 

     if (Period()==10080) sName="monthly"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==43200) sName="weekly"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==1440) sName="daily"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==240) sName="4_hour"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==60) sName="1_hour"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==30) sName="half_hour"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==15) sName="quarter_hour"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==5) sName="5_min"+"\\"+Symbol()+Period()+".csv";

 

     if (Period()==1) sName="1_min"+"\\"+Symbol()+Period()+".csv";

 

     // ??????? ??????????

 

     FileDelete(sName);

 

     file =FileOpen(sName,FILE_CSV|FILE_WRITE,";");

 

    // FileWrite(file,sh);

 

 

 

    shift=Bars+LastBar-1;

 

     while(shift>=0)

 

    

 

     {    

 

                Ti=Time[shift];

 

                Ye=TimeYear(Ti);

 

                Mo=TimeMonth(Ti);

 

                Da=TimeDay(Ti);

 

    

 

                Ho=TimeHour(Ti);

 

                Mi=TimeMinute(Ti);

 

                if ( Ho == 0 && Mi == 0  ) Mi = 1 ;

 

                Se=TimeSeconds(Ti);

 

                ss1=Ye;

 

                if (Mo<10) ss1=ss1+"."+"0"+Mo; else ss1=ss1+"."+Mo;

 

                if (Da<10) ss1=ss1+"."+"0"+Da; else ss1=ss1+"."+Da;

 

                if (Ho<10) ss2="0"+Ho; else ss2=Ho;

 

                if (Mi<10) ss2=ss2+":"+"0"+Mi; else ss2=ss2+":"+Mi;

 

            


       FileWrite(file,High[shift],Low[shift]);

 

     shift--;

 

     }   

 

     Comment( "  Save of "+ss1+" "+ss2+" is ok" ,  "  === " , Bars);

 

     

 

     NumBar=counted_bars;   

 

     FileClose(file);  

 

     Print(" ????????  " , Bars);

 

   }

 

//----

 

   return(0);

 

  }
Dmitry Fedoseev
46498
Dmitry Fedoseev  
 FileWrite(file,"mm");

или

 FileWrite(file,"mm",High[shift],Low[shift]);
alex
14
alex  

При варианте FileWrite(file,"mm");

mm
1.32239;1.32069
mm
1.32331;1.32149
mm
1.32423;1.3215
mm
1.32565;1.32155

А если FileWrite(file,"mm",High[shift],Low[shift]);

mm;1.32239;1.32069
mm;1.32331;1.32149
mm;1.32423;1.3215
mm;1.32565;1.32155
mm;1.32648;1.3236
mm;1.32459;1.32168
mm;1.32458;1.32227
mm;1.3261;1.32351
mm;1.32514;1.32257
mm;1.32506;1.3229

А надо чтобы

mm
0.9864;0.9858
0.9864;0.9859
0.9863;0.9861
0.9863;0.9856
0.9865;0.9856

Dmitry Fedoseev
46498
Dmitry Fedoseev  

Неужели все так совсем плохо, что нельзя догадаться? Может вы специально сделали все варианты кроме нужного? Вытащите FileWrite(file,"mm"); из цикла и поставьте сразу после открытия файла.

ps. Порой чувствую себя воспитателем в детском садике. 

alex
14
alex  
Спасибо большое все разобрался
Виктор
Модератор
6559
Виктор  
Integer:

...Порой чувствую себя воспитателем в детском садике.

Мы тоже тебя любим :))
Dmitry Fedoseev
46498
Dmitry Fedoseev  
granit77:
Мы тоже тебя любим :))

Я знаю! Спасибо)
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий