Miscellaneous
Implements a curve of type %1It issuies visual alerts to the screenUses files from the file systemIt reads information from a fileIt writes information to fileIt reads information from a file
0 Views
0 Downloads
0 Favorites
WILLCO_3
//Îïèñàíèå èíäèêàòîðà WILLCO_3
//Èíäèêàòîð íàñòðîåí äëÿ îáðàáîòêè èíôîðìàöèè èç îò÷åòîâ  Futures-and-Options Combined Reports: (annualof.txt), â âàðèàíòå 
//(Text) è èç îò÷åòîâ Futures Only Reports: (annual.txt), â âàðèàíòå (Text). 
//Ýòè îò÷åòû ìîæíî íàéòè íà ñòðàíèöå http://www.cftc.gov/MarketReports/CommitmentsofTraders/HistoricalCompressed/index.htm.
//Èíäèêàòîð îáðàáàòûâàåò èñòîðè÷åñêèå äàííûå èç îò÷åòîâ ìàêñèìàëüíûì îáúåìîì â 4 ãîäà. Òî åñòü, ìàêñèìàëüíîå êîëè÷åñòâî 
//èñïîëüçóåìûõ îò÷åòîâ annualof.txt, èëè annual.txt ðàâíî 4.
 
//Èíäèêàòîð ðèñóåò ÷åòûðå ëèíèè. Êðàñíî-îðàíæåâàÿ ëèíèÿ, â ïðîöåíòàõ îòîáðàæàåò íàñòðîé ìåëêèõ òðåéäåðîâ. ßðêî çåëåíàÿ - 
//íåêîììåð÷åñêèõ òðåéäåðîâ, ñèíÿÿ ëèíèÿ - êîììåð÷åñêèõ òðåéäåðîâ, à ñåðàÿ ëèíÿÿ ïîêàçûâàåò ñòîõàñòè÷åñêèé îñöèëëÿòîð 
//îòêðûòîãî èíòåðåñà OI.

//Ôîðìóëû èíäèêàòîðà Willco è ñòîõàñòè÷åñêîãî îññöèëÿòîðà OI_Index îòêðûòîãî èíòåðåñà OI ïðèäóìàííûå òðåéäåðîì 
//Ëàððè Óèëüÿìñîì âûãëÿäÿò òàê: 

//  Willco=100%*(Çíà÷åíèå Net_Pct òåêóùåé íåäåëè - Íàèìåíüøåå çíà÷åíèå Net_Pct çà ïîñëåäíèå N íåäåëü)/
//              (Íàèáîëüøåå çíà÷åíèå Net_Pct çà ïîñëåäíèå N íåäåëü - Íàèìåíüøåå çíà÷åíèå Net_Pct çà ïîñëåäíèå N íåäåëü). 

//  Ãäå ÷èñëî N ðàâíî ïåðèîäó (period) èíäèêàòîðà Willco. Net_Pct ýòî äîëÿ ÷èñòîé ïîçèöèè îïðåäåëåííîé êàòåãîðèè 
//òðåéäåðîâ â îòêðûòîì èíòåðåñå OI, èëè Net_Pct=100*(Long-Short)/OI. 

//Äëÿ ñòîõàñòè÷åñêîãî îñöèëëÿòîðà îòêðûòîãî èíòåðåñà OI ôîðìóëà òàêàÿ: 

//  OI_Index=100%*(Çíà÷åíèå OI òåêóùåé íåäåëè - Íàèìåíüøåå çíà÷åíèå OI çà ïîñëåäíèå N íåäåëü)/
//                (Íàèáîëüøåå çíà÷åíèå OI çà ïîñëåäíèå N íåäåëü - Íàèìåíüøåå çíà÷åíèå OI çà ïîñëåäíèå N íåäåëü). 

//  Ãäå ÷èñëî N ðàâíî ïåðèîäó (period_OI_Index) ñòîõàñòèêà îòêðûòîãî èíòåðåñà OI.

//Ôîðìóëà ñòîõàñòè÷åñêîãî îññöèëÿòîðà ÷èñòûõ ïîçèöèé âûãëÿäÿò òàê: 

//  COT_Index=100%*(Çíà÷åíèå Net òåêóùåé íåäåëè - Íàèìåíüøåå çíà÷åíèå Net çà ïîñëåäíèå N íåäåëü)/
//              (Íàèáîëüøåå çíà÷åíèå Net çà ïîñëåäíèå N íåäåëü - Íàèìåíüøåå çíà÷åíèå Net çà ïîñëåäíèå N íåäåëü). 

