//Îïèñàíèå èíäèêàòîðà WILLCO_4.
//Èíäèêàòîð íàñòðîåí äëÿ îáðàáîòêè èíôîðìàöèè èç îò÷åòîâ Futures-and-Options Combined Reports: â âàðèàíòå (Text)
//(annualof.txt) èëè èç îò÷åòîâ Futures Only Reports: â âàðèàíòå (Text) (annual.txt).
//Èíäèêàòîð îáðàáàòûâàåò èñòîðè÷åñêèå äàííûå èç îò÷åòîâ ìàêñèìàëüíûì îáúåìîì â 10 ëåò. Òî åñòü ìàêñèìàëüíîå êîëè÷åñòâî
//èñïîëüçóåìûõ îò÷åòîâ annualof.txt èëè annual.txt ðàâíî 10.
//Ýòè îò÷åòû ìîæíî íàéòè íà ñòðàíèöå http://www.cftc.gov/MarketReports/CommitmentsofTraders/HistoricalCompressed/index.htm
//ãðàôà Futures-and-Options Combined Reports: (Text) èëè ãðàôà Futures Only Reports: (Text)
//Èíäèêàòîð ðèñóåò ÷åòûðå ëèíèè. Êðàñíî-îðàíæåâàÿ ëèíèÿ â ïðîöåíòàõ îòîáðàæàåò íàñòðîé ìåëêèõ òðåéäåðîâ. ßðêî çåëåíàÿ -
//íåêîììåð÷åñêèõ òðåéäåðîâ, ñèíÿÿ ëèíèÿ - êîììåð÷åñêèõ òðåéäåðîâ, à ñåðàÿ ëèíèÿÿ ïîêàçûâàåò ñòîõàñòè÷åñêèé îñöèëëÿòîð
//îòêðûòîãî èíòåðåñà OI è àáñîëþòíîå çíà÷åíèå îòêðûòîãî èíòåðåñà OI.
//Ôîðìóëû èíäèêàòîðà Willco è ñòîõàñòè÷åñêîãî îñöèëëÿòîðà OI_Index îòêðûòîãî èíòåðåñà OI, ïðèäóìàííûå òðåéäåðîì
//Ëàððè Óèëüÿìñîì âûãëÿäÿò òàê:
// Willco=100%*(çíà÷åíèå Net_Pct òåêóùåé íåäåëè - íàèìåíüøåå çíà÷åíèå Net_Pct çà ïîñëåäíèå N íåäåëü)/
// (íàèáîëüøåå çíà÷åíèå Net_Pct çà ïîñëåäíèå N íåäåëü - íàèìåíüøåå çíà÷åíèå Net_Pct çà ïîñëåäíèå N íåäåëü).
//Ãäå ÷èñëî N ðàâíî ïåðèîäó èíäèêàòîðà Willco. Net_Pct ðàâíî ÷èñòîé ïîçèöèè îïðåäåëåííîé êàòåãîðèè òðåéäåðîâ èëè ðàçíîñòè
//èõ äëèííîé è êîðîòêîé ïîçèöèè äåëåííîé íà îòêðûòûé èíòåðåñ OI.
// Èëè Net_Pct=100%*(Long-Short)/OI.
//Ãäå Long è Short ýòî àáñîëþòíûå çíà÷åíèÿ äëèíîé è êîðîòêîé ïîçèöèè îïðåäåëåííîé êàòåãîðèè òðåéäåðîâ.
//Â îêíå íàñòðîåê èíäèêàòîðà WILLCO_4 ïåðèîä èíäèêàòîðà Willco îòîáðàæàåòñÿ êàê "period".
//Äëÿ ñòîõàñòè÷åñêîãî îñöèëëÿòîðà îòêðûòîãî èíòåðåñà OI ôîðìóëà òàêàÿ:
// OI_Index=100%*(çíà÷åíèå OI òåêóùåé íåäåëè - íàèìåíüøåå çíà÷åíèå OI çà ïîñëåäíèå N íåäåëü)/
// (íàèáîëüøåå çíà÷åíèå OI çà ïîñëåäíèå N íåäåëü - íàèìåíüøåå çíà÷åíèå OI çà ïîñëåäíèå N íåäåëü).
//Ãäå ÷èñëî N ðàâíî ïåðèîäó ñòîõàñòèêà îòêðûòîãî èíòåðåñà OI.
//Â îêíå íàñòðîåê èíäèêàòîðà WILLCO_4 ïåðèîä èíäèêàòîðà OI_Index îòîáðàæàåòñÿ êàê "period_OI_Index".
//Ôîðìóëà èíäèêàòîðà COT_Index âûãëÿäèò òàê:
// COT_Index = 100%*(çíà÷åíèå Net òåêóùåé íåäåëè - íàèìåíüøåå çíà÷åíèå Net çà ïîñëåäíèå N íåäåëü)/
// (íàèáîëüøåå çíà÷åíèå Net çà ïîñëåäíèå N íåäåëü - íàèìåíüøåå çíà÷åíèå Net çà ïîñëåäíèå N íåäåëü).
//Ãäå ÷èñëî N ðàâíî ïåðèîäó èíäèêàòîðà COT_Index. Net ðàâíî ÷èñòîé ïîçèöèè îïðåäåëåííîé êàòåãîðèè òðåéäåðîâ èëè ðàçíîñòè
//èõ äëèííîé è êîðîòêîé ïîçèöèè, èëè Net=Long-Short.
//Â îêíå íàñòðîåê èíäèêàòîðà WILLCO_4 ïåðèîä èíäèêàòîðà COT_Index îòîáðàæàåòñÿ êàê "period".
//Ôîðìóëà èíäèêàòîðà Movement_Index ïðåäëîæåííàÿ Ñòýôàíîì Áðèñîì âûãëÿäèò òàê:
// Movement_Index=COT_Index(t)-COT_Index(t+n).
//Òî åñòü Movement_Index ýòî ðàçíîñòü ìåæäó çíà÷åíèåì èíäèêàòîðà COT_Index íà äàííûé ìîìåíò t è åãî çíà÷åíèåì n íåäåëü íàçàä
//è n ðàâíî ðàñ÷åòíîìó ïåðèîäó ýòîãî èíäèêàòîðà.  îêíå íàñòðîåê èíäèêàòîðà, n îòîáðàæàåòñÿ êàê
//"period_Movement_Index".  êëàññè÷åñêîì âàðèàíòå ýòîé ôîðìóëû, êðèòè÷åñêèìè óðîâíÿìè ñ÷èòàþòñÿ óðîâíè -40% è 40%.
//Èíäèêàòîð Spread_Movement_Index, êîòîðûé ïðèäóìàë Ëàððè Óèëüÿìñ,âûãëÿäèò òàê:
// Spread_Movement_Index=Movement_Index-OI_Movement_Index.
//Ãäå OI_Movement_Index ýòî àíàëîã Movement_Index, èëè OI_Movement_Index=OI_Index(t)-OI_Index(t+n) è n òàêæå
//ðàâíî ââîäíîé ïåðåìåííîé "period_Movement_Index".  ýòîì ñëó÷àå äëÿ ðàñ÷åòà OI_Index áóäåò èñïîëüçîâàòüñÿ íå ïåðèîä
//"period_OI_Index", à ïåðèîä "period".
//Èíäèêàòîð Spread_Movement_Index îáû÷íî ïðèìåíÿåòñÿ ê êîììåð÷åñêèì òðåéäåðàì, íî â èíäèêàòîðå WILLCO_4 îòîáðàæàþòñÿ ëèíèè
//èíäèêàòîðà Spread_Movement_Index ïî âñåì êàòåãîðèÿì òðåéäåðîâ â îäíîì îêíå è êàê âñåãäà êðàñíî-îðàíæåâàÿ ëèíèÿ â
//ïðîöåíòàõ îòîáðàæàåò íàñòðîé ìåëêèõ òðåéäåðîâ. ßðêî çåëåíàÿ - íåêîììåð÷åñêèõ òðåéäåðîâ, à ñèíÿÿ ëèíèÿ - êîììåð÷åñêèõ
//òðåéäåðîâ.  êëàññè÷åñêîì âàðèàíòå äëÿ èíäèêòîðà Spread_Movement_Index êðèòè÷åñêèìè óðîâíÿìè ñ÷èòàþòñÿ -60% è 60%.
//Ôîðìóëû äëÿ äîëè, èëè ïðîöåíòà äëèííûõ ïîçèöèé îïðåäåëåííîé êàòåãîðèè òðåéäåðîâ â îòêðûòîì èíòåðåñå OI è äëÿ äîëè, èëè
//ïðîöåíòà êîðîòêèõ ïîçèöèé îïðåäåëåííîé êàòåãîðèè òðåéäåðîâ â îòêðûòîì èíòåðåñå OI ðàâíû ñîîòâåòñòâåííî.
// Long_Pct=100%*Long/OI.
// Short_Pct=100%*Short/OI.
//Èíäèêàòîðíûå ëèíèè ðèñóþòñÿ òîëüêî íà ãðàôèêàõ ñ ïåðèîäàìè Weekly, Daily è H4.
//Èíäèêàòîð ñòîõàñòè÷åñêèé îñöèëëÿòîð OI_Index îòêðûòîãî èíòåðåñà OI ìîæåò ïðîñìàòðèâàòüñÿ â îêíå èíäèêàòîðà WILLCO_4
//òîëüêî ñ òàêèìè èíäèêàòîðàìè êàê Willco, COT_Index.
//Èíäèêàòîð OI_ îòêðûòîãî èíòåðåñà OI ìîæåò îäíîâðåìåííî ïðîñìàòðèâàòüñÿ ñ èíäèêàòîðàìè Long èëè Short.
//Óðîâíè äëÿ èíäèêàòîðîâ Willco, COT_Index è OI_Index ðàâíû 100%, 50% è 0%. Äëÿ èíäèêàòîðà Movement_Index ðàâíû
// -40%, 0% è 40%, à äëÿ èíäèêàòîðà Spread_Movement_Index ýòè óðîâíè ðàâíû -60%, 0% è 60% ñîîòâåòñòâåííî.
//Íàäïèñü "Willco" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Willco.
//Íàäïèñü "NetPct" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Net_Pct, èëè ïðîöåíò ÷èñòûõ ïîçèöèé ïî
//îòíîøåíèþ ê OI, èëè NetPct=100%*(Long-Short)/OI.
//Íàäïèñü "Net" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Net, èëè ÷èñòûå ïîçèöèé Net=Long-Short.
//Íàäïèñü "OI" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð OI_ îòêðûòîãî èíòåðåñà.
//Íàäïèñü "Long" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Long äëèííûõ ïîçèöèé.
//Íàäïèñü "Short" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Short êîðîòêèõ ïîçèöèé.
//Íàäïèñü "LoPct" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Long_Pct ïðîöåíò äëèíîé ïîçèöèé Long â îòêðûòîì èíòåðåñå OI,
//èëè Long_Pct=100%*Long/OI.
//Íàäïèñü "ShPct" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Short_Pct ïðîöåíò êîðîòêîé Short ïîçèöèé â îòêðûòîì èíòåðåñå OI,
//èëè Short_Pct=100%*Short/OI.
//Íàäïèñü "COT" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð COT_Index.
//Íàäïèñü "MovInd" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Movement_Index.
//Íàäïèñü "SpMvIn" â îêíå èíäèêàòîðà îçíà÷àåò èíäèêàòîð Spread_Movement_Index.
//×èñëî êîòîðîå çàêëþ÷åíî â êðóãëûå ñêîáêè è îòîáðàæàåòñÿ ñðàçó æå ïîñëå ýòèõ ñîêðàùåííûõ íàçâàíèé
//ïîêàçûâàåò ïåðèîä "period" ïîäêëþ÷åííîãî èíäèêàòîðà.
//Êíîïêîé "turn_chart" ìîæíî ïåðåâîðà÷èâàòü ãðàôèêè òàêèõ èíäèêàòîðîâ êàê Net, Long, Short, Net_Pct, Long_Pct,
//è Short_Pct. Ýòî ìîæíî äåëàòü ïî èíñòóìåíòàì, íàçâàíèÿ êîòîðûõ îòîáðàæàþòñÿ êëèåíòñêèì òåðìèíàëîì, êàê GBPUSD,
//AUDUSD, EURUSD, USDCHF, USDJPY, XAUUSD, GOLD, XAGUSD, SILVER, NZDUSD è USDCAD. À äëÿ äðóãèõ èíñòðóìåíòîâ, ìîæíî
//ïåðåâîðà÷èâàòü ãðàôèêè ëþáûõ èíäèêàòîðîâ, èñïîëüçóåìûõ â èíäèêàòîðå WILLCO_4.
// îêíå èíäèêàòîðà ïîñëå íàäïèñè "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.
//Èíñòðóêöèÿ:
//Ñêà÷àéòå íóæíîå êîëè÷åñòâî ôàéëîâ (Text). Çàòåì ðàñïàêóéòå ýòè ôàéëû â êàòàëîã -Êàòàëîã_òåðìèíàëà\Experts \Files\
//Ýòè ôàéëû èìåþò îäèíàêîâûå íàçâàíèÿ, íàïðèìåð annualof è èõ íóæíî ïåðåèìåíîâàòü íà ëàòèíñêèå çàãëàâíûå áóêâû äëÿ
//òåêóùåãî ãîäà â A, äëÿ ïðîøëîãî ãîäà â B, äëÿ ïîçàïðîøëîãî â C è â D äëÿ ïîçà ïîçàïðîøëîãî è òàê äàëåå, òî åñòü
//â àëôàâèòíîì ïîðÿäêå íàçàä â ïðîøëîå è, íå îáÿçàòåëüíî êîëè÷åñòâî èñïîëüçóåìûõ ôàéëîâ annualof.txt èëè annual.txt
//äîëæíî áûòü âñå 10.
//Ïðèêðåïèòå îêíî èíäèêàòîðà ê îêíó èíòåðåñóþùåãî ôèíàíñîâîãî èíñòðóìåíòà è, äàëåå äåéñòâóéòå ïî ïîäñêàçêàì èíäèêàòîðà
//êîòîðûå áóäóò âûâîäèòñÿ â îêíî ôèíàíñîâîãî èíñòðóìåíòà â âèäå ñîîáùåíèé òèïà Alert. Âðåìÿ ñîçäàíèÿ ôàéëà code.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_4, òî ìîæíî ïðîñòî èçìåíèòü çíà÷åíèå ãëîáàëüíîé
//ïåðåìåííîé ñ èìåíåì "Update all files code.txt" ñ 0 íà 1, òîãäà âñå ãëîáàëüíûå ïåðåìåííûå ñ èìåíàìè "code" ïðèîáðåòóò
//çíà÷åíèå 1. Äîæäèòåñü ïðèõîäà òèêà ëèáî íàæìèòå êíîïêó Refresh(Îáíîâèòü) îáíîâëåíèÿ ãðàôèêà è ôàéë code.txt áóäåò
//îáíîâëåí, èíäèêàòîð âûäàñò óâåäîìëåíèå îá îáíîâëåíèè.
//Êàê òîëüêî ôàéë code.txt áóäåò îáíîâëåí, ãëîáàëüíûå ïåðåìåííûå ñ èìåíàìè "code" è "Update all files code.txt"
//âåðíóò ñâîè çíà÷åíèÿ ðàâíûå íóëþ.
//Åñëè ïîòðåáóåòñÿ ñîçäàò áîëåå îáúåìíûé ôàéë code.txt, òî óäàëèòå ïðåäøåñòâóþùèé åìó ôàéë code.txt. Çàòåì ïåðåîòêðîéòå
//îêíî íàñòðîåê èíäèêàòîðà, ëèáî ïåðåóñòàíîâèòå èíäèêàòîð è òîãäà, ÷åðåç íåñêîëüêî ñåêóíä íîâûé ôàéë code.txt áóäåò ñîçäàí.
//Åñëè ïîòðåáóåòñÿ îáíîâèòü ôàéë Codes.txt (ýòîò ôàéë ñîäåðæèò âñå êîäû ïîïàäàþùèåñÿ â îò÷åòàõ annualof.txt, èëè annual.txt
//è ñëóæèò äëÿ ôóíêöèè ïðîâåðêè íà ïðàâèëüíîñòü ââåäåíîãî êîäà), òî íóæíî óäàëèòü ãëîáàëüíóþ ïåðåìåííóþ ñ èìåíåì "000000".
//Ñ ïðèõîäîì íîâîãî òèêà ôàéë Codes.txt áóäåò çàíîâî ñîçäàí.
//Ïðè ïåðåêëþ÷åíèè èíäèêàòîðîâ â îêíå íàñòðîåê èíäèêàòîðà WILLCO_4, ìîæåòå ïîëüçîâàòüñÿ êíîïêîé Reset(Ñáðîñ). Õîòÿ ïðè ýòîì
//íàäïèñü êîäà èñ÷åçàåò èç ñòðîêè ââîäà, íî èíôîðìàöèÿ î ðàíåå ââåäåíîì êîäå ïðè ýòîì ñîõðàíÿåòñÿ â èíäèêàòîðå äî òåõ ïîð,
//ïîêà èíäèêàòîð ïðèêðåïëåí ê îêíó ôèíàíñîâîãî èíñòðóìåíòà.
//Åñëè ëèíèè èíäèêàòîðà íå îòðèñîâûâàþòñÿ, èëè êîãäà ïðîèçîøëî ñìåùåíèå ãðàôèêà èíäèêàòîðà îòíîñèòåëüíî ãðàôèêà öåí, òî
//îòêðîéòå îêíî íàñòðîåê èíäèêàòîðà è íàæìèòå êíîïêó OK.
//Åñëè â ïàïêå ôàéëîâ åñòü ôàéëû ñîçäàííûå èíäèêàòîðîì WILLCO_3, òî ýòè ôàéëû ñëåäóåò óäàëèòü ïðåæäå, ÷åì íà÷àòü
//èñïîëüçîâàòü èíäèêàòîð WILLCO_4.
#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 LimeGreen
#property indicator_color2 DodgerBlue
#property indicator_color3 OrangeRed
#property indicator_color4 Gray
#property indicator_color5 LightSlateGray
#property indicator_color6 LightSlateGray
#property indicator_color7 LightSlateGray
#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 Net=false;
extern bool Movement_Index=false;
extern int period_Movement_Index=6;
extern bool Spread_Movement_Index=false;
extern bool OI_=false;
extern bool Long=false;
extern bool Short=false;
extern bool Net_Pct=false;
extern bool Long_Pct=false;
extern bool Short_Pct=false;
extern bool turn_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)";
int hh=1;
int z=0;
int sz=0;
int hi=0;
int x=0;
int rq=0;
int v=0;
int az,zi,rr,p,hist;
datetime DATE[545],DA[545],data[35],T;
double Buffer0[],Buffer1[],Buffer2[],Buffer3[];
double Buffer4[],Buffer5[],Buffer6[],ext1,ext2,point;
double O[545],E1[545],E2[545],E3[545],CO1[545],CO2[545],CO3[545];
double L1[545],L2[545],L3[545],S1[545],S2[545],S3[545],value[545];
double X1[545],X2[545],X3[545],C1[545],C2[545],C3[545],LO1[545];
double LO3[545],SH1[545],SH2[545],SH3[545],OI[545],LO2[545];
string F[15900],R[489],TEXT[545],symbol,xgs;
//----
int init( )
{
IndicatorBuffers(7);
SetIndexBuffer(0,Buffer0);
SetIndexBuffer(1,Buffer1);
SetIndexBuffer(2,Buffer2);
SetIndexBuffer(3,Buffer3);
SetIndexBuffer(4,Buffer4);
SetIndexBuffer(5,Buffer5);
SetIndexBuffer(6,Buffer6);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_LINE,2,1);
SetIndexStyle(5,DRAW_LINE,2,1);
SetIndexStyle(6,DRAW_LINE,2,1);
ObjectCreate("G02YQ4LAd7Jk",OBJ_LABEL,1,0,0,0,0,0,0);
ObjectSet("G02YQ4LAd7Jk",OBJPROP_XDISTANCE,534);
ObjectSet("G02YQ4LAd7Jk",OBJPROP_YDISTANCE,2);
symbol=Symbol( );
p=Period( );
point=Point;
if (period<2)period=2;
if (period_OI_Index<2)period_OI_Index=2;
if (period_Movement_Index>=period)period_Movement_Index=period-1;
int q[13];
string terf[13];
xgs="Willco";
for (int o=0; o<13; o++)
{
if (o==0 && COT_Index==true)
{
q[o]=1;
terf[o]="\"COT_Index\"";
xgs="COT";
}
if (o==1 && Net==true)
{
q[o]=1;
terf[o]="\"Net\"";
xgs="Net";
}
if (o==2 && OI_==true && Long==false && Short==false)
{
q[o]=1;
terf[o]="\"OI_\"";
xgs="OI";
}
if (o==3 && Long==true)
{
q[o]=1;
terf[o] ="\"Long\"";
xgs="Long";
}
if (o==4 && Short==true)
{
q[o]=1;
terf[o]="\"Short\"";
xgs="Short";
}
if (o==5 && OI_==true && Long==true)
{
q[o]=1;
q[3]=0;
terf[o]="\"Long\"";
xgs="Long";
}
if (o==6 && OI_==true && Short==true)
{
q[o]=1;
q[4]=0;
terf[o]="\"Short\"";
xgs="Short";
}
if (o==7 && Net_Pct==true)
{
q[o]=1;
terf[o]="\"Net_Pct\"";
xgs="NetPct";
}
if (o==8 && Long_Pct==true)
{
q[o]=1;
terf[o]="\"Long_Pct\"";
xgs="LoPct";
}
if (o==9 && Short_Pct==true)
{
q[o]=1;
terf[o]="\"Short_Pct\"";
xgs="ShPct";
}
if (o==10 && Movement_Index==true)
{
q[o]=1;
terf[o]="\"Movement_Index\"";
xgs="MovInd";
}
if (o==11 && Spread_Movement_Index==true)
{
q[o]=1;
terf[o]="\"Spread_Movement_Index\"";
xgs="SpMvIn";
}
if (o==12 && COT_Index==false && OI_Index==true)
{
q[o]=1;
q[0]=0;
terf[o]="\"OI_Index\"";
}
}
//----
string sg=" ";
string dg;
for (o=0; o<13; o++)
{
if (q[o]==1)
{
rq++;
if (rq==1)dg=terf[o];
if (rq==2)
{
sg="Îòêëþ÷èòå "+dg+" èëè "+terf[o]+"";
break;
}
}
}
if (p<PERIOD_H4 || p>PERIOD_W1)
{
sg="Ðàáî÷èå ïåðèîäû: Weekly, Daily è H4";
rq=2;
}
ObjectSetText("G02YQ4LAd7Jk",""+sg+"",9,"Verdana",DarkOrange);
return(0);
}
//----
int deinit( )
{
GlobalVariableDel(code);
return(0);
}
//----
int start( )
{
if (rq>1)return(0);
if (GlobalVariableGet("Update all files code.txt")==1)
{
for (int i=0; i<GlobalVariablesTotal( ); i++)
{
string name=GlobalVariableName(i);
if (name!="000000")GlobalVariableSet(name,1);
}
}
GlobalVariableSet("Update all files code.txt",0);
int keo=GlobalVariableGet(code);
int oe=GlobalVariableGet("Create a file "+code+".txt ?");
int ac=GlobalVariableGet("000000");
string File_Name_1="A.txt";
string File_Name_2="B.txt";
string File_Name_3="C.txt";
string File_Name_4="D.txt";
string File_Name_5="E.txt";
string File_Name_6="F.txt";
string File_Name_7="G.txt";
string File_Name_8="H.txt";
string File_Name_9="I.txt";
string File_Name_10="J.txt";
double iO,g0,g1,g2,g3;
string x1,e1,e2,File_Write_Name,File_Read_Name,day,month,year,n,to,s;
int e,y,Handle,f,n4,n3,n8,n9,n10,n12,n13,n16,n17,total,err,error,A,k,d,MaxIdx,MinIdx,b,io,c,q;
if (v!=1)
{
az=0;
zi=-1;
rr=1;
if (turn_chart==true)
{
az=1;
zi=1;
rr=-1;
}
string symb[]={"GBPUSD","AUDUSD","EURUSD","NZDUSD","XAUUSD","GOLD","XAGUSD","SILVER","USDCAD","USDCHF","USDJPY"};
string cd[]={"096742","232741","099741","112741","088691","088691","084691","084691","090741","092741","097741"};
int xaz[]={0,0,0,0,0,0,0,0,1,1,1};
int yzi[]={-1,-1,-1,-1,-1,-1,-1,-1,1,1,1};
for(i=ArraySize(symb)-1; i>=0; i--)
{
if (symb[i]==symbol)
{
code=cd[i];
az=xaz[i];
zi=yzi[i];
break;
}
}
//NIKKEI STOCK AVERAGE YEN DENOM - CHICAGO MERCANTILE EXCHANGE
if(StringSubstr(symbol,0,3)=="NKD")
{
code="240743";
az=0;
zi=-1;
}
//SUGAR NO. 11 - ICE FUTURES U.S
if(StringSubstr(symbol,0,2)=="SB")
{
code="080732";
az=0;
zi=-1;
}
v=1;
}
//----------------------------------------------- Block 2
i=0;
if (code=="Enter_code" && ObjectFind("IR8e23Ss7G59")==-1)
{
if (hi!=1)
{
Alert("WILLCO_4 Ïîæàëóéñòà ââåäèòå êîä ôüþ÷åðñà");
hi=1;
}
return(0);
}
//----
if (ac!=2)
{
GlobalVariableSet("000000",2);
Handle=FileOpen("A.txt",FILE_CSV|FILE_READ,",");
if (Handle<0)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
Alert("WILLCO_4 Ôàéë A.txt íå íàéäåí. ",
"\nÏîæàëóéñòà óäàëèòå ãëîáàëüíóþ ïåðåìåííóþ \"000000\" ",
"\nè ïîâòîðèòå ïîïûòêó Block 2A"); // Block 2A
}
else
{
if(error!=0)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå îòêðûòü ôàéë A.txt ",
"\nÏîæàëóéñòà óäàëèòå ãëîáàëüíóþ ïåðåìåííóþ \"000000\" ",
"\nè ïîâòîðèòå ïîïûòêó Block 2B"); // Block 2B
}
}
z=1;
hi=1;
FileClose(Handle);
return(0);
}
else
{
if (Handle>0)
{
while(FileIsEnding(Handle)==false)
{
total++;
i++;
if (i==8 && total>=130)FileSeek(Handle,500,SEEK_CUR);
s=FileReadString(Handle);
if (total<=7)
{
if (s=="\""+Column_1+"\"")n4=i;
if (n4!=0)total=8;
if (total==7)
{
Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"CFTC Contract Market Code\" èçìåíåíî CFTC!");
FileClose(Handle);
z=1;
hi=1;
break;
return(0);
}
}
if ( (i==4 || i==5 || i==6) && total>=130)
{
e1=StringTrimRight(s);
e2=StringTrimLeft(s);
if (StringLen(e1)==6)
{
k++;
F[k]=e1;
if(F[k-1]!=F[k])
{
sz++;
R[sz]=e1;
}
}
else
{
if (StringLen(e2)==6)
{
k++;
F[k]=e2;
if (F[k-1]!=F[k])
{
sz++;
R[sz]=e2;
}
}
}
}
if (FileIsLineEnding(Handle)==true)i=0;
if (FileIsEnding(Handle)==true)break;
}
FileClose(Handle);
total=0;
i=0;
k=0;
z=0;
hi=0;
}
}
//--------------------------------------------------
Handle=FileOpen("Codes.txt",FILE_CSV|FILE_WRITE,",");
if (Handle<0)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
Alert("WILLCO_4 Ôàéë Codes.txt íå íàéäåí. ",
"\nÏîæàëóéñòà óäàëèòå ãëîáàëüíóþ ïåðåìåííóþ \"000000\" ",
"\nè ïîâòîðèòå ïîïûòêó Block 2Ñ"); // Block 2Ñ
}
else
{
if (error!=0)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå ñîçäàòü ôàéë Codes.txt ",
"\nÏîæàëóéñòà óäàëèòå ãëîáàëüíóþ ïåðåìåííóþ \"000000\" ",
"\nè ïîâòîðèòå ïîïûòêó Block 2D"); // Block 2D
}
}
hi=1;
z=1;
FileClose(Handle);
return(0);
}
else
{
if(Handle>0)
{
for (i=1; i<=sz; i++)
{
y=FileWrite(Handle,R[i]);
if (y<0)
{
Alert("WILLCO_4 Îøèáêà: "+GetLastError( )+" ïðè çàïèñè ôàéëà Codes.txt. ",
"\nÏîæàëóéñòà óäàëèòå ãëîáàëüíóþ ïåðåìåííóþ \"000000\" ",
"\nè ïîâòîðèòå ïîïûòêó Block 2E"); // Block 2E
FileClose(Handle);
z=1;
hi=1;
break;
return(0);
}
}
FileClose(Handle);
Alert("WILLCO_4 Ôàéë Codes.txt ñîçäàí. Êîëè÷åñòâî êîäîâ "+sz+"");
hi=0;
z=0;
}
}
}
//-----------------------------------------
if (hi!=1 && ObjectFind("IR8e23Ss7G59")==-1)
{
Handle=FileOpen("Codes.txt",FILE_CSV|FILE_READ,",");
if (Handle<0)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
Alert("WILLCO_4 Ôàéë Codes.txt íå íàéäåí. ",
"\nÏîæàëóéñòà óäàëèòå ãëîáàëüíóþ ïåðåìåííóþ ",
"n\"000000\" è ïîâòîðèòå ïîïûòêó Block 2F"); // Block 2F
}
else
{
if (error!=0)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå îòêðûòü ôàéë Codes.txt Block 2G"); // Block 2G
}
}
z=1;
FileClose(Handle);
return(0);
}
else
{
if (Handle>0)
{
while(FileIsEnding(Handle)==false)
{
if (code==FileReadString(Handle) )
{
ObjectCreate("IR8e23Ss7G59",OBJ_LABEL,1,0,0,0,0,0,0);
ObjectSet("IR8e23Ss7G59",OBJPROP_XDISTANCE,44);
ObjectSet("IR8e23Ss7G59",OBJPROP_YDISTANCE,31);
ObjectSetText("IR8e23Ss7G59"," "+code+" ",12,"Verdana",LightSlateGray);
break;
}
if (FileIsEnding(Handle)==true)break;
}
z=0;
FileClose(Handle);
}
}
//----
if (ObjectFind("IR8e23Ss7G59")==-1)
{
Alert("WILLCO_4 Áûë ââåäåí íåâåðíûé êîä ", code,
"\n. Ïîæàëóéñòà ââåäèòå ïðàâèëüíûé êîä. ",
"\nÏðè ïîâòîðíîì ïîÿâëåíèè ýòîãî ñîîáùåíèÿ âåðîÿòíî ",
"\nêîä â îò÷åòå áûë èçìåíåí");
hi=1;
return(0);
}
hi=1;
}
//-------------------------- Block 3
if (keo==1 || oe==1)
{
if (ObjectFind("IR8e23Ss7G59")==-1)
{
z=1;
return(0);
}
n4=0;
i=0;
string qi1=StringTrimLeft(ObjectDescription("IR8e23Ss7G59") );
code=StringTrimRight(qi1);
if (keo==1)
{
File_Read_Name=code+".txt";
Handle=FileOpen(File_Read_Name,FILE_CSV|FILE_READ,",");
FileSeek(Handle,-130,SEEK_END);
if (Handle>0)
{
while(i<35)
{
i++;
data[i]=FileReadNumber(Handle);
if (FileIsLineEnding(Handle)==true)
{
if (data[i]==0)
{
datetime ff=data[i-14];
break;
}
}
}
FileClose(Handle);
}
else
{
if (Handle<0)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
Alert("WILLCO_4 Ôàéë "+File_Read_Name+" íå íàéäåí Block 3A"); // Block 3A
}
else
{
if (error!=0)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå îòêðûòü ôàéë "+File_Read_Name+" Block 3B"); // Block 3B
}
}
z=1;
FileClose(Handle);
GlobalVariableSet(code,0);
return(0);
}
}
}
//---------------------------------------- Block 4
i=0;
if (keo==1)GlobalVariableSet(code,0);
if (oe==1)
{
A=9;
GlobalVariableDel("Create a file "+code+".txt ?");
}
while(err<=A)
{
if (err==0)x1=File_Name_1;
if (err==1)x1=File_Name_2;
if (err==2)x1=File_Name_3;
if (err==3)x1=File_Name_4;
if (err==4)x1=File_Name_5;
if (err==5)x1=File_Name_6;
if (err==6)x1=File_Name_7;
if (err==7)x1=File_Name_8;
if (err==8)x1=File_Name_9;
if (err==9)x1=File_Name_10;
Handle=FileOpen(x1,FILE_CSV|FILE_READ,",");
if(Handle<0)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
Alert("WILLCO_4 Ôàéë "+x1+" íå íàéäåí Block 4A"); // Block 4A
}
else
{
if (error!=0)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå îòêðûòü ôàéë "+x1+" Block 4B"); // Block 4B
}
}
z=1;
FileClose(Handle);
break;
return(0);
}
else
{
if(Handle>0)
{
while(FileIsEnding(Handle)==false)
{
total++;
i++;
if (i==20 && total>=130)FileSeek(Handle,500,SEEK_CUR);
TEXT[i]=FileReadString(Handle);
string 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 (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_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"CFTC Contract Market Code\" èçìåíåíî CFTC!");
if (n3==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"As of Date in Form YYYY-MM-DD\" èçìåíåíî CFTC!");
if (n8==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Open Interest (All)\" èçìåíåíî CFTC!");
if (n9==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Noncommercial Positions-Long (All)\" èçìåíåíî CFTC!");
if (n10==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Noncommercial Positions-Short (All)\" èçìåíåíî CFTC!");
if (n12==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Commercial Positions-Long (All)\" èçìåíåíî CFTC!");
if (n13==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Commercial Positions-Short (All)\" èçìåíåíî CFTC!");
if (n16==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Nonreportable Positions-Long (All)\" èçìåíåíî CFTC!");
if (n17==0)Alert("WILLCO_4 Âíèìàíèå! Íàçâàíèå êîëîíêè \"Nonreportable Positions-Short (All)\" èçìåíåíî CFTC!");
z=1;
break;
FileClose(Handle);
return(0);
}
}
//--------------
if (i>2 && e==0)
{
if (StringTrimLeft(text)==code || StringTrimRight(text)==code)e=i;
}
//----
if (q<289 && c==0)
{
if (StringLen(text)<9 && i>1)
{
c=1;
q++;
y=StrToInteger(text);
if (y>f)f=y;
}
}
//----
if (i==20 && e!=0)
{
k++;
error=1;
int de=e-n4;
iO=StrToDouble(TEXT[n8+de]);
n=TEXT[1];
if (de!=0)n=TEXT[1]+", "+TEXT[2];
O[k]=iO;
L1[k]=StrToDouble(TEXT[n9+de]);
L2[k]=StrToDouble(TEXT[n12+de]);
L3[k]=StrToDouble(TEXT[n16+de]);
S1[k]=StrToDouble(TEXT[n10+de]);
S2[k]=StrToDouble(TEXT[n13+de]);
S3[k]=StrToDouble(TEXT[n17+de]);
CO1[k]=L1[k]-S1[k];
CO2[k]=L2[k]-S2[k];
CO3[k]=L3[k]-S3[k];
E1[k]=NormalizeDouble(100*CO1[k]/iO,4);
E2[k]=NormalizeDouble(100*CO2[k]/iO,4);
E3[k]=NormalizeDouble(100*CO3[k]/iO,4);
day=StringSubstr(TEXT[n3+de],8,2);
month=StringSubstr(TEXT[n3+de],5,2);
year=StringSubstr(TEXT[n3+de],0,4);
DATE[k]=StrToTime(""+year+"."+month+"."+day+"");
int xf=(DATE[1]-ff)/604800;
}
e1=StringTrimRight(TEXT[e]);
e2=StringTrimLeft(TEXT[e]);
if (e1!=code && e2!=code && error==1)
{
error=0;
break;
}
if (xf+1==k && keo==1)break;
if (FileIsLineEnding(Handle)==true)
{
i=0;
c=0;
}
if (FileIsEnding(Handle)==true)break;
}
FileClose(Handle);
}
}
err++;
e=0;
}
//----
string ed=f;
string o1=StringSubstr(ed,4,2);
string o2=StringSubstr(ed,2,2);
string o3=StringSubstr(ed,0,2);
datetime u=StrToTime("20"+""+o3+"."+o2+"."+o1+"");
if (DATE[1]<u)Alert("WILLCO_4 Äëÿ äàòû "+TimeToStr(u,TIME_DATE)+" åæåíåäåëüíûé îò÷åò ïî ôüþ÷åðñó "+n+" íå îïóáëèêîâàí");
//------------------------------------------------------------------------ Block 5
int E=FILE_READ;
if (oe==1)E=FILE_CSV;
File_Write_Name=code+".txt";
Handle=FileOpen(File_Write_Name,E|FILE_WRITE,",");
if(Handle==-1)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
Alert("WILLCO_4 Ôàéë "+File_Write_Name+" íå íàéäåí Block 5A"); // Block 5A
}
else
{
if (error!=0)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå ñîçäàòü ôàéë "+File_Write_Name+" Block 5B"); // Block 5B
}
}
FileClose(Handle);
z=1;
return(0);
}
//----
if (oe==1)
{
for (i=k; i>0; i--)
{
y=FileWrite(Handle,DATE[i],O[i],E1[i],E2[i],E3[i],CO1[i],CO2[i],CO3[i],L1[i],L2[i],L3[i],S1[i],S2[i],S3[i]);
if (y<0)
{
Alert("WILLCO_4 Îøèáêà: "+GetLastError( )+" ïðè çàïèñè â ôàéë "+File_Write_Name+" Block 5C"); // Block 5C
z=1;
FileClose(Handle);
break;
return(0);
}
}
Alert("WILLCO_4 Ôàéë "+File_Write_Name+" óñïåøíî ñîçäàí ",
"\nè ñîäåðæèò äàííûå äëÿ "+k+" íåäåëü, ",
"\nÏî ôüþ÷åðñó "+n+". ",
"\nÏîñëåäíèé îò÷åò "+TimeToStr(DATE[1],TIME_DATE)+"");
GlobalVariableSet(code,0);
z=0;
}
else
{
if (keo==1 && xf>0)
{
FileSeek(Handle,0,SEEK_END);
for (i=xf; i>0; i--)
{
y=FileWrite(Handle,DATE[i],O[i],E1[i],E2[i],E3[i],CO1[i],CO2[i],CO3[i],L1[i],L2[i],L3[i],S1[i],S2[i],S3[i]);
if (y<0)
{
Alert("WILLCO_4 Îøèáêà: "+GetLastError( )+" ïðè äîçàïèñè â ôàéë "+File_Write_Name+" Block 5D"); // Block 5D
z=1;
FileClose(Handle);
break;
return(0);
}
}
Alert("WILLCO_4 Ôàéë "+File_Write_Name+" óñïåøíî îáíîâëåí. ",
"\nÄîãðóæåíî åæåíåäåëüíûõ îò÷åòîâ "+xf+". ",
"\nÏî ôüþ÷åðñó "+n+". ",
"\nÏîñëåäíèé îò÷åò "+TimeToStr(DATE[1],TIME_DATE)+"");
z=0;
}
}
if (keo==1 && xf==0)
{
Alert("WILLCO_4 Îáíîâëåíèå ôàéëà "+File_Write_Name+" ïî ôüþ÷åðñó "+n+" åùå íå òðåáóåòñÿ");
FileClose(Handle);
return(0);
}
FileClose(Handle);
}
//--------------------------------------------- Block 6
if (z!=1 || xf>0)
{
io=0;
i=0;
y=0;
qi1=StringTrimLeft(ObjectDescription("IR8e23Ss7G59") );
code=StringTrimRight(qi1);
File_Read_Name=code+".txt";
Handle=FileOpen(File_Read_Name,FILE_CSV|FILE_READ,",");
if (Handle>0)
{
x=0;
while(FileIsEnding(Handle)==false)
{
FileReadNumber(Handle);
if (FileIsLineEnding(Handle)==true)
{
i++;
FileSeek(Handle,67,SEEK_CUR);
}
if (FileIsEnding(Handle)==true)break;
}
FileSeek(Handle,0,SEEK_SET);
while(FileIsEnding(Handle)==false)
{
y++;
value[y]=FileReadNumber(Handle);
if (y==14)
{
io++;
k=i-io;
DA[k]=value[1];
OI[k]=value[2];
X1[k]=value[3];
X2[k]=value[4];
X3[k]=value[5];
C1[k]=value[6];
C2[k]=value[7];
C3[k]=value[8];
LO1[k]=value[9];
LO2[k]=value[10];
LO3[k]=value[11];
SH1[k]=value[12];
SH2[k]=value[13];
SH3[k]=value[14];
}
if (FileIsLineEnding(Handle)==true)y=0;
if (FileIsEnding(Handle)==true)break;
}
hist=io;
GlobalVariableSet(code,0);
}
else
{
if (Handle<0)
{
error=GetLastError( );
if (error==4103 || error==5004)
{
if (x!=1)
{
Alert("WILLCO_4 Ïîæàëóéñòà äîæäèòåñü ïðèõîäà òèêà, èëè ",
"\níàæìèòå êíîïêó Refresh(Îáíîâèòü) îáíîâëåíèÿ ãðàôèêà. ",
"\nÑîçäàíèå ôàéëà çàíèìàåò 2-8 ñåêóíä");
GlobalVariableSet("Create a file "+code+".txt ?",1);
}
}
else
{
if(error!=0 && x!=1)
{
Alert("WILLCO_4 Îøèáêà: "+error+" ïðè ïîïûòêå îòêðûòü ôàéë "+File_Read_Name+" Block 6"); // Block 6
}
}
x=1;
}
}
z=1;
FileClose(Handle);
}
if (x==1)return(0);
//-----------------
double high=High[0];
double low=Low[0];
if (T!=Time[0] || ext1!=high || ext2!=low || hh>0 || xf>0)
{
hh--;
T=Time[0];
ext1=high;
ext2=low;
int l=period_OI_Index;
if (Spread_Movement_Index==true)l=period;
bool t0=false;
if (Net_Pct==false && Net==false && OI_==false && Long_Pct==false
&& Short_Pct==false && Long==false && Short==false)t0=true;
bool t1=false;
if (COT_Index==false && t0==true && Movement_Index==false && Spread_Movement_Index==false)t1=true;
bool t2=false;
if (Long==true || Short==true || Net==true || Long_Pct==true || Short_Pct==true || Net_Pct==true)t2=true;
bool t3=false;
if (Movement_Index==true || Spread_Movement_Index==true)t3=true;
bool t4=false;
if (OI_Index==true || Spread_Movement_Index==true)t4=true;
bool t5=false;
if (COT_Index==true || t3==true)t5=true;
for (i=0; i<Bars; i++)
{
datetime time=Time[i];
if (time<=DA[d])
{
q=0;
for (y=1; y<26; y++)
{
if (time>DA[d+y])
{
break;
}
else
{
if (time<=DA[d+y])
{
q++;
}
}
}
d=d+q;
//----
if (t4==true)
{
MaxIdx=ArrayMaximum(OI,l,d);
MinIdx=ArrayMinimum(OI,l,d);
g3=100*(OI[d]-OI[MinIdx])/(OI[MaxIdx]-OI[MinIdx]);
if (Spread_Movement_Index==true)
{
b=d+period_Movement_Index;
MaxIdx=ArrayMaximum(OI,period,b);
MinIdx=ArrayMinimum(OI,period,b);
g3=g3-100*(OI[b]-OI[MinIdx])/(OI[MaxIdx]-OI[MinIdx]);
}
}
//----
if (t1==true)
{
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]);
}
//----
if (t5==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]);
if (t3==true)
{
b=d+period_Movement_Index;
MaxIdx=ArrayMaximum(C1,period,b);
MinIdx=ArrayMinimum(C1,period,b);
g0=g0-100*az+100*zi*(C1[b]-C1[MinIdx])/(C1[MaxIdx]-C1[MinIdx]);
MaxIdx=ArrayMaximum(C2,period,b);
MinIdx=ArrayMinimum(C2,period,b);
g1=g1-100*az+100*zi*(C2[b]-C2[MinIdx])/(C2[MaxIdx]-C2[MinIdx]);
MaxIdx=ArrayMaximum(C3,period,b);
MinIdx=ArrayMinimum(C3,period,b);
g2=g2-100*az+100*zi*(C3[b]-C3[MinIdx])/(C3[MaxIdx]-C3[MinIdx]);
if (Spread_Movement_Index==true)
{
g0=g0-g3;
g1=g1-g3;
g2=g2-g3;
}
}
}
//----
if (OI_==true)g3=OI[d];
if (Long==true)
{
g0=rr*LO1[d];
g1=rr*LO2[d];
g2=rr*LO3[d];
}
//----
if (Short==true)
{
g0=rr*SH1[d];
g1=rr*SH2[d];
g2=rr*SH3[d];
}
//----
if (Net==true)
{
g0=rr*C1[d];
g1=rr*C2[d];
g2=rr*C3[d];
}
//----
if (Long_Pct==true)
{
g0=rr*100*LO1[d]/OI[d];
g1=rr*100*LO2[d]/OI[d];
g2=rr*100*LO3[d]/OI[d];
}
//----
if (Short_Pct==true)
{
g0=rr*100*SH1[d]/OI[d];
g1=rr*100*SH2[d]/OI[d];
g2=rr*100*SH3[d]/OI[d];
}
//----
if (Net_Pct==true)
{
g0=rr*X1[d];
g1=rr*X2[d];
g2=rr*X3[d];
}
d++;
}
//----
if (d>0)
{
if (OI_Index==true && d<=io-l)Buffer3[i]=g3;
if (t0==true)
{
Buffer0[i]=g0;
Buffer1[i]=g1;
Buffer2[i]=g2;
Buffer4[i]=100;
Buffer5[i]=50;
Buffer6[i]=0;
if (t3==true)
{
Buffer0[i]=g0;
Buffer1[i]=g1;
Buffer2[i]=g2;
if (Movement_Index==true)
{
Buffer4[i]=40;
Buffer5[i]=0;
Buffer6[i]=-40;
}
else
{
if (Spread_Movement_Index==true)
{
Buffer4[i]=60;
Buffer5[i]=0;
Buffer6[i]=-60;
}
}
}
if (d>=io-period)break;
}
else
{
if (t0==false)
{
if (OI_==true)
{
Buffer3[i]=g3;
Buffer6[i]=0;
}
if (t2==true)
{
Buffer0[i]=g0;
Buffer1[i]=g1;
Buffer2[i]=g2;
Buffer6[i]=0;
}
if (d>=io)break;
}
}
}
}
//----
b=2;
to="("+period+")";
if (OI_==true || Net==true || Long == true || Short==true)
{
b=0;
to="";
}
if (Net_Pct==true || Long_Pct==true || Short_Pct==true)to="";
IndicatorDigits(b);
name=xgs+to;
IndicatorShortName(""+name+". History "+hist+" weeks. Last report "+TimeToStr(DA[0],TIME_DATE)+" ");
SetIndexLabel(0,name + " Noncommercial");
SetIndexLabel(1,name + " Commercial");
SetIndexLabel(2,name + " Nonreportable");
name="OI_Index("+period_OI_Index+")";
if (OI_==true)name="OI";
SetIndexLabel(3,name);
if (p<PERIOD_D1)return(0);
g1=1000;
g0=0;
for (i=4; i>0; i--)
{
iO=High[i]-Low[i];
if (g1>iO)
{
g1=iO;
if (i==1)g0=g1;
}
}
g1=0;
if (AR_period>Bars-1)AR_period=Bars-1;
for (i=AR_period; i>0; i--)
{
g1=g1+High[i]-Low[i];
}
g2=g1/AR_period;
x1=" ";
if (point==0)return(0);
if (g0!=0)x1=" MR4 = "+DoubleToStr(g0/point,0);
text=DoubleToStr(0.01*AR_percent,2)+"*AR("+AR_period +") = "+DoubleToStr(0.01*AR_percent*g2/point,0);
if (ObjectFind("X18E3FH2wDar1")==-1)
{
ObjectCreate("X18E3FH2wDar1",OBJ_LABEL,1,0,0,0,0,0,0);
ObjectSet("X18E3FH2wDar1",OBJPROP_XDISTANCE,0);
ObjectSet("X18E3FH2wDar1",OBJPROP_YDISTANCE,15);
ObjectCreate("gK01R4VBh1",OBJ_LABEL,1,0,0,0,0,0,0);
ObjectSet("gK01R4VBh1",OBJPROP_XDISTANCE,0);
ObjectSet("gK01R4VBh1",OBJPROP_YDISTANCE,29);
ObjectCreate("Qi2uC6ZM3J0l1",OBJ_LABEL,1,0,0,0,0,0,0);
ObjectSet("Qi2uC6ZM3J0l1",OBJPROP_XDISTANCE,0);
ObjectSet("Qi2uC6ZM3J0l1",OBJPROP_YDISTANCE,53);
}
ObjectSetText("X18E3FH2wDar1"," "+text+" "+x1+"",10,"Verdana",LightSlateGray);
if (g2==0)return(0);
iO=100*(high-Open[0])/g2;
g0=100*(Open[0]-low)/g2;
text=DoubleToStr(iO,0);
name=DoubleToStr(g0,0);
ObjectSetText("gK01R4VBh1"," "+text+" ",13,"Verdana",C'0,191,0');
ObjectSetText("Qi2uC6ZM3J0l1"," "+name+"",13,"Verdana",C'255,108,53');
}
return(0);
}
Comments