//+------------------------------------------------------------------+ //| B&WImp-T01.mq4 | //| 30.08.2006 Translated on MT4 by Oleg Golozubov aka Maloma | //+------------------------------------------------------------------+ #property copyright " Copyright © 2006, HomeSoft-Tartan Corp." #property link " spiky@transkeino.ru - http:\\www.fxexpert.ru" #property indicator_separate_window #property indicator_color1 Lime #property indicator_buffers 1 #include extern double mBar=300; extern int per=96; extern double tr=3; extern double t3_period=8; extern double b=0.7; double Buffer[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0, DRAW_LINE, STYLE_SOLID); SetIndexBuffer(0, Buffer); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double impr[300]; double impb[300]; double e1=0; double e2=0; double e3=0; double e4=0; double e5=0; double e6=0; double c1=0; double c2=0; double c3=0; double c4=0; double n=0; double w1=0; double w2=0; double b2=0; double b3=0; int shift=0; double imppr=0; double imppb=0; int i=0; double sipr=0; double sipb=0; double null=0; double sum=0; double t3=0; b2=b*b; b3=b2*b; c1=-b3; c2=(3*(b2+b3)); c3=-3*(2*b2+b+b3); c4=(1+3*b+b3+3*b2); n=t3_period; if(n<1) n=1; n=1+0.5*(n-1); w1=2/(n+1); w2=1-w1; for(shift=Bars-1;shift>=0 ;shift--) Buffer[shift]=0; null=0.00001; for(shift=mBar;shift>=per;shift--) { imppr=0; imppb=0; for(i=shift;i>=shift-per;i--) { if(Close[i]>Open[i]) imppr=imppr+(Close[i]-Open[i]); if(Close[i]=0;shift--) { sipr=0; sipb=0; for(i=shift;i>=shift-tr ;i--) { sipr=sipr+impr[shift]; sipb=sipb+impb[shift]; } sipr=MathRound((sipr/tr)); sipb=MathRound((sipb/tr)); sum=sipr+sipb; e1=w1*sum+w2*e1; e2=w1*e1+w2*e2; e3=w1*e2+w2*e3; e4=w1*e3+w2*e4; e5=w1*e4+w2*e5; e6=w1*e5+w2*e6; t3=c1*e6+c2*e5+c3*e4+c4*e3; if(t3==0) t3=0.0001; if(t3!=0) Buffer[shift]=t3; } return(0); } //+------------------------------------------------------------------+