//  Ãäå ÷èñëî N ðàâíî ïåðèîäó (period) èíäèêàòîðà COT_Index. Net ýòî ÷èñòàÿ ïîçèöèÿ îïðåäåëåííîé êàòåãîðèè òðåéäåðîâ,
//èëè Net=Long-Short.

//Èíäèêàòîðíûå ëèíèè ðèñóþòñÿ òîëüêî íà ãðàôèêàõ ñ ïåðèîäàìè Weekly, Daily è H4.

//Óðîâíè èíäèêàòîðîâ 100% 50% è 0%.

// îêíå èíäèêàòîðà ïîñëå íàäïèñè "History" îòîáðàæàåòñÿ êîëè÷åñòâî íåäåëü äàííûå êîòîðûõ óæå èìåþòñÿ â èíäèêàòîðå. 
// îêíå èíäèêàòîðà ïîñëå íàäïèñè "Last report" îòîáðàæàåòñÿ äàòà ïîñëåäíåãî îò÷åòà.

//Èíäèêàòîð âûâîäèò íà ýêðàí â âèäå íàäïèñè "0.5*AR(4)=123" ïîêàçàíèå â ïèïñàõ î ñðåäíåì äèàïàçîíå äíåé, èëè íåäåëü
//çà îïðåäåëåííûé ïåðèîä óñðåäíåíèÿ. Ýòî ïîêàçàíèå óìíîæàåòñÿ íà ñîîòâåòñòâóþùèé ïðîöåíò(AR_percent). Â äàííîì ïðèìåðå
//ìíîæèòåëü 0.5 îçíà÷àåò 50 ïðîöåíòîâ, à ÷èñëî 4 â êðóãëûõ ñêîáêàõ îçíà÷àåò ïåðèîä óñðåäíåíèÿ (AR_period). Ðàñ÷åò 
//âåäåòñÿ ïî ôîðìóëå: AR(AR_period)=0.01*AR_percent*(high[1]-low[1]+...+high[AR_period-1]-low[AR_period-1]+
//high[AR_period]-low[AR_period])/AR_period, ãäå high[1]-low[1] ýòî äèàïàçîí â÷åðàøíåãî äíÿ, èëè äèàïàçîí ïðîøëîé íåäåëè,
//à ÷èñëî â êâàäðàòíûõ ñêîáêàõ ïîêàçûâàåò èíäåêñ äíÿ. Âåëè÷èíû AR_percent è AR_period ýòî ââîäíûå ïàðàìåòðû.
//Ïî óìîë÷àíèþ AR_percent=50% è AR_period=4. Ðàáî÷èå ãðàôèêè ýòîé îïöèè Daily è Weekly.

//Èíäèêàòîð âûâîäèò íà ýêðàí äâå íàäïèñè, âûêðàøåííûå â ñâåòëî çåëåíûé è êðàñíûé öâåò. Âåðõíÿÿ ñâåòëî çåëåíàÿ íàäïèñü
//ïîêàçûâàåò ñ òî÷íîñòüþ äî îäíîãî ïðîöåíòà, ïðîöåíò âåëè÷èíû êîëåáàíèÿ îò öåíû îòêðûòèÿ äî ìàêñèìóìà òåêóùåãî äíÿ, èëè
//òåêóùåé íåäåëè ïî îòíîøåíèþ ê ñðåäíåìó äèàïàçîíó, èëè ïî ôîðìóëå: Up%=100%*(high[0]-open[0])/AR(AR_period).
//Äëÿ êðàñíîé íàäïèñè ôîðìóëà òàêàÿ: Down%=100%*(open[0]-low[0])/AR(AR_period). Ðàáî÷èå ãðàôèêè ýòîé îïöèè Daily è
//Weekly.

//Íà îòêðûòèè íîâîãî áàðà èíäèêàòîð âûâîäèò íà ýêðàí íàäïèñü "MR4=123" ïðè óñëîâèè ÷òî â÷åðàøíèé äèàïàçîí äíÿ, èëè
//äèàïàçîí ïðîøëîé íåäåëè ñàìûé ìàëåíüêèé çà ïîñëåäíèå ÷åòûðå äíÿ, èëè 4 íåäåëè, ñ óêàçàíèåì âåëè÷èíû ýòîãî ìèíèìàëüíîãî
//äèàïàçîíà âûðàæåííîé â ïèïñàõ. Ðàáî÷èå ãðàôèêè ýòîé îïöèè  Daily è Weekly.

