Auto TL.03~(2)





/*
   Generated by EX4-TO-MQ4 decompiler ONE FILE V4.0.218.3
   EX4 ID : 04E20A41724C2645BAEB3FDF008C44EC
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2005-2008, Todd A.Geiger aka fxid10t@yahoo.com"
#property link      ""

#property indicator_chart_window

extern string Sensitivity = "is.a.multiple.of.spread";
extern int sensitivity = 10;
extern color Color = Fuchsia;
extern bool Plot.Fibs? = TRUE;
string gs_tlo__96 = "tlo ";
string gs_thi__104 = "thi ";
int gi_112;
bool gi_116;
int g_datetime_120;
int gi_124;
int gi_128;
bool gi_132;
int g_datetime_136;
int gi_140;
double gd_144;
double gd_152;
double g_price_160;
double g_price_168;
double gd_176;
double gd_184;
double g_price_192;
double g_price_200;
int gi_208;

int init() {
   if (TimeCurrent() < StrToTime("2008.12.31 00:00:00")) {
      Alert("Auto TL.03 Custom Indicator has expired.");
      deinit();
      return (0);
   }
   return (0);
}

int deinit() {
   if (!IsTesting()) {
      for (int l_objs_total_0 = ObjectsTotal(); l_objs_total_0 >= 0; l_objs_total_0--) {
         if (StringSubstr(ObjectName(l_objs_total_0), 0, 3) == "tlo" || StringSubstr(ObjectName(l_objs_total_0), 0, 3) == "thi" || StringSubstr(ObjectName(l_objs_total_0), 0, 8) == "Bear Fib" ||
            StringSubstr(ObjectName(l_objs_total_0), 0, 8) == "Bull Fib") ObjectDelete(ObjectName(l_objs_total_0));
      }
   }
   return (0);
}

int start() {
   gi_208 = sensitivity;
   count();
   for (int li_0 = 0; li_0 <= ObjectsTotal(); li_0++) {
      if (StringSubstr(ObjectName(li_0), 0, 3) == "tlo") gs_tlo__96 = ObjectName(li_0);
      if (StringSubstr(ObjectName(li_0), 0, 3) == "thi") gs_thi__104 = ObjectName(li_0);
      if (gs_thi__104 != "" && High[1] > ObjectGetValueByShift(gs_thi__104, 1)) {
         ObjectDelete(gs_thi__104);
         ObjectsDeleteAll(0, OBJ_FIBO);
         gi_128 = 0;
         gi_132 = FALSE;
         g_datetime_136 = 0;
         gi_140 = 0;
         gd_176 = 0;
         gd_184 = 0;
         g_price_192 = 0;
         g_price_200 = 0;
         gs_thi__104 = "thi ";
      }
      if (gs_tlo__96 != "" && Low[1] < ObjectGetValueByShift(gs_tlo__96, 1)) {
         ObjectDelete(gs_tlo__96);
         ObjectsDeleteAll(0, OBJ_FIBO);
         gi_112 = 0;
         gi_116 = FALSE;
         g_datetime_120 = 0;
         gi_124 = 0;
         gd_144 = 0;
         gd_152 = 0;
         g_price_160 = 0;
         g_price_168 = 0;
         gs_tlo__96 = "tlo ";
      }
   }
   if (ObjectFind(gs_tlo__96) < 0) init.tlo();
   if (ObjectFind(gs_thi__104) < 0) init.thi();
   if (ObjectFind(gs_tlo__96) > -1) {
      gi_112 = ObjectGet(gs_tlo__96, OBJPROP_TIME1);
      gd_144 = ObjectGet(gs_tlo__96, OBJPROP_PRICE1);
      gi_116 = ObjectGet(gs_tlo__96, OBJPROP_TIME2);
      gd_152 = ObjectGet(gs_tlo__96, OBJPROP_PRICE2);
      if (Low[1] > ObjectGetValueByShift(gs_tlo__96, 1) + gi_208 * (Ask - Bid)) {
         g_price_160 = gd_152;
         g_datetime_120 = gi_116;
         g_price_168 = Low[1];
         gi_124 = Time[1];
         gs_tlo__96 = "tlo ";
         init.tlo();
         return;
      }
   }
   if (ObjectFind(gs_thi__104) > -1) {
      gi_128 = ObjectGet(gs_thi__104, OBJPROP_TIME1);
      gd_176 = ObjectGet(gs_thi__104, OBJPROP_PRICE1);
      gi_132 = ObjectGet(gs_thi__104, OBJPROP_TIME2);
      gd_184 = ObjectGet(gs_thi__104, OBJPROP_PRICE2);
      if (High[1] < ObjectGetValueByShift(gs_thi__104, 1) - gi_208 * (Ask - Bid)) {
         g_price_192 = gd_184;
         g_datetime_136 = gi_132;
         g_price_200 = High[1];
         gi_140 = Time[1];
         gs_thi__104 = "thi ";
         init.thi();
         return;
      }
   }
   count();
   if (Plot.Fibs?) fib();
   return (0);
}

void fib() {
   double l_price_4;
   double l_timeframe_12;
   double l_price_20;
   double l_timeframe_28;
   int li_36;
   int l_timeframe_40;
   int l_timeframe_44;
   int l_timeframe_48;
   int l_color_0 = Color;
   MathSrand(l_color_0);
   if (ObjectFind(gs_tlo__96) > -1) {
      gi_112 = ObjectGet(gs_tlo__96, OBJPROP_TIME1);
      gd_144 = ObjectGet(gs_tlo__96, OBJPROP_PRICE1);
      gi_116 = ObjectGet(gs_tlo__96, OBJPROP_TIME2);
      gd_152 = ObjectGet(gs_tlo__96, OBJPROP_PRICE2);
   }
   if (ObjectFind(gs_thi__104) > -1) {
      gi_128 = ObjectGet(gs_thi__104, OBJPROP_TIME1);
      gd_176 = ObjectGet(gs_thi__104, OBJPROP_PRICE1);
      gi_132 = ObjectGet(gs_thi__104, OBJPROP_TIME2);
      gd_184 = ObjectGet(gs_thi__104, OBJPROP_PRICE2);
   }
   if (gi_128 < gi_112) {
      l_price_4 = gd_176;
      li_36 = gi_128;
      l_timeframe_12 = Low[iLowest(Symbol(), Period(), MODE_LOW, iBarShift(Symbol(), Period(), li_36), 0)];
      l_timeframe_40 = Time[iLowest(Symbol(), Period(), MODE_LOW, iBarShift(Symbol(), Period(), li_36), 0)];
      ObjectCreate("Bear Fib " + TimeToStr(l_timeframe_40), OBJ_FIBO, 0, li_36, l_price_4, l_timeframe_40, l_timeframe_12);
      ObjectSet("Bear Fib " + TimeToStr(l_timeframe_40), OBJPROP_LEVELCOLOR, MathRand());
      ObjectSet("Bear Fib " + TimeToStr(l_timeframe_40), OBJPROP_RAY, FALSE);
      l_price_20 = l_timeframe_12;
      l_timeframe_44 = l_timeframe_40;
      l_timeframe_28 = High[iHighest(Symbol(), Period(), MODE_HIGH, iBarShift(Symbol(), Period(), l_timeframe_44), 0)];
      l_timeframe_48 = Time[iHighest(Symbol(), Period(), MODE_HIGH, iBarShift(Symbol(), Period(), l_timeframe_44), 0)];
      if (l_timeframe_28 > l_price_20 + (l_price_4 - l_timeframe_12) / 2.0) {
         ObjectCreate("Bull Fib " + TimeToStr(l_timeframe_48), OBJ_FIBO, 0, l_timeframe_44, l_price_20, l_timeframe_48, l_timeframe_28);
         ObjectSet("Bull Fib " + TimeToStr(l_timeframe_48), OBJPROP_LEVELCOLOR, MathRand());
         ObjectSet("Bull Fib " + TimeToStr(l_timeframe_40), OBJPROP_RAY, FALSE);
      }
   }
   if (gi_112 < gi_128) {
      l_price_20 = gd_144;
      l_timeframe_44 = gi_112;
      l_timeframe_28 = High[iHighest(Symbol(), Period(), MODE_HIGH, iBarShift(Symbol(), Period(), l_timeframe_44), 0)];
      l_timeframe_48 = Time[iHighest(Symbol(), Period(), MODE_HIGH, iBarShift(Symbol(), Period(), l_timeframe_44), 0)];
      ObjectCreate("Bull Fib " + TimeToStr(l_timeframe_48), OBJ_FIBO, 0, l_timeframe_44, l_price_20, l_timeframe_48, l_timeframe_28);
      ObjectSet("Bull Fib " + TimeToStr(l_timeframe_48), OBJPROP_LEVELCOLOR, MathRand());
      ObjectSet("Bull Fib " + TimeToStr(l_timeframe_40), OBJPROP_RAY, FALSE);
      l_price_4 = l_timeframe_28;
      li_36 = l_timeframe_48;
      l_timeframe_12 = Low[iLowest(Symbol(), Period(), MODE_LOW, iBarShift(Symbol(), Period(), li_36), 0)];
      l_timeframe_40 = Time[iLowest(Symbol(), Period(), MODE_LOW, iBarShift(Symbol(), Period(), li_36), 0)];
      if (l_timeframe_12 < l_price_4 - (l_timeframe_28 - l_price_20) / 2.0) {
         ObjectCreate("Bear Fib " + TimeToStr(l_timeframe_40), OBJ_FIBO, 0, li_36, l_price_4, l_timeframe_40, l_timeframe_12);
         ObjectSet("Bear Fib " + TimeToStr(l_timeframe_40), OBJPROP_LEVELCOLOR, MathRand());
         ObjectSet("Bear Fib " + TimeToStr(l_timeframe_40), OBJPROP_RAY, FALSE);
      }
   }
}

void count() {
   int li_0;
   int li_4;
   string ls_unused_8;
   string ls_unused_16;
   for (int l_objs_total_24 = ObjectsTotal(); l_objs_total_24 >= 0; l_objs_total_24--) {
      if (StringSubstr(ObjectName(l_objs_total_24), 0, 3) == "tlo") {
         li_0++;
         ls_unused_8 = ObjectName(l_objs_total_24 + li_0 - 1);
      }
      if (StringSubstr(ObjectName(l_objs_total_24), 0, 3) == "thi") {
         li_4++;
         ls_unused_16 = ObjectName(l_objs_total_24 + li_4 - 1);
      }
   }
}

void init.tlo() {
   if (g_price_160 == 0.0 && g_price_168 == 0.0) {
      g_price_160 = Low[iLowest(Symbol(), Period(), MODE_LOW, Bars, 0)];
      g_datetime_120 = Time[iLowest(Symbol(), Period(), MODE_LOW, Bars, 0)];
      g_price_168 = Low[iLowest(Symbol(), Period(), MODE_LOW, Bars, 0) - 1];
      gi_124 = Time[iLowest(Symbol(), Period(), MODE_LOW, Bars, 0) - 1];
   }
   gs_tlo__96 = gs_tlo__96 + TimeToStr(gi_124);
   ObjectCreate(gs_tlo__96, OBJ_TREND, 0, g_datetime_120, g_price_160, gi_124, g_price_168);
   ObjectSet(gs_tlo__96, OBJPROP_RAY, TRUE);
   ObjectSet(gs_tlo__96, OBJPROP_COLOR, Color);
   int l_shift_0 = iBarShift(Symbol(), Period(), g_datetime_120);
   for (int l_shift_4 = l_shift_0; l_shift_4 > 0; l_shift_4--) {
      if (Low[l_shift_4] > 0.0 && Low[l_shift_4] < ObjectGetValueByShift(gs_tlo__96, l_shift_4)) {
         g_price_168 = Low[l_shift_4];
         gi_124 = Time[l_shift_4];
         ObjectDelete(gs_tlo__96);
         gs_tlo__96 = "tlo ";
         gs_tlo__96 = gs_tlo__96 + TimeToStr(gi_124);
         ObjectCreate(gs_tlo__96, OBJ_TREND, 0, g_datetime_120, g_price_160, gi_124, g_price_168);
         ObjectSetText(gs_tlo__96, DoubleToStr(100.0 * (ObjectGetValueByShift(gs_tlo__96, 0) - ObjectGetValueByShift(gs_tlo__96, 1)), Digits) + "% slope");
         ObjectSet(gs_tlo__96, OBJPROP_RAY, TRUE);
         ObjectSet(gs_tlo__96, OBJPROP_COLOR, Color);
      }
   }
}

void init.thi() {
   if (g_price_192 == 0.0 && g_price_200 == 0.0) {
      g_price_192 = High[iHighest(Symbol(), Period(), MODE_HIGH, Bars, 0)];
      g_datetime_136 = Time[iHighest(Symbol(), Period(), MODE_HIGH, Bars, 0)];
      g_price_200 = High[iHighest(Symbol(), Period(), MODE_HIGH, Bars, 0) - 1];
      gi_140 = Time[iHighest(Symbol(), Period(), MODE_HIGH, Bars, 0) - 1];
   }
   gs_thi__104 = gs_thi__104 + TimeToStr(gi_140);
   ObjectCreate(gs_thi__104, OBJ_TREND, 0, g_datetime_136, g_price_192, gi_140, g_price_200);
   ObjectSet(gs_thi__104, OBJPROP_RAY, TRUE);
   ObjectSet(gs_thi__104, OBJPROP_COLOR, Color);
   int l_shift_0 = iBarShift(Symbol(), Period(), g_datetime_136);
   for (int l_shift_4 = l_shift_0; l_shift_4 > 0; l_shift_4--) {
      if (High[l_shift_4] > 0.0 && High[l_shift_4] > ObjectGetValueByShift(gs_thi__104, l_shift_4)) {
         g_price_200 = High[l_shift_4];
         gi_140 = Time[l_shift_4];
         ObjectDelete(gs_thi__104);
         gs_thi__104 = "thi ";
         gs_thi__104 = gs_thi__104 + TimeToStr(gi_140);
         ObjectCreate(gs_thi__104, OBJ_TREND, 0, g_datetime_136, g_price_192, gi_140, g_price_200);
         ObjectSetText(gs_thi__104, DoubleToStr(100.0 * (ObjectGetValueByShift(gs_thi__104, 1) - ObjectGetValueByShift(gs_thi__104, 0)), Digits) + "% slope");
         ObjectSet(gs_thi__104, OBJPROP_RAY, TRUE);
         ObjectSet(gs_thi__104, OBJPROP_COLOR, Color);
      }
   }
}



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 open time of each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

It issuies visual alerts to the screen