/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2008, bluto"
#property link      "http://fxaw.activeboard.com/"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Yellow

extern string m0 = "Modes: 0,1088,939,5233";
//extern int Mode = 0;
extern int Length = 21;
int gi_84 = 2000;
double g_ibuf_88[];
double g_ibuf_92[];
double g_ibuf_96[];
string gs_unused_100 = "";
string gs_108 = "Volvox...the Pip Sponge";

int init() {
   /*if (Mode == 1088) Length = 21;
   if (Mode == 939) Length = 24;
   if (Mode == 5233) Length = 27;*/
   SetIndexStyle(0, DRAW_LINE);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexStyle(2, DRAW_LINE);
   IndicatorDigits(Digits + 1);
   SetIndexBuffer(0, g_ibuf_88);
   SetIndexBuffer(1, g_ibuf_92);
   SetIndexBuffer(2, g_ibuf_96);
   IndicatorShortName(gs_108);
   SetIndexLabel(1, NULL);
   SetIndexLabel(2, NULL);
   SetIndexDrawBegin(0, 0);
   SetIndexDrawBegin(1, 0);
   SetIndexDrawBegin(2, 0);
   return (0);
}

int start() {
   double ld_0;
   double ld_8;
   double ld_16;
   //if (TimeCurrent() > 1313418720) return (0);
   int li_24 = IndicatorCounted();
   double ld_28 = 0;
   double ld_36 = 0;
   double ld_unused_44 = 0;
   double ld_unused_52 = 0;
   double ld_60 = 0;
   double ld_unused_68 = 0;
   double l_low_76 = 0;
   double l_high_84 = 0;
   int li_unused_92 = 16777215;
   if (li_24 > 0) li_24--;
   int li_96 = Bars - li_24;
   li_96 = gi_84;
   for (int li_100 = 0; li_100 < li_96; li_100++) {
      l_high_84 = High[iHighest(NULL, 0, MODE_HIGH, Length, li_100)];
      l_low_76 = Low[iLowest(NULL, 0, MODE_LOW, Length, li_100)];
      if (High[li_100] + Low[li_100] != 0.0) ld_16 = (High[li_100] + Low[li_100]) / 2.0;
      else ld_16 = 0;
      if (ld_16 - l_low_76 != 0.0 && l_high_84 - l_low_76 != 0.0) ld_28 = 0.66 * ((ld_16 - l_low_76) / (l_high_84 - l_low_76) - 0.5) + 0.67 * ld_36;
      else ld_28 = 0;
      ld_28 = MathMin(MathMax(ld_28, -0.999), 0.999);
      if (ld_28 + 1.0 != 0.0 && 1 - ld_28 != 0.0) g_ibuf_88[li_100] = MathLog((ld_28 + 1.0) / (1 - ld_28)) / 2.0 + ld_60 / 2.0;
      else g_ibuf_88[li_100] = 0;
      ld_36 = ld_28;
      ld_60 = g_ibuf_88[li_100];
   }
   bool li_104 = TRUE;
   for (li_100 = li_96 - 2; li_100 >= 0; li_100--) {
      ld_8 = g_ibuf_88[li_100];
      ld_0 = g_ibuf_88[li_100 + 1];
      if ((ld_8 < 0.0 && ld_0 > 0.0) || ld_8 < 0.0) li_104 = FALSE;
      if ((ld_8 > 0.0 && ld_0 < 0.0) || ld_8 > 0.0) li_104 = TRUE;
      if (!li_104) {
         g_ibuf_96[li_100] = ld_8;
         g_ibuf_92[li_100] = 0.0;
         gs_unused_100 = "Sell";
         li_unused_92 = 65535;
      } else {
         g_ibuf_92[li_100] = ld_8;
         g_ibuf_96[li_100] = 0.0;
         gs_unused_100 = "Buy ";
         li_unused_92 = 65280;
      }
   }
   return (0);
}