//Èíñòðóêöèÿ:
//Ñêà÷àéòå íóæíîå êîëè÷åñòâî ôàéëîâ annualof.txt, èëè annual.txt, âàðèàíò (Text). Çàòåì ðàñïàêóéòå ýòè ôàéëû â 
//êàòàëîã -Êàòàëîã_òåðìèíàëà\Experts \Files\.
//Ýòè ôàéëû èìåþò îäèíàêîâûå íàçâàíèÿ, íàïðèìåð, annualof è èõ íóæíî ïåðåèìåíîâàòü íà ëàòèíñêèå çàãëàâíûå áóêâû äëÿ
//òåêóùåãî ãîäà â A, äëÿ ïðîøëîãî ãîäà â B è äëÿ ïîçàïðîøëîãî â C, òî åñòü â àëôàâèòíîì ïîðÿäêå íàçàä â ïðîøëîå. 
//È íå îáÿçàòåëüíî êîëè÷åñòâî èñïîëüçóåìûõ ôàéëîâ annualof.txt èëè annual.txt äîëæíî áûòü âñå 4.

//Ïðèêðåïèòå îêíî èíäèêàòîðà ê îêíó èíòåðåñóþùåãî ôèíàíñîâîãî èíñòðóìåíòà è äàëåå äåéñòâóéòå ïî ïîäñêàçêàì èíäèêàòîðà
//êîòîðûå áóäóò âûâîäèòñÿ â îêíî ôèíàíñîâîãî èíñòðóìåíòà â âèäå ñîîáùåíèé òèïà Alert. Âðåìÿ ñîçäàíèÿ ôàéëà Ñode.txt"
//êîëåáëåòñÿ îò 2 äî 8 ñåêóíä â çàâèñèìîñòè îò êîëè÷åñòâà èñïîëüçóåìûõ ïåðåèìåíîâàííûõ ôàéëîâ annualof.txt, èëè annual.txt.
//Åñëè ó áðîêåðà åñòü èíñòðóìåíòû, íàçâàíèÿ êîòîðûõ îòîáðàæàþòñÿ êëèåíòñêèì òåðìèíàëîì, êàê òî: GBPUSD, AUDUSD, EURUSD, 
//USDCHF, USDJPY, XAUUSD, GOLD, XAGUSD, SILVER, NZDUSD è USDCAD, òî â îêíå íàñòðîåê èíäèêàòîðà òîðãîâûé êîä ôüþ÷åðñà ïî
//ýòèì èíñòðóìåíòàì ââîäèòü íå íàäî, òàê êàê â èíäèêàòîðå óæå åñòü êîäû ïî ýòèì èíñòðóìåíòàì è âûáîð êîäà ôüþ÷åðñà ïî 
//òàêèì èíñòðóìåíòàì îñóùåñòâëÿåòñÿ àâòîìàòè÷åñêè.
//Äëÿ äðóãèõ ñëó÷àåâ, çíà÷åíèå òîðãîâîãî êîäà ôüþ÷åðñà ìîæíî óçíàòü ïîñìîòðåâ îò÷åò. Êîä íàõîäèòñÿ â ÷åòâåðòîé êîëîíêå îò÷åòà
//Ê ïðèìåðó, äëÿ ôüþ÷åðñà ïøåíèöû, òîðãîâûé êîä êîòîðîãî ðàâåí 001602, ðàñïîëàãàåòñÿ ñðàçó æå ïîñëå äàòû ôîðìàòà "yyyy-mm-dd"

//"WHEAT-SRW - CHICAGO BOARD OF TRADE" ,130226 ,2013-02-26,001602 ,CBT ,00 ,001 ,  543875,.....

//à äëÿ ïðèìåðà ïî ôüþ÷åðñó êóêóðóçû  òîðãîâûé êîä ðàâåí 002602 

//"CORN - CHICAGO BOARD OF TRADE" ,130226 ,2013-02-26,002602 ,CBT ,00 ,002 , 1633637,...

//Äëÿ ñîçäàíèÿ ôàéëîâ Code.txt, èçìåíÿéòå çíà÷åíèÿ ãëîáàëüíûõ ïåðåìåííûõ (êëàâèøà F3), êîòîðûå ñîçäàåò èíäèêàòîð ñ
//èìåíàìè "Code" ñ 0 íà 1. Åñëè íåò äðóãèõ ãëîáàëüíûõ ïåðåìåííûõ íå îòíîñÿùèõñÿ ê èíäèêàòîðó WILLCO_3, òî ìîæíî ïðîñòî 
//èçìåíÿòü çíà÷åíèå ãëîáàëüíîé ïåðåìåííîé ñ èìåíåì "Update all files Code.txt" ñ 0 íà 1, òîãäà âñå ãëîáàëüíûå ïåðåìåííûå
//ñ èìåíàìè "Code" ïðèîáðåòóò çíà÷åíèå 1. Äîæäèòåñü ïðèõîäà òèêà, ëèáî íàæìèòå êíîïêó Refresh(Îáíîâèòü) îáíîâëåíèÿ ãðàôèêà
//è, ôàéë Code.txt áóäåò ñîçäàí.

