FLOAT#Data





//+------------------------------------------------------------------+
//|                                                   FLOAT#Data.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property copyright "Float converted from MT3 to MT4"
#property link      "http://www.4Africa.net/4meta/"
#property link      "Data Indicator window by cja" 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  DarkSlateGray
#property indicator_color2 Red

extern int float=100,use_fibos=0,Backtesting=0;
string short_name;

double f,c1,high_bar,Low_bar,bars_high,bars_low;
double cumulativeV,FLOATV,cumulativeV2,loopbegin2,swing;
double swingv,loopbegin1,cnt,prevbars;
double newcv,CV,CV2;
double fib23,fib38,fib50,fib62,fib76;
double dinap0,dinap1,dinap2,dinap3,dinap4,dinap5;
double CVL,CVL1,CVL2,CVL3,CVL4;
double Buffer1[];
double Buffer2[];

bool   first = true , first1 = true;

int shift,swing_time;
int cvstart,cvend,bar;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorBuffers(2);
   
   ObjectDelete("swingtop");
   ObjectDelete("swingbottom"); 
 
   ObjectDelete( "fib23" );
   ObjectDelete( "fib38" );
   ObjectDelete( "fib50" );
   ObjectDelete( "fib62" );
   ObjectDelete( "fib76" );

   ObjectDelete( "fib23t" );
   ObjectDelete( "fib38t" );
   ObjectDelete( "fib50t" );
   ObjectDelete( "fib62t" );
   ObjectDelete( "fib76t" );

   ObjectDelete( "dinap0" );
   ObjectDelete( "dinap1" );
   ObjectDelete( "dinap2" );
   ObjectDelete( "dinap3" );
   ObjectDelete( "dinap4" );
   ObjectDelete( "dinap5" );

   ObjectDelete("CVSTART");
   ObjectDelete("CVEND");
   ObjectDelete("swingend");
   ObjectDelete("swingend2");
   ObjectDelete("swingend3");
   ObjectDelete("swingend4");
   ObjectDelete("swingend5");
   ObjectDelete("swingend6");
   ObjectDelete("swingend7");
   ObjectDelete("swingend8");
   ObjectDelete("swingend9");
      
   
   IndicatorShortName("Float DATA");//("Float ("+float+") ");
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
   SetIndexBuffer(0,Buffer1);
   SetIndexDrawBegin(0,Buffer1);
   
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1 );
   SetIndexBuffer(1,Buffer2);
   SetIndexDrawBegin(1,Buffer2);

   return(0);
  }
  
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+

int deinit()
 {
 
ObjectDelete("swingtop");
ObjectDelete("swingbottom"); 
 
ObjectDelete( "fib23" );
ObjectDelete( "fib38" );
ObjectDelete( "fib50" );
ObjectDelete( "fib62" );
ObjectDelete( "fib76" );

ObjectDelete( "fib23t" );
ObjectDelete( "fib38t" );
ObjectDelete( "fib50t" );
ObjectDelete( "fib62t" );
ObjectDelete( "fib76t" );

ObjectDelete( "dinap0" );
ObjectDelete( "dinap1" );
ObjectDelete( "dinap2" );
ObjectDelete( "dinap3" );
ObjectDelete( "dinap4" );
ObjectDelete( "dinap5" );

ObjectDelete("CVSTART");
ObjectDelete("CVEND");
ObjectDelete("swingend");
ObjectDelete("swingend2");
ObjectDelete("swingend3");
ObjectDelete("swingend4");
ObjectDelete("swingend5");
ObjectDelete("swingend6");
ObjectDelete("swingend7");
ObjectDelete("swingend8");
ObjectDelete("swingend9");

Comment("");
  return(0);
 }
  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+


