// ----------------------------------------------------------------- // RBCI // Dmitry Yakovlev // dmitry_yakovlev@rambler.ru // WebMoney R865705290089 //------------------------------------------------------------------ // Parameters DF: // RBCI: P1=14, D1=10, A1=40, P2=32, D2=52, A2=40, Ripple=0.08, Delay=0 #property copyright "Dmitry Yakovlev, Russia,Omsk WM R865705290089" #property link "dmitry_yakovlev@rambler.ru" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red #property indicator_level1 0 #import "shell32.dll" //Connect a dll (provided with Windows) int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd); #import "user32.dll" int MessageBoxA(int hWnd ,string lpText,string lpCaption,int uType); //------------------------------------------------------------------------------------------------------ // ÏÀÐÀÌÅÒÐÛ extern string _tf="Òàéìôðåéì (0-òåêóùèé)"; extern int tf=0; extern string _pr="Öåíà 0-cl,1-op,2-hi,3-lo"; extern int pr=0; extern string _donate1="Äëÿ $ áëàãîäàðíîñòè:"; extern string _donate2="R865705290089"; //---- buffers double iBuffer[]; double F[]= { 2.691199613192,+1.626010900780,-1.195783921680,-4.77104086644122205,-7.78505413643392075,-9.03132310064053634,-7.80372779153282536, -4.13951827019609908,+1.163320991612,+6.76188191299163588,+11.15397741060046140,+13.11871699156124830,+12.07998148043546570, +8.28402535146624786,+2.737459922192,-3.075898404568,-7.61579112350057930,-9.72021669407401667,-8.92742584636437719,-5.59286994202296217, -0.770559771803,+4.10251622867368138,+7.62385544817771432,+8.82159223759700595,+7.41618031452429172,+3.87596007134544074, -0.742564511643,-5.11669038344058524,-8.04317046030676330,-8.77429260479948425,-7.20955807400883675,-3.89443194689721528, +0.1646559714947,+3.80806824912553266,+6.05852964426727514,+6.38719525085031226,+4.83722847765752562,+1.977522919617, -1.290686843428,-4.00984248438742785,-5.44080640209669131,-5.25749194937778253,-3.61082293993850500,-1.052962036727, +1.647947612134,+3.74045011527452687,+4.70038084514470800,+4.36068602221571044,+2.929629039256,+0.900339312952, -1.112672651372,-2.557150248486,-3.092822520665,-2.666781512071,-1.501233308425,-0.003076500490530,+1.369561632998, +2.241991878759,+2.419920555926,+1.924920789867,+0.963757414478,-0.1508117461647,-1.099668878826,-1.649038657672, -1.704949572457,-1.322805187425,-0.670969874791,+0.0316475200492,+0.583722801884,+0.855981672339,+0.818566806255, +0.533397368134,+0.1208537662723,-0.2795016073586,-0.557469981902,-0.654383076999,-0.573938828315,-0.368861404933, -0.1172590492627,+0.1048565890013,+0.2451946233721,+0.2856274359772,+0.486611923475 }; int FilterSize=0; //+------------------------------------------------------------------+ //| Digital filter indicator initialization function | //+------------------------------------------------------------------+ int init() { CheckDonate(); FilterSize=ArraySize(F); if(tf<Period()) tf=Period(); if(pr>1)pr=0; //---- indicator line IndicatorShortName("RBCI-"+tf); //---- indicator line SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,iBuffer); //---- return(0); } //+------------------------------------------------------------------+ double price(int i) { if(pr==0) return(iClose(Symbol(),tf,i)); else if(pr==1) return(iOpen(Symbol(),tf,i)); else if(pr==2) return(iHigh(Symbol(),tf,i)); else if(pr==3) return(iLow(Symbol(),tf,i)); } //+------------------------------------------------------------------+ int start() { int k, nn, nn1, i, j, counted_bars=IndicatorCounted(); int koef=(tf/Period()); double res=0, step=0; // <--- ðàñ÷èòûâàåì çíà÷åíèÿ èíäèêàòîðà if (FilterSize>0) { if(Bars<=FilterSize) return(0); //------------------------------- i=(Bars-counted_bars+FilterSize-1)/koef+1; //------------------------------- while(i>=0) { res=0; for (j=0; j<FilterSize; j++) res+=F[j]*price(i+j); nn=i*koef; if(nn!=-1) iBuffer[nn]=NormalizeDouble(res,Digits); nn1=(i+1)*koef; if(nn!=-1 && nn1!=-1 && iBuffer[nn1]!=EMPTY_VALUE && iBuffer[nn1]!=0) { step=(iBuffer[nn1]-iBuffer[nn])/koef; for(k=1;k<koef;k++) iBuffer[k+nn]=NormalizeDouble(iBuffer[nn]+step*k,Digits); } i--; } } else return; // ðàñ÷èòûâàåì --> //------------------------------------------------------------------------- return(0); } void CheckDonate() { int fd=0; string pay="0"; datetime dt=0; string fn="DigFlts1.txt"; fd=FileOpen(fn,FILE_READ|FILE_CSV,";"); if(fd>=1) { pay=FileReadString(fd); if(pay!="0" && pay!="1") pay="0"; dt=StrToTime(FileReadString(fd)); } else { dt=TimeCurrent(); fd=FileOpen(fn,FILE_WRITE|FILE_CSV,";"); FileWrite(fd,"0",TimeToStr(dt,TIME_DATE)); } FileClose(fd); if(pay=="0" && (TimeCurrent()-dt)>10*24*60*60) // 5 äíåé { if(MessageBoxA(0,"Åñëè Âàì ïîíðàâèëñÿ èíäèêàòîð RBCI,\n õîòèòå ïîìî÷ü àâòîðó ìàòåðèàëüíî?","Âîïðîñ",4)==6) { ShellExecuteA(0,"Open","iexplore.exe","wmk:payto?Purse=R865705290089&Amount=100&Desc=DigitalIndicators&BringToFront=Y&ExecEvenKeeperIsOffline=Y","",7); pay="1"; } dt=TimeCurrent(); fd=FileOpen(fn,FILE_WRITE|FILE_CSV,";"); FileWrite(fd,pay,TimeToStr(dt,TIME_DATE)); FileClose(fd); } FileClose(fd); }
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Series array that contains open prices of each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Custom Indicators Used:
shell32
user32
Order Management characteristics:
Other Features:
Uses files from the file system
It reads information from a file
It writes information to file