//Êàê òîëüêî ôàéë Code.txt áóäåò ñîçäàí, ãëîáàëüíûå ïåðåìåííûå ñ èìåíàìè "Code" è "Update all files Code.txt"
//âåðíóò çíà÷åíèÿ ðàâíûå íóëþ.

//Ïðè ïåðåêëþ÷åíèè èíäèêàòîðîâ â îêíå íàñòðîåê èíäèêàòîðà WILLCO_3, ìîæåòå ïîëüçîâàòüñÿ êíîïêîé Reset(Ñáðîñ). Õîòÿ ïðè ýòîì
//íàäïèñü êîäà èñ÷åçàåò èç ñòðîêè ââîäà, íî èíôîðìàöèÿ î ðàíåå ââåäåííîì êîäå ïðè ýòîì ñîõðàíÿåòñÿ â èíäèêàòîðå äî òåõ ïîð, 
//ïîêà èíäèêàòîð ïðèêðåïëåí ê îêíó ôèíàíñîâîãî èíñòðóìåíòà.

//Åñëè â ïàïêå ôàéëîâ åñòü ôàéëû ñîçäàííûå èíäèêàòîðîì WILLCO_4, òî ýòè ôàéëû ñëåäóåò óäàëèòü ïðåæäå, ÷åì íà÷àòü
//ïîëüçîâàòüñÿ èíäèêàòîðîì WILLCO_3.
//---------------------------------
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_maximum 104
#property indicator_minimum -4
#property indicator_color1 LimeGreen
#property indicator_color2 DodgerBlue
#property indicator_color3 OrangeRed
#property indicator_color4 Gray
#property indicator_style1 0
#property indicator_style2 0
#property indicator_style3 0
#property indicator_style4 0
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 1

extern string Code="Enter_code";
extern int period=26;
extern bool COT_Index=false;
extern bool OI_Index=false;
extern int period_OI_Index=52;
extern bool Flip_chart=false;
extern int AR_period=4;
extern int AR_percent=50;

string Column_1="CFTC Contract Market Code";
string Column_2="As of Date in Form YYYY-MM-DD";
string Column_3="Open Interest (All)";
string Column_4="Noncommercial Positions-Long (All)";
string Column_5="Noncommercial Positions-Short (All)";
string Column_6="Commercial Positions-Long (All)";
string Column_7="Commercial Positions-Short (All)";
string Column_8="Nonreportable Positions-Long (All)";
string Column_9="Nonreportable Positions-Short (All)";

double Buffer0[],Buffer1[],Buffer2[],Buffer3[];
double O[222],E1[222],E2[222],E3[222],value[222],CO1[222],CO2[222],CO3[222];
double X1[222],X2[222],X3[222],OI[222],C1[222],C2[222],C3[222],point;
datetime DATE[222],DA[222];
string TEXT[222],symbol,s;
int hi=0;
int az=0;
int zi=-1;
int h=0;
int p;
datetime time=0;
double ext1=0;
double ext2=0;
int z=0;
int q=0;
int r=1;
int t=1;
int hist;
//----
int init()
 {
  IndicatorBuffers(4);
  IndicatorDigits(2);
  SetIndexBuffer(0,Buffer0);
  SetIndexBuffer(1,Buffer1);
  SetIndexBuffer(2,Buffer2);
  SetIndexBuffer(3,Buffer3);
  SetIndexStyle(0,DRAW_LINE);
  SetIndexStyle(1,DRAW_LINE);
  SetIndexStyle(2,DRAW_LINE);
  SetIndexStyle(3,DRAW_LINE);
  SetLevelValue(0,100);
  SetLevelValue(1,50);
  SetLevelValue(2,0);
  SetLevelStyle(2,0,LightSlateGray);
  if (period<=1)period=2;
  if (period_OI_Index<=1)period_OI_Index=2;
  symbol=Symbol( );
  point=Point;
  p=Period( );
  s="Willco";
  if (COT_Index==true)s="COT";
  if (Flip_chart==true)
  {
   az=1;
   zi=1;
   r=0;
   t=-1;
  }
  if (symbol=="GBPUSD")Code="096742";
  if (symbol=="AUDUSD")Code="232741";
  if (symbol=="EURUSD")Code="099741";
  if (symbol=="GOLD" || symbol=="XAUUSD")Code="088691";
  if (symbol=="SILVER" || symbol=="XAGUSD")Code="084691";
  if (symbol=="NZDUSD")Code="112741";
  if (symbol=="USDCHF")
  {
   Code="092741";
   az=r*1;
   zi=t*1;
  }
  if (symbol=="USDJPY")
  {
   Code="097741";
   az=r*1;
   zi=t*1;
  }
  if (symbol=="USDCAD")
  {
   Code="090741";
   az=r*1;
   zi=t*1;
  }
  return(0);
 }