int start()
  {
 
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1); // Exit if na data
    
   cumulativeV=0;
   cumulativeV2=0;
   int SetLoopCount=0;
      
   if( Bars < prevbars || Bars-prevbars>1 ) //If 1
   {
    first = True;
    first1 = True;
    prevbars = Bars;
    FLOATV=0;

   if( first )                               //if 2
   {
	loopbegin1 = Bars-float-1;
	loopbegin2 = Bars-float-1;
	first = False;

   loopbegin1 = loopbegin1+1;

for( shift=loopbegin1;shift>=0;shift--)  //  for 1
{

//find high and low
high_bar = High[Highest(NULL,0,MODE_HIGH,float,1)]; 
Low_bar  =  Low[Lowest(NULL,0,MODE_LOW,float,1)]; 

//find bar counts
bars_high = Highest(NULL,0,MODE_HIGH,float,1);
bars_low  = Lowest(NULL,0,MODE_LOW,float,1);

//find swing price differance
swing = High[Highest(NULL,0,MODE_HIGH,float,1)] - Low[Lowest(NULL,0,MODE_LOW,float,1)];

//find float time barcount
swing_time = MathAbs(bars_low-bars_high);

//find cumulative volume for float period
if( bars_high < bars_low )
{
cvstart=bars_low;
cvend=bars_high;
}
else
{
cvstart=bars_high;
cvend=bars_low;
}

if( first1 && FLOATV == 0 )                       //   if   3
{

for( shift=cvstart;shift>=cvend;shift--)
{
FLOATV=FLOATV+Volume[shift];
first1 = False;}
}

}

//find cumulative volume since last turnover
for( shift=cvstart;shift>=0;shift--)         //  for    2
{
cumulativeV=cumulativeV+Volume[shift];

if( cumulativeV >= FLOATV )
{
cumulativeV=0;
}

Buffer1[shift] = cumulativeV*0.0001; //Blue
Buffer2[shift] = FLOATV*0.0001;      //Red
 // Float DATA window code
  double myFirstValue = high_bar;//High bar Price
  double mySecondValue = Low_bar;//Low bar Price
  double myThirdValue = bars_high*0.0001;//# of bars ago
  double myForthValue = bars_low*0.0001;//# of bars ago
  double myFifthValue = FLOATV*0.0001;                       //Float volume 
  double mySixthValue = swing_time; // Float Time was
  double mySeventhValue = FLOATV*0.0001 - cumulativeV*0.0001; //Float Vol left
 double myEigthValue = float; //float period
   
    ObjectCreate("Float", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float",DoubleToStr(myFirstValue,Digits),18, "Arial", PaleTurquoise);
        ObjectSet("Float", OBJPROP_CORNER, 0);
        ObjectSet("Float", OBJPROP_XDISTANCE, 120);
        ObjectSet("Float", OBJPROP_YDISTANCE, 10);
    ObjectCreate("Float2", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float2",DoubleToStr(mySecondValue,Digits),18, "Arial", PaleTurquoise);
        ObjectSet("Float2", OBJPROP_CORNER, 0);
        ObjectSet("Float2", OBJPROP_XDISTANCE, 120);
        ObjectSet("Float2", OBJPROP_YDISTANCE, 35);
    ObjectCreate("Float3", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float3","HIGH Bar   =",14, "tahoma", Yellow);
        ObjectSet("Float3", OBJPROP_CORNER, 0);
        ObjectSet("Float3", OBJPROP_XDISTANCE, 5);
        ObjectSet("Float3", OBJPROP_YDISTANCE, 12);
    ObjectCreate("Float4", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float4","LOW Bar    =",14, "tahoma", Yellow);
        ObjectSet("Float4", OBJPROP_CORNER, 0);
        ObjectSet("Float4", OBJPROP_XDISTANCE, 5);
        ObjectSet("Float4", OBJPROP_YDISTANCE, 35);
        ObjectCreate("Float5", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
    ObjectSetText("Float5",DoubleToStr(myThirdValue,Digits),14, "Arial", Red);
        ObjectSet("Float5", OBJPROP_CORNER, 0);
        ObjectSet("Float5", OBJPROP_XDISTANCE, 220);
        ObjectSet("Float5", OBJPROP_YDISTANCE, 15);
        ObjectCreate("Float6", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
    ObjectSetText("Float6",DoubleToStr(myForthValue,Digits),14, "Arial", Red);
        ObjectSet("Float6", OBJPROP_CORNER, 0);
        ObjectSet("Float6", OBJPROP_XDISTANCE, 220);
        ObjectSet("Float6", OBJPROP_YDISTANCE, 35);
    ObjectCreate("Float7", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float7","+",14, "Arial", CadetBlue);
        ObjectSet("Float7", OBJPROP_CORNER, 0);
        ObjectSet("Float7", OBJPROP_XDISTANCE, 200);
        ObjectSet("Float7", OBJPROP_YDISTANCE, 13);
    ObjectCreate("Float8", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float8","+",14, "Arial", CadetBlue);
        ObjectSet("Float8", OBJPROP_CORNER, 0);
        ObjectSet("Float8", OBJPROP_XDISTANCE, 200);
        ObjectSet("Float8", OBJPROP_YDISTANCE, 33);
    ObjectCreate("Float9", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float9",DoubleToStr(myFifthValue,Digits),14, "Arial", Coral);
        ObjectSet("Float9", OBJPROP_CORNER, 0);
        ObjectSet("Float9", OBJPROP_XDISTANCE, 410);
        ObjectSet("Float9", OBJPROP_YDISTANCE, 40);
    ObjectCreate("Float10", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float10","Float Volume   =",9, "tahoma", Turquoise);
        ObjectSet("Float10", OBJPROP_CORNER, 0);
        ObjectSet("Float10", OBJPROP_XDISTANCE, 300);
        ObjectSet("Float10", OBJPROP_YDISTANCE, 45);
    ObjectCreate("Float11", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float11",DoubleToStr(mySixthValue,Digits-4),14, "Arial",MediumPurple);
        ObjectSet("Float11", OBJPROP_CORNER, 0);
        ObjectSet("Float11", OBJPROP_XDISTANCE, 410);
        ObjectSet("Float11", OBJPROP_YDISTANCE, 10);
    ObjectCreate("Float12", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float12","Bars",9, "tahoma", CadetBlue);
        ObjectSet("Float12", OBJPROP_CORNER, 0);
        ObjectSet("Float12", OBJPROP_XDISTANCE,445);
        ObjectSet("Float12", OBJPROP_YDISTANCE, 15);
    ObjectCreate("Float13", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float13","Float Time       =",9, "tahoma", Turquoise);
        ObjectSet("Float13", OBJPROP_CORNER, 0);
        ObjectSet("Float13", OBJPROP_XDISTANCE,300);
        ObjectSet("Float13", OBJPROP_YDISTANCE, 15);
    ObjectCreate("Float14", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float14",DoubleToStr(mySeventhValue,Digits),14, "Arial",Coral);
        ObjectSet("Float14", OBJPROP_CORNER, 0);
        ObjectSet("Float14", OBJPROP_XDISTANCE, 410);
        ObjectSet("Float14", OBJPROP_YDISTANCE, 25);
    ObjectCreate("Float15", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float15","Float Vol left    =",9, "tahoma", Turquoise);
        ObjectSet("Float15", OBJPROP_CORNER, 0);
        ObjectSet("Float15", OBJPROP_XDISTANCE,300);
        ObjectSet("Float15", OBJPROP_YDISTANCE, 30);
         ObjectCreate("Float16", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float16","Float Period",9, "tahoma", Turquoise);
        ObjectSet("Float16", OBJPROP_CORNER, 0);
        ObjectSet("Float16", OBJPROP_XDISTANCE,790);
        ObjectSet("Float16", OBJPROP_YDISTANCE, 10);
    ObjectCreate("Float17", OBJ_LABEL, WindowFind("Float DATA"), 0, 0);
        ObjectSetText("Float17",DoubleToStr(myEigthValue,Digits-4),14, "Arial",Coral);
        ObjectSet("Float17", OBJPROP_CORNER, 0);
        ObjectSet("Float17", OBJPROP_XDISTANCE, 866);
        ObjectSet("Float17", OBJPROP_YDISTANCE, 8);
        //End Float DATA window code
   
//Comment(
//"\n","high was    ",high_bar,"  ",bars_high,"  bars ago", // Was just bars_high 
//"\n","Low was    ",Low_bar,"  ",bars_low," bars ago","\n",// Was just bars_Low 
//"\n","Float time was  =      ", swing_time," bars",
//"\n","Float Vol. left    =     ",FLOATV-cumulativeV,
//"\n","Float Volume    =     ",FLOATV,
//);
 ObjectDelete("swingtop");
 ObjectCreate("swingtop", OBJ_TREND  , 0, Time[cvstart],high_bar,Time[1],high_bar);
 ObjectSet("swingtop" , OBJPROP_STYLE, STYLE_SOLID);
 ObjectSet("swingtop" , OBJPROP_COLOR , Blue );
 ObjectSet("swingtop" , OBJPROP_RAY , 0  );
 ObjectSet("swingtop" , OBJPROP_WIDTH , 1 );

 ObjectDelete("swingbottom");
 ObjectCreate("swingbottom", OBJ_TREND , 0, Time[cvstart],Low_bar,Time[1],Low_bar);
 ObjectSet("swingbottom" , OBJPROP_STYLE, STYLE_SOLID);
 ObjectSet("swingbottom" , OBJPROP_COLOR , Blue );
 ObjectSet("swingbottom" , OBJPROP_RAY , 0  );
 ObjectSet("swingbottom"  , OBJPROP_WIDTH , 1 );
 
 //fibos
if( use_fibos == 1 ) 
{
ObjectDelete( "fib23" );
ObjectDelete( "fib38" );
ObjectDelete( "fib50" );
ObjectDelete( "fib62" );
ObjectDelete( "fib76" );

ObjectDelete( "dinap0" );
ObjectDelete( "dinap1" );
ObjectDelete( "dinap2" );
ObjectDelete( "dinap3" );
ObjectDelete( "dinap4" );
ObjectDelete( "dinap5" );

fib23=((high_bar-Low_bar)*0.236)+Low_bar;
fib38=((high_bar-Low_bar)*0.382)+Low_bar;
fib50=((high_bar-Low_bar)/2)+Low_bar;
fib62=((high_bar-Low_bar)*0.618)+Low_bar;
fib76=((high_bar-Low_bar)*0.764)+Low_bar;
dinap0=(Low_bar+fib23)/2;
dinap1=(fib23+fib38)/2;
dinap2=(fib38+fib50)/2;
dinap3=(fib50+fib62)/2;
dinap4=(fib62+fib76)/2;
dinap5=(high_bar+fib76)/2;

 ObjectCreate("fib23", OBJ_TREND  , 0, Time[cvstart],fib23,Time[1],fib23 );
 ObjectSet("fib23" , OBJPROP_STYLE, STYLE_DASHDOTDOT );
 ObjectSet("fib23" , OBJPROP_COLOR , DarkTurquoise );
 ObjectSet("fib23" , OBJPROP_RAY , 0  );
 ObjectSet("fib23" , OBJPROP_WIDTH , 1 );
 ObjectCreate("fib23t", OBJ_TEXT  , 0, Time[1],fib23  );
 ObjectSetText("fib23t" , "23.6", 8 , "Arial", DarkTurquoise);
 
 ObjectCreate("fib38", OBJ_TREND  , 0, Time[cvstart],fib38,Time[1],fib38 );
 ObjectSet("fib38" , OBJPROP_STYLE, STYLE_DASHDOTDOT );
 ObjectSet("fib38" , OBJPROP_COLOR , DarkTurquoise );
 ObjectSet("fib38" , OBJPROP_RAY , 0  );
 ObjectSet("fib38" , OBJPROP_WIDTH , 1 );
  ObjectCreate("fib38t", OBJ_TEXT  , 0, Time[1],fib38   );
 ObjectSetText("fib38t" , "38.2", 8 , "Arial", DarkTurquoise);
 
 ObjectCreate("fib50", OBJ_TREND  , 0, Time[cvstart],fib50,Time[1],fib50 );
 ObjectSet("fib50" , OBJPROP_STYLE, STYLE_DASHDOTDOT );
 ObjectSet("fib50" , OBJPROP_COLOR , Red );
 ObjectSet("fib50" , OBJPROP_RAY , 0  );
 ObjectSet("fib50" , OBJPROP_WIDTH , 1 );
 ObjectCreate("fib50t", OBJ_TEXT  , 0, Time[1],fib50  );
 ObjectSetText("fib50t" , "50.0", 8 , "Arial", Red);

 ObjectCreate("fib62", OBJ_TREND  , 0, Time[cvstart],fib62,Time[1],fib62 );
 ObjectSet("fib62" , OBJPROP_STYLE, STYLE_DASHDOTDOT );
 ObjectSet("fib62" , OBJPROP_COLOR , DarkTurquoise );
 ObjectSet("fib62" , OBJPROP_RAY , 0  );
 ObjectSet("fib62" , OBJPROP_WIDTH , 1 );
 ObjectCreate("fib62t", OBJ_TEXT  , 0, Time[1],fib62  );
 ObjectSetText("fib62t" , "61.8", 8 , "Arial", DarkTurquoise);
 
 ObjectCreate("fib76", OBJ_TREND  , 0, Time[cvstart],fib76,Time[1],fib76 );
 ObjectSet("fib76" , OBJPROP_STYLE, STYLE_DASHDOTDOT);
 ObjectSet("fib76" , OBJPROP_COLOR , DarkTurquoise );
 ObjectSet("fib76" , OBJPROP_RAY , 0  );
 ObjectSet("fib76" , OBJPROP_WIDTH , 1 );
 ObjectCreate("fib76t", OBJ_TEXT  , 0, Time[1],fib76  );
 ObjectSetText("fib76t" , "76.4", 8 , "Arial", DarkTurquoise); 

 //ObjectCreate("dinap0", OBJ_TREND  , 0, Time[cvstart],dinap0,Time[1],dinap0 );
 //ObjectSet("dinap0" , OBJPROP_STYLE, STYLE_DOT );
 //ObjectSet("dinap0" , OBJPROP_COLOR , MidnightBlue );
 //ObjectSet("dinap0" , OBJPROP_RAY , 0  );
 //ObjectSet("dinap0" , OBJPROP_WIDTH , 1 );
 
 //ObjectCreate("dinap1", OBJ_TREND  , 0, Time[cvstart],dinap1,Time[1],dinap1 );
 //ObjectSet("dinap1" , OBJPROP_STYLE, STYLE_DOT );
 //ObjectSet("dinap1" , OBJPROP_COLOR , MidnightBlue);
 //ObjectSet("dinap1" , OBJPROP_RAY , 0  );
 //ObjectSet("dinap1" , OBJPROP_WIDTH , 1 );
 
 //ObjectCreate("dinap2", OBJ_TREND  , 0, Time[cvstart],dinap2,Time[1],dinap2 );
 //ObjectSet("dinap2" , OBJPROP_STYLE, STYLE_DOT );
 //ObjectSet("dinap2" , OBJPROP_COLOR , MidnightBlue );
 //ObjectSet("dinap2" , OBJPROP_RAY , 0  );
 //ObjectSet("dinap2" , OBJPROP_WIDTH , 1 );
 
 //ObjectCreate("dinap3", OBJ_TREND  , 0, Time[cvstart],dinap3,Time[1],dinap3 );
 //ObjectSet("dinap3" , OBJPROP_STYLE, STYLE_DOT );
 //ObjectSet("dinap3" , OBJPROP_COLOR , MidnightBlue );
 //ObjectSet("dinap3" , OBJPROP_RAY , 0  );
 //ObjectSet("dinap3" , OBJPROP_WIDTH , 1 );
 
 //ObjectCreate("dinap4", OBJ_TREND  , 0, Time[cvstart],dinap4,Time[1],dinap4 );
 //ObjectSet("dinap4" , OBJPROP_STYLE, STYLE_DOT );
 //ObjectSet("dinap4" , OBJPROP_COLOR , MidnightBlue );
 //ObjectSet("dinap4" , OBJPROP_RAY , 0  );
 //ObjectSet("dinap4" , OBJPROP_WIDTH , 1 );
 
 //ObjectCreate("dinap5", OBJ_TREND  , 0, Time[cvstart],dinap5,Time[1],dinap5 );
 //ObjectSet("dinap5" , OBJPROP_STYLE, STYLE_DOT );
 //ObjectSet("dinap5" , OBJPROP_COLOR , MidnightBlue);
 //ObjectSet("dinap5" , OBJPROP_RAY , 0  );
 //ObjectSet("dinap5" , OBJPROP_WIDTH , 1 );
 
}
else
{
ObjectDelete( "fib23" );
ObjectDelete( "fib38" );
ObjectDelete( "fib50" );
ObjectDelete( "fib62" );
ObjectDelete( "fib76" );

ObjectDelete( "dinap0" );
ObjectDelete( "dinap1" );
ObjectDelete( "dinap2" );
ObjectDelete( "dinap3" );
ObjectDelete( "dinap4" );
ObjectDelete( "dinap5" );
}

//vert. float lines. these draw the lines that calculate the float
//if you change "trendline" to "Vline" it will draw through oscillators too.might be fun
 ObjectDelete("CVSTART");
 ObjectCreate("CVSTART", OBJ_VLINE  , 0, Time[cvstart],high_bar,Time[cvstart],Low_bar*Point);
 ObjectSet("CVSTART" , OBJPROP_STYLE, STYLE_DOT);
 ObjectSet("CVSTART" , OBJPROP_COLOR , Blue );
 ObjectSet("CVSTART" , OBJPROP_RAY , 0  );
 ObjectSet("CVSTART" , OBJPROP_WIDTH , 1 );

 ObjectDelete("CVEND");
 ObjectCreate("CVEND", OBJ_VLINE , 0, Time[cvend],high_bar,Time[cvend],Low_bar*Point);
 ObjectSet("CVEND" , OBJPROP_STYLE, STYLE_DOT);
 ObjectSet("CVEND" , OBJPROP_COLOR , Red );
 ObjectSet("CVEND" , OBJPROP_RAY , 0  );
 ObjectSet("CVEND" , OBJPROP_WIDTH , 1 );

//vert float predictions. These are only time based.
//see blue histogram for real float values.
//if you change "trendline" to "Vline" it will draw through oscillators too.might be fun
//if ( cvend-swing_time > 0 )
//{
 //ObjectDelete("swingend");
 //ObjectCreate("swingend", OBJ_TREND , 0, Time[(cvend-swing_time)+5],high_bar,Time[cvend-swing_time+5],Low_bar);
 //ObjectSet("swingend" , OBJPROP_STYLE, STYLE_DOT);
 //ObjectSet("swingend" , OBJPROP_COLOR , DarkSlateGray );
 //ObjectSet("swingend" , OBJPROP_RAY , 0  );
 //ObjectSet("swingend" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend");


//if( cvend-(swing_time*2)>0 )
//{
 //ObjectDelete("swingend2");
 //ObjectCreate("swingend2", OBJ_TREND , 0, Time[(cvend-(swing_time*2))+5],high_bar,Time[cvend-(swing_time*2)+5],Low_bar);
 //ObjectSet("swingend2" , OBJPROP_STYLE, STYLE_DOT);
 //ObjectSet("swingend2" , OBJPROP_COLOR , DarkSlateGray );
 //ObjectSet("swingend2", OBJPROP_RAY , 0  );
 //ObjectSet("swingend2" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend2");


//if( cvend-(swing_time*3)>0 )
//{
 //ObjectDelete("swingend3");
// ObjectCreate("swingend3", OBJ_TREND , 0, Time[(cvend-(swing_time*3))+5],high_bar,Time[cvend-(swing_time*3)+5],Low_bar);
// ObjectSet("swingend3" , OBJPROP_STYLE, STYLE_DOT);
// ObjectSet("swingend3" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend3", OBJPROP_RAY , 0  );
// ObjectSet("swingend3" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend3");

//if( cvend-(swing_time*4)>0 )
//{
// ObjectDelete("swingend4");
// ObjectCreate("swingend4", OBJ_TREND , 0, Time[(cvend-(swing_time*4))+5],high_bar,Time[cvend-(swing_time*4)+5],Low_bar);
// ObjectSet("swingend4" , OBJPROP_STYLE, STYLE_DOT);
// ObjectSet("swingend4" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend4", OBJPROP_RAY , 0  );
// ObjectSet("swingend4" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend4");

//if( cvend-(swing_time*5)>0 )
//{
// ObjectDelete("swingend5");
// ObjectCreate("swingend5", OBJ_TREND , 0, Time[(cvend-(swing_time*5))+5],high_bar,Time[cvend-(swing_time*5)+5],Low_bar);
// ObjectSet("swingend5" , OBJPROP_STYLE, STYLE_DOT);
// ObjectSet("swingend5" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend5", OBJPROP_RAY , 0  );
// ObjectSet("swingend5" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend5");

//if( cvend-(swing_time*6)>0 )
//{
// ObjectDelete("swingend6");
// ObjectCreate("swingend6", OBJ_TREND , 0, Time[cvend-(swing_time*6)+5],high_bar,Time[cvend-(swing_time*6)+5],Low_bar);
 //ObjectSet("swingend6" , OBJPROP_STYLE, STYLE_DOT);
 //ObjectSet("swingend6" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend6", OBJPROP_RAY , 0  );
// ObjectSet("swingend6" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend6");

//if( cvend-(swing_time*7)>0 )
//{
// ObjectDelete("swingend7");
// ObjectCreate("swingend7", OBJ_TREND , 0, Time[cvend-(swing_time*7)+5],high_bar,Time[cvend-(swing_time*7)+5],Low_bar);
// ObjectSet("swingend7" , OBJPROP_STYLE, STYLE_DOT);
// ObjectSet("swingend7" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend7", OBJPROP_RAY , 0  );
// ObjectSet("swingend7" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend7");

//if( cvend-(swing_time*8)>0 )
//{
// ObjectDelete("swingend8");
// ObjectCreate("swingend8", OBJ_TREND , 0, Time[cvend-(swing_time*8)+5],high_bar,Time[cvend-(swing_time*8)+5],Low_bar);
// ObjectSet("swingend8" , OBJPROP_STYLE, STYLE_DOT);
// ObjectSet("swingend8" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend8", OBJPROP_RAY , 0  );
// ObjectSet("swingend8" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend8");

//if( cvend-(swing_time*9)>0 )
//{
// ObjectDelete("swingend9");
// ObjectCreate("swingend9", OBJ_TREND , 0, Time[cvend-(swing_time*9)+5],high_bar,Time[cvend-(swing_time*9)+5],Low_bar);
// ObjectSet("swingend9" , OBJPROP_STYLE, STYLE_DOT);
// ObjectSet("swingend9" , OBJPROP_COLOR , DarkSlateGray );
// ObjectSet("swingend9", OBJPROP_RAY , 0  );
// ObjectSet("swingend9" , OBJPROP_WIDTH , 1 );
//}
//else ObjectDelete("swingend9");



//comment out anything you"re not using it will help with speed.
if( Backtesting == 1 )
{
GlobalVariableSet("fib23",fib23);
GlobalVariableSet("fib38",fib38);
GlobalVariableSet("fib50",fib50);
GlobalVariableSet("fib62",fib62);
GlobalVariableSet("fib76",fib76);
GlobalVariableSet("dinap0",dinap0);
GlobalVariableSet("dinap1",dinap1);
GlobalVariableSet("dinap2",dinap2);
GlobalVariableSet("dinap3",dinap3);
GlobalVariableSet("dinap4",dinap4);
GlobalVariableSet("dinap5",dinap5);
GlobalVariableSet("swingtop",high_bar);
GlobalVariableSet("swingbottom",Low_bar);
GlobalVariableSet("CVSTART",cvstart);
GlobalVariableSet("CVEND",cvend);
GlobalVariableSet("FLOATV",FLOATV);
GlobalVariableSet("cumulativeV",cumulativeV);
GlobalVariableSet("swing_time",swing_time);
GlobalVariableSet("bars_high",bars_high);
GlobalVariableSet("bars_low",bars_low);

if( cvend-swing_time>0 )
GlobalVariableSet("swingend",(cvend-swing_time)+5);

if( cvend-(swing_time*2)>0 )
GlobalVariableSet("swingend2",cvend-(swing_time*2)+5);

if( cvend-(swing_time*3)>0 )
GlobalVariableSet("swingend3",cvend-(swing_time*3)+5);

if( cvend-(swing_time*4)>0 )
GlobalVariableSet("swingend4",cvend-(swing_time*4)+5);

if( cvend-(swing_time*5)>0 )
GlobalVariableSet("swingend5",cvend-(swing_time*5)+5);

if( cvend-(swing_time*6)>0 )
GlobalVariableSet("swingend6",cvend-(swing_time*6)+5);

if( cvend-(swing_time*7)>0 )
GlobalVariableSet("swingend7",cvend-(swing_time*7)+5);

if( cvend-(swing_time*8)>0 )
GlobalVariableSet("swingend8",cvend-(swing_time*8)+5);

if( cvend-(swing_time*9)>0 )
GlobalVariableSet("swingend9",cvend-(swing_time*9)+5);
 
}  //   end  Backtesting
     
    
   }
  }
 }
 return(0);
}
  





Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains tick volumes of each bar
Series array that contains open time of each bar


Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM

Implements a curve of type DRAW_LINE

Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: