#property copyright "TMS BGtrend"
#property link      "" 
#property indicator_chart_window
#property indicator_buffers 0
extern string B="Background settings";
extern int Ydistance=0;
extern int Xdistance=0;
extern color Colorup = DarkSeaGreen;
extern color Colordown = Plum;
extern int SMA=5;
extern int StochK=8;  
extern int StochD=3;  
extern int StochSlow=3;  
extern int StochUp=80;  
extern int StochDown=20; 
#define SIG_NO 0
#define SIG_UP 1
#define SIG_DN 2

#define TDI_INDI "TDI_RT"
extern string    TDISettings="TDI settings";
extern int       TDIRSIPeriod=13;             // Period. Recomended values: 8-25
extern int       TDIRSIPrice=0;               // 0=CLOSE, 1=OPEN, 2=HIGH, 3=LOW, 4=MEDIAN, 5=TYPICAL, 6=WEIGHTED
extern int       TDIVolatilityBand=34;        // Recomended values: 20-40
extern int       TDIRSIPriceLine=2;           // Period
extern int       TDIRSIPriceType=0;           // 0=SMA, 1=EMA, 2=SSMA, 3=LWMA
extern int       TDITradeSignalLine=7;        // Period
extern int       TDITradeSignalType=0;        // 0=SMA, 1=EMA, 2=SSMA, 3=LWMA
int init()
{    
   return( 0 );
}

int deinit()
{
   ObjectDelete( "RFXbt" );
   return( 0 );
}

int TDICrossSig(int i) {
  double dRSIPriceLine0;
  double dTradeSignalLine0;
  
  dRSIPriceLine0=iCustom(NULL,PERIOD_D1,TDI_INDI,TDIRSIPeriod,TDIRSIPrice,TDIVolatilityBand,TDIRSIPriceLine,
                        TDIRSIPriceType,TDITradeSignalLine,TDITradeSignalType,4,i);     // Green line
  dTradeSignalLine0=iCustom(NULL,PERIOD_D1,TDI_INDI,TDIRSIPeriod,TDIRSIPrice,TDIVolatilityBand,TDIRSIPriceLine,
                           TDIRSIPriceType,TDITradeSignalLine,TDITradeSignalType,5,i);  // Red line
   if (dRSIPriceLine0>dTradeSignalLine0)
    return(SIG_UP);
  else if (dRSIPriceLine0<dTradeSignalLine0)
    return(SIG_DN);
  else
    return(SIG_NO);

}            
int start()
{      
   if ( ObjectFind( "RFXbt" ) == -1 )   ObjectCreate( "RFXbt", OBJ_LABEL, 0, 0, 0 );      
   
   ObjectSet( "RFXbt", OBJPROP_XDISTANCE, Xdistance);
   ObjectSet( "RFXbt", OBJPROP_YDISTANCE, Ydistance);  
   ObjectSet( "RFXbt", OBJPROP_CORNER, 0);    
   ObjectSet( "RFXbt", OBJPROP_BACK, true );    
   double HAOPENd = iCustom(NULL,PERIOD_D1,"Heiken Ashi",Red,White,Red,White,2,0);
double HACLOSEd = iCustom(NULL,PERIOD_D1,"Heiken Ashi",Red,White,Red,White,3,0);
double HAOPEN = iCustom(NULL,0,"Heiken Ashi",Red,White,Red,White,2,0);
double HACLOSE = iCustom(NULL,0,"Heiken Ashi",Red,White,Red,White,3,0);

double ema=iMA(NULL,0,SMA,2,MODE_SMA,PRICE_TYPICAL,0);

double stochm=iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,1,MODE_MAIN,0);
double stochs=iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,1,MODE_SIGNAL,0);
   if (HAOPENd<HACLOSEd && HAOPEN<HACLOSE && (TDICrossSig(1)==SIG_UP) && (stochm>stochs) && (stochm<StochUp) && (Close[1]>ema))    ObjectSetText("RFXbt", "ggg", 600, "Webdings", Colorup);
   if (HAOPENd>HACLOSEd && HAOPEN>HACLOSE && (TDICrossSig(1)==SIG_DN)  && (stochm<stochs) && (stochm>StochDown) && (Close[1]<ema))   ObjectSetText("RFXbt", "ggg", 600, "Webdings", Colordown);
      return(0);
}