//----
int deinit()
 {
  GlobalVariableDel(Code);
  return(0);
 }
//----
int start()
 {
   int gl=GlobalVariableGet("Update all files Code.txt");
   if (gl==1)
   {
    for (int i=0; i<GlobalVariablesTotal( ); i++)
    {
     GlobalVariableSet(GlobalVariableName(i),1);
    }
   }
   GlobalVariableSet("Update all files Code.txt",0);
   i=0;
   int keo=GlobalVariableGet(Code);
   double g0,g1,g2,g3;
   int Handle,k,e,n4,n3,n8,n9,n10,n12,n13,n16,n17,total,err,error,de,io,MaxIdx,MinIdx,d,m,c,f,y;
   string File_Write_Name,File_Read_Name,day,month,year,x,n,text,date;
   string File_Name_1="A.txt";
   string File_Name_2="B.txt";
   string File_Name_3="C.txt";
   string File_Name_4="D.txt";
   if (Code=="Enter_code" && ObjectFind("B6Y5MS3I928R")==-1)
   {
    if (h!=1)
    {
     Alert("WILLCO_3  Ïîæàëóéñòà ââåäèòå êîä ôüþ÷åðñà");
     h=1;
    }
    return(0);
   }
   //----
   if (keo==1)
   {
    if (ObjectFind("B6Y5MS3I928R")==1)Code=ObjectDescription("B6Y5MS3I928R");
    GlobalVariableSet(Code,0);
    while(err<=3)
    {
     if(err==0)x=File_Name_1;
     if(err==1)x=File_Name_2;
     if(err==2)x=File_Name_3;
     if(err==3)x=File_Name_4;
     Handle=FileOpen(x,FILE_CSV|FILE_READ,",");
     if (Handle<0)
     {
      error=GetLastError( );
      if (error==4103 || error==5004)
      {
       Alert("WILLCO_3  ôàéë "+x+" íå íàéäåí ");
      }
      else
      {
      if (error!=0)
      {
       Alert("WILLCO_3  Îøèáêà: "+(string)error+", ïðè ïîïûòêå îòêðûòü ôàéë "+x+"");
       q=1;
      }
      }
      z=1;
      q=1;
      FileClose(Handle);
      break;
     }
     else
     {
     if (Handle>0)
     {
      while(FileIsEnding(Handle)==false)
      {
       total++;
       i++;
       if(i==20)FileSeek(Handle,500,SEEK_CUR);
       TEXT[i]=FileReadString(Handle);
       text=TEXT[i];
       if(total<=19)
       {
        if (text=="\""+Column_1+"\"")n4=i;
        if (text=="\""+Column_2+"\"")n3=i;
        if (text=="\""+Column_3+"\"")n8=i;
        if (text=="\""+Column_4+"\"")n9=i;
        if (text=="\""+Column_5+"\"")n10=i;
        if (text=="\""+Column_6+"\"")n12=i;
        if (text=="\""+Column_7+"\"")n13=i;
        if (text=="\""+Column_8+"\"")n16=i;
        if (text=="\""+Column_9+"\"")n17=i;
        if (total==19)
        {
         if (n4!=0 && n3!=0 && n8!=0 && n9!=0 && n10!=0 && n12!=0 && n13!=0 && n16!=0 && n17!=0)total=20;
        }
        if (total==19)
        {
         if (n4==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"CFTC Contract Market Code\" èçìåíåíî CFTC");
         if (n3==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"As of Date in Form YYYY-MM-DD\" èçìåíåíî CFTC");
         if (n8==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Open Interest (All)\" èçìåíåíî CFTC");
         if (n9==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Noncommercial Positions-Long (All)\" èçìåíåíî CFTC");
         if (n10==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Noncommercial Positions-Short (All)\" èçìåíåíî CFTC");
         if (n12==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Commercial Positions-Long (All)\" èçìåíåíî CFTC");
         if (n13==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Commercial Positions-Short (All)\" èçìåíåíî CFTC");
         if (n16==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Nonreportable Positions-Long (All)\" èçìåíåíî CFTC");
         if (n17==0)Alert("WILLCO_3  Âíèìàíèå!  îò÷åòå íàçâàíèå êîëîíêè \"Nonreportable Positions-Short (All)\" èçìåíåíî CFTC");
         z=1;
         q=1;
         FileClose(Handle);
         break;
         return(0);
        }
       }
       //-------------
       if (i>2 && e==0)
       {
        if (StringTrimLeft(text)==Code || StringTrimRight(text)==Code)e=i;
       }
       //----
       if (m<289 && c==0)
       {
        if (StringLen(text)<9 && i>1)
        {
         c=1;
         m++;
         y=StrToInteger(text);
         if (y>f)f=y;
        }
       }
       //----
       if(i==20 && e!=0)
       {
        k++;
        error=1;
        de=e-n4;
        double iO=StrToDouble(TEXT[n8+de]);
        n=TEXT[1];
        if(de!=0)n=TEXT[1]+", "+TEXT[2];
        O[k]=iO;
        CO1[k]=StrToDouble(TEXT[n9+de])-StrToDouble(TEXT[n10+de]);
        CO2[k]=StrToDouble(TEXT[n12+de])-StrToDouble(TEXT[n13+de]);
        CO3[k]=StrToDouble(TEXT[n16+de])-StrToDouble(TEXT[n17+de]);
        E1[k]=NormalizeDouble(100*CO1[k]/iO,4);
        E2[k]=NormalizeDouble(100*CO2[k]/iO,4);
        E3[k]=NormalizeDouble(100*CO3[k]/iO,4);
        date=StringTrimLeft(TEXT[n3+de]);
        day=StringSubstr(date,8,2);
        month=StringSubstr(date,5,2);
        year=StringSubstr(date,0,4);
        DATE[k]=StrToTime(""+year+"."+month+"."+day+"");
       }
       if (StringTrimRight(TEXT[e])!=Code && StringTrimLeft(TEXT[e])!=Code && error!=0)break;
       if (FileIsLineEnding(Handle)==true)
       {
        i=0;
        c=0;
       }
       if (FileIsEnding(Handle)==true)break;
      }
      FileClose(Handle);
      if (k==0)break;
      error=0;
      err++;
      e=0;
     } 
     }
    }
    //----
    if (k==0)
    {
     Alert("WILLCO_3  Áûë ââåäåí íåïðàâèëüíûé êîä ",Code);
     GlobalVariableDel(Code);
     z=1;
     q=1;
     return(0);
    }
    //----
    string sq=f;
    string o1=StringSubstr(sq,4,2);
    string o2=StringSubstr(sq,2,2);
    string o3=StringSubstr(sq,0,2);
    datetime u=StrToTime("20"+""+o3+"."+o2+"."+o1+"");
    date=TimeToStr(u,TIME_DATE);
    if (DATE[1]<u)Alert("WILLCO_3  Äëÿ äàòû "+date+" åæåíåäåëüíûé îò÷åò ïî ôüþ÷åðñó "+n+" íå îïóáëèêîâàí");
    z=0;
    h=0;
    //------------------------------------------------------
    File_Write_Name=Code+".txt";
    Handle=FileOpen(File_Write_Name,FILE_CSV|FILE_WRITE,",");
    if (Handle<0)
    {
     error=GetLastError( );
     if (error==4103 || error==5004)
     {
      Alert("WILLCO_3  Ôàéë "+File_Write_Name+" íå íàéäåí");
     }
     else
     {
     if (error!=0)
     {
      Alert("WILLCO_3  Îøèáêà: "+(string)error+", ïðè ïîïûòêå ñîçäàòü ôàéë "+File_Write_Name+"");
     }
     }
     z=1;
     q=1;
     return(0);
    }
    else
    {
    if (Handle>0)
    {
     for (i=1; i<k+1; i++)
     {
      int Q=FileWrite(Handle,DATE[i],O[i],E1[i],E2[i],E3[i],CO1[i],CO2[i],CO3[i]);
      if (Q<0)
      {
       Alert("WILLCO_3  Îøèáêà: "+(string)GetLastError( )+", ïðè çàïèñè â ôàéë "+File_Write_Name+"");
       z=1;
       q=1;
       FileClose(Handle);
       break;
       return(0);
      }
     }
     z=0;
     q=0;
     FileClose(Handle);
     Alert("WILLCO_3  Ôàéë  "+File_Write_Name+" óñïåøíî ñîçäàí ",
     "\n è ñîäåðæèò äàííûå çà "+(string)k+" íåäåëü. ",
     "\n Ïî ôüþ÷åðñó  "+n+". Ïîñëåäíèé îò÷åò "+TimeToStr(DATE[1],TIME_DATE)+"");
     if (ObjectFind("B6Y5MS3I928R")==-1)
     {
      ObjectCreate("B6Y5MS3I928R",OBJ_LABEL,1,0,0,0,0,0,0);
      ObjectSet("B6Y5MS3I928R",OBJPROP_XDISTANCE,56);
      ObjectSet("B6Y5MS3I928R",OBJPROP_YDISTANCE,29);
      ObjectSetText("B6Y5MS3I928R",""+Code+"",12,"Verdana",LightSlateGray);
     }
    }
    } 
   }
   //-----------------------------------------------------
   if (z!=1 || k>0)
   {
    i=0;
    if (ObjectFind("B6Y5MS3I928R")==1)Code=ObjectDescription("B6Y5MS3I928R");
    File_Read_Name=Code+".txt";
    Handle=FileOpen(File_Read_Name,FILE_CSV|FILE_READ,",");
    if (Handle>0)
    { 
     while(FileIsEnding(Handle)==false)
     {
      i++;
      value[i]=FileReadNumber(Handle);
      if (i==8)
      {
       DA[io]=value[1];
       OI[io]=value[2];
       X1[io]=value[3];
       X2[io]=value[4];
       X3[io]=value[5];
       C1[io]=value[6];
       C2[io]=value[7];
       C3[io]=value[8];
       io++;
      }
      if (FileIsLineEnding(Handle)==true)i=0;
      if (FileIsEnding(Handle)==true)break;
     }
     q=0;
     hist=io;
     GlobalVariableSet(Code,0);
     if (ObjectFind("B6Y5MS3I928R")==-1)
     {
      ObjectCreate("B6Y5MS3I928R",OBJ_LABEL,1,0,0,0,0,0,0);
      ObjectSet("B6Y5MS3I928R",OBJPROP_XDISTANCE,56);
      ObjectSet("B6Y5MS3I928R",OBJPROP_YDISTANCE,29);
      ObjectSetText("B6Y5MS3I928R",""+Code+"",12,"Verdana",LightSlateGray);
     }
    }
    else
    {
    if (Handle<0)
    {
     error=GetLastError( );
     if (error==4103 || error==5004)
     {
      if (q!=1)
      {
       Alert("WILLCO_3  Ïîæàëóéñòà äîæäèòåñü ïðèõîäà òèêà, èëè ",
       "\n íàæìèòå êíîïêó Refresh(Îáíîâèòü) îáíîâëåíèÿ ãðàôèêà. ",
       "\n Ñîçäàíèå ôàéëà çàéìåò íåñêîëüêî ñåêóíä");
       GlobalVariableSet(Code,1);
      }
     }
     else
     {
     if (error!=0 && q!=1)
     {
      Alert("WILLCO_3  Êîä Îøèáêè: "+(string)error+", ïðè ïîïûòêå ñîçäàòü ôàéë "+File_Read_Name+"");
     }
     }
     q=1;
    }
    }
    z=1;
    FileClose(Handle);
   }
   if (q==1)return(0);
   //---------------------------------------
   if(p<PERIOD_H4 || p==PERIOD_MN1)return(0);
   double high=High[0];
   double low=Low[0];
   if (time!=Time[0] || ext1!=high || ext2!=low || hi==0 || k>0)
   {
    hi=1;
    time=Time[0];
    ext1=high;
    ext2=low;
    for (i=0; i<Bars; i++)
    {
     datetime tx=Time[i];
     if (tx<=DA[d])
     {
      c=0;
      for (y=1; y<14; y++)
      {
       if (tx>DA[d+y])
       {
        break;
       }
       else
       {
       if (tx<=DA[d+y])
       {
        c++;
       }
       }
      }
      d=d+c;
      //----
      if (OI_Index==true)
      {
       MaxIdx=ArrayMaximum(OI,period_OI_Index,d);
       MinIdx=ArrayMinimum(OI,period_OI_Index,d);
       g3=100*(OI[d]-OI[MinIdx])/(OI[MaxIdx]-OI[MinIdx]);
      }
      //----
      if (COT_Index==false)
      {
       MaxIdx=ArrayMaximum(X1,period,d);
       MinIdx=ArrayMinimum(X1,period,d);
       g0=100*az-100*zi*(X1[d]-X1[MinIdx])/(X1[MaxIdx]-X1[MinIdx]);
       MaxIdx=ArrayMaximum(X2,period,d);
       MinIdx=ArrayMinimum(X2,period,d);
       g1=100*az-100*zi*(X2[d]-X2[MinIdx])/(X2[MaxIdx]-X2[MinIdx]);
       MaxIdx=ArrayMaximum(X3,period,d);
       MinIdx=ArrayMinimum(X3,period,d);
       g2=100*az-100*zi*(X3[d]-X3[MinIdx])/(X3[MaxIdx]-X3[MinIdx]);
      }
      else
      {
      if (COT_Index==true)
      {
       MaxIdx=ArrayMaximum(C1,period,d);
       MinIdx=ArrayMinimum(C1,period,d);
       g0=100*az-100*zi*(C1[d]-C1[MinIdx])/(C1[MaxIdx]-C1[MinIdx]);
       MaxIdx=ArrayMaximum(C2,period,d);
       MinIdx=ArrayMinimum(C2,period,d);
       g1=100*az-100*zi*(C2[d]-C2[MinIdx])/(C2[MaxIdx]-C2[MinIdx]);
       MaxIdx=ArrayMaximum(C3,period,d);
       MinIdx=ArrayMinimum(C3,period,d);
       g2=100*az-100*zi*(C3[d]-C3[MinIdx])/(C3[MaxIdx]-C3[MinIdx]);
      }
      }
      d++;
     }
     if (d>0)
     {
      if (OI_Index==true && d<=io-period_OI_Index)Buffer3[i]=g3;
      Buffer0[i]=g0;
      Buffer1[i]=g1;
      Buffer2[i]=g2;
      if (d>=io-period)break;
     }
    } 
    //---- 
    string name=s+"("+(string)period+")";
    IndicatorShortName(""+name+". History "+(string)hist+" weeks. Last report "+TimeToStr(DA[0],TIME_DATE)+" ");
    SetIndexLabel(0,name + "  Noncommercial");
    SetIndexLabel(1,name + "  Commercial");
    SetIndexLabel(2,name + "  Nonreportable");
    name="OI_Index("+(string)period_OI_Index+")";
    SetIndexLabel(3,name);
    //----
    if(p==PERIOD_W1 || p==PERIOD_D1)
    {
     g2=0;
     g3=0;
     double Sum,ar;
     i=1;
     if(AR_period<=0)AR_period=1;
     if (AR_period>Bars-1)AR_period=Bars-1;
     while(i<=AR_period)
     {
      Sum=Sum+High[i]-Low[i];
      i++;
     }
     ar = Sum/AR_period;
     //----
     e=4;
     Sum=1000;
     while(e>=1)
     {
      g3=High[e]-Low[e];
      if(Sum>g3)
      {
       Sum=g3;
       if(e==1)
       {
        g2=Sum;
       }
      }
      e--;
     }
     //----
     if (ar==0 || point==0)return(0);
     text=DoubleToStr(g2/point,0);
     date=" ";
     if(g2>0) date=" MR4 = "+text;
     text=DoubleToStr(0.01*AR_percent*ar/point,0);
     n=DoubleToStr(0.01*AR_percent,2)+"*AR("+(string)AR_period+") = "+text+"    "+date;
     g0=100*(High[0]-Open[0])/ar;
     g1=100*(Open[0]-Low[0])/ar;
     if (ObjectFind("B2SZ7THC2Y63")==-1)
     {
      ObjectCreate("B2SZ7THC2Y63",OBJ_LABEL,1,0,0,0,0,0,0);
      ObjectSet("B2SZ7THC2Y63",OBJPROP_XDISTANCE,0);
      ObjectSet("B2SZ7THC2Y63",OBJPROP_YDISTANCE,13);
      ObjectCreate("D3FX5P8N2EL9",OBJ_LABEL,1,0,0,0,0,0,0);
      ObjectSet("D3FX5P8N2EL9",OBJPROP_XDISTANCE,0);
      ObjectSet("D3FX5P8N2EL9",OBJPROP_YDISTANCE,27);
      ObjectCreate("GV18JFK6EH8J4",OBJ_LABEL,1,0,0,0,0,0,0);
      ObjectSet("GV18JFK6EH8J4",OBJPROP_XDISTANCE,0);
      ObjectSet("GV18JFK6EH8J4",OBJPROP_YDISTANCE,46);
     }
     ObjectSetText("B2SZ7THC2Y63"," "+n+"",10,"Verdana",LightSlateGray);
     ObjectSetText("D3FX5P8N2EL9"," "+DoubleToStr(g0,0)+"",13,"Verdana",LimeGreen);
     ObjectSetText("GV18JFK6EH8J4"," "+DoubleToStr(g1,0)+"",13,"Verdana",OrangeRed);
    }
   }
   return(0);
  }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---