Miscellaneous
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---