//+------------------------------------------------------------------+ //| FUNCTION LIBRARY FOR INDICATORS SET | //+------------------------------------------------------------------+ int Combo(int offset, int lastbar, double &longsignalbuf[], double &shortsignalbuf[], double &neutralbuffer[], int lgecho, int colthreshold) { int val, jval, tval, sval, aval2, lvalidx= 0, lval= 0, avalidx= 0, aval= 0; double trend,dummy1[100], dummy2[100], dummy3[100], dummy4[100], dummy5[100], dummy6[100],result; if (lastbar>Bars) lastbar= Bars; lvalidx= 0; lval= 0; avalidx= 0; aval= 0; for (int i= lastbar+lgecho+1; i>=offset; i--) { trend= ITrend(i, i+10, dummy1, dummy2, dummy3, dummy4, 20, 2, 13); if (trend<0) sval= -1; if (trend>0) tval= 1; else if (trend<0) tval= -1; val= jval * (sval + tval + lval + aval2); if (i<=lastbar) { if (val>=colthreshold) longsignalbuf[i]= val; else if (val<=-colthreshold) shortsignalbuf[i]= val; else neutralbuffer[i]= val; } } return (val); } //+------------------------------------------------------------------+ //| Custom indicator beef function ( Trend.mq4 ) | //+------------------------------------------------------------------+ double ITrend(int offset, int lastbar, double &value1[], double &value2[], double &histo1[], double &histo2[], int bperiod= 20, int bdevi= 2, int pperiod= 13) { int i, bandsmode, Price_Type_0_3= 0; double powerprice, currentprice, v1, v2, diff= 0; if (lastbar>Bars) lastbar= Bars; for (i= lastbar; i>=offset; i--) { switch (Price_Type_0_3) { case 1: currentprice= Open[i]; break; case 2: currentprice= High[i]; break; case 3: currentprice= Low[i]; break; case 0: default: currentprice= Close[i]; break; } v1= currentprice - iBands(NULL,0, bperiod, bdevi, 0, bandsmode, powerprice, i); v2= -(iBearsPower(NULL,0, pperiod, powerprice,i) + iBullsPower(NULL,0,pperiod,powerprice,i)); value1[i]= v1; value2[i]= v2; diff= v1 - v2; histo1[i]= 0; histo2[i]= 0; if (diff>0) histo1[i]= diff; else if (diff<0) histo2[i]= diff; } }