#property copyright "Copyright © 2012, TradeWestForex.com"
#property link      "http://www.TradeWestForex.com"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Black
#property indicator_color2 Black

#include <WinUser32.mqh>
#import "mt4gui.dll"
   int tbPutObject(int a0, string a1, int a2, int a3, int a4, int a5, string a6);
   int tbSetBgColor(int a0, int a1, int a2);
   int tbSetTextColor(int a0, int a1, int a2);
   int tbRemove(int a0, int a1);
   bool tbIsClicked(int a0, int a1);
   int tbSetText(int a0, int a1, string a2, int a3, string a4);
   string tbGetText(int a0, int a1);
#import "user32.dll"
   int RegisterWindowMessageA(string a0);
#import "shell32.dll"
   int ShellExecuteA(int a0, string a1, string a2, string a3, int a4, int a5);
#import

extern string version_1.02 = "---User Settings---";
extern int  MinStars = 5;
extern bool Enable_Sound_Alerts = TRUE;
extern bool Enable_Email_Notifications = FALSE;
extern string info2 = "---Optional Color Settings---";
extern color BuyBox_color = C'0xBD,0xE0,0xFD';
extern color SellBox_color = C'0xF5,0xCF,0xCF';
extern color BuyLines_color = C'0x1D,0x95,0xF8';
extern color SellLines_color = C'0xD6,0x38,0x38';
extern color Chart_BackGround_color = White;
extern color Chart_ForeGround_color = Black;
bool gi_132 = TRUE;
bool gi_136 = TRUE;
bool gi_140 = FALSE;
string gs_144 = "";
extern int MaxBarsToShowBoxes = 75;
int g_period_156 = 20;
double gd_160 = 6.0;
double gd_168 = 4.0;
int gi_176 = 14;
double gd_180 = 0.001;
int g_period_188 = 5;
double gd_192 = 1.0;
int gi_200 = 3;
int gi_204 = 0;
int gi_208 = 0;
int g_index_212 = 0;
int g_index_216 = 0;
bool gi_220 = FALSE;
bool gi_224 = FALSE;
string gs_228 = "";
bool gi_236 = FALSE;
string gs_240 = "Momentics v1.02";
double gd_248 = 1.0;
int g_bars_256 = 0;
int gi_unused_260 = 0;
int gi_unused_264 = 0;
int gia_268[500];
int gia_272[500];
int g_datetime_276;
double gd_280 = 0.0;
int gi_288 = 0;
double gd_292 = 0.0;
int gi_300 = 0;

int gi_308;

int gi_324;
int gi_328;
int gi_332;
int gi_336;
int gi_340;
int gi_344;
int gi_348;
int gi_352;
int gi_356 = 0;
string g_text_360;
string g_text_368;
string gs_376 = "Initializing...verify the 2 dlls are in correct folders.";
string gs_384 = "";
bool gi_408 = FALSE;
int gi_412 = -1;
int g_index_420 = 0;
int g_index_424 = 0;
double gd_428 = 0.0;
double gd_436 = 0.0;
double gd_444 = 0.0;
double gd_452 = 0.0;
bool gi_460 = FALSE;
double gd_464 = 0.0;
double gd_504 = 0.0;
double gd_512 = 0.0;
int gi_524 = 0;
double gd_528 = 0.0;
double gd_536 = 0.0;
double gd_544 = 0.0;
double gd_552 = 0.0;
double gd_560 = 0.0;
double gd_568 = 0.0;
string gs_576 = "";
int gi_592;
bool gi_596 = FALSE;
bool gi_600 = FALSE;
double g_bid_604 = 0.0;

// Buffers
double BuffBuy[];
double BuffSell[];
double Stars[];
double SL[];
double TP[];


int init() {
   IndicatorBuffers(5);
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(0, 216);
   SetIndexArrow(1, 216);


   SetIndexBuffer(0, BuffBuy);
   SetIndexBuffer(1, BuffSell);

   SetIndexBuffer(2, Stars);
   SetIndexBuffer(3, SL);
   SetIndexBuffer(4, TP);

   IndicatorShortName(gs_240);
   SetIndexLabel(0, gs_240 + " Buy");
   SetIndexLabel(1, gs_240 + " Sell");
   SetIndexDrawBegin(0, Bars - MaxBarsToShowBoxes - 1);
   SetIndexDrawBegin(1, Bars - MaxBarsToShowBoxes - 1);

   if (Period() == PERIOD_MN1) gs_576 = "MN";
   else {
      if (Period() == PERIOD_W1) gs_576 = "W1";
      else {
         if (Period() == PERIOD_D1) gs_576 = "D1";
         else {
            if (Period() == PERIOD_H4) gs_576 = "H4";
            else {
               if (Period() == PERIOD_H1) gs_576 = "H1";
               else {
                  if (Period() == PERIOD_M30) gs_576 = "M30";
                  else {
                     if (Period() == PERIOD_M15) gs_576 = "M15";
                     else {
                        if (Period() == PERIOD_M5) gs_576 = "M5";
                        else
                           if (Period() == PERIOD_M1) gs_576 = "M1";
                     }
                  }
               }
            }
         }
      }
   }
   ObjectCreate("TWEST_Momentics_init", OBJ_LABEL, 0, 0, 0);
   ObjectSet("TWEST_Momentics_init", OBJPROP_XDISTANCE, 10);
   ObjectSet("TWEST_Momentics_init", OBJPROP_YDISTANCE, 90);
   f0_6(1, " ");
   ObjectCreate("TWEST_Momentics_init2", OBJ_LABEL, 0, 0, 0);
   ObjectSet("TWEST_Momentics_init2", OBJPROP_XDISTANCE, 10);
   ObjectSet("TWEST_Momentics_init2", OBJPROP_YDISTANCE, 155);
   f0_6(2, "Waiting For Price. Market open? MT4 Connection Error?");
   f0_17(0);
   
   
   
   f0_15(1);
   if (Digits == 3 || Digits == 5) gd_248 = 10.0;
   else gd_248 = 1.0;
   return (0);
}

void f0_17(bool ai_0) {
   string name_12;
   if (ai_0) gi_596 = TRUE;
   gd_292 = 0.0;
   g_bars_256 = 0;
   gi_unused_260 = 0;
   gi_unused_264 = 0;
   gi_592 = 0;
   gi_204 = 0;
   gi_208 = 0;
   g_index_420 = 0;
   g_index_424 = 0;
   g_index_212 = 0;
   g_index_216 = 0;
   gi_220 = FALSE;
   gi_224 = FALSE;
   ArrayInitialize(gia_268, 0);
   ArrayInitialize(gia_272, 0);
   g_datetime_276 = 0;
   gd_428 = 0.0;
   gd_436 = 0.0;
   gd_444 = 0.0;
   gd_452 = 0.0;
   gi_460 = FALSE;
   gd_464 = 0.0;
   gd_504 = 0.0;
   gd_512 = 0.0;
   for (int index_4 = 0; index_4 <= MaxBarsToShowBoxes; index_4++) {
      BuffBuy[index_4] = 0.0;
      BuffSell[index_4] = 0.0;
   }
   for (int li_8 = ObjectsTotal() - 1; li_8 >= 0; li_8--) {
      name_12 = ObjectName(li_8);
      if (StringSubstr(name_12, 0, StringLen(gs_576) + 9) == gs_576 + "Momentics") ObjectDelete(name_12);
   }
}

int f0_13() {
  // tbRemove(gi_300, gi_324);
  // tbRemove(gi_300, gi_328);
   tbRemove(gi_300, gi_332);
   tbRemove(gi_300, gi_336);
   tbRemove(gi_300, gi_340);
   tbRemove(gi_300, gi_344);
   tbRemove(gi_300, gi_348);
   tbRemove(gi_300, gi_352);
   if (gi_308 > 0) tbRemove(gi_300, gi_308);
   
   return (0);
}

void f0_8() {
   gi_308 = tbPutObject(gi_300, "button", 5, -47, 20, 25, "");
   tbSetText(gi_300, gi_308, "?", 16, "Verdana");
   tbSetBgColor(gi_300, gi_308, 13882323);
   tbSetTextColor(gi_300, gi_308, 0);
}

void f0_6(int ai_0, string a_text_4) {
   switch (ai_0) {
   case 1:
      if (g_text_360 == a_text_4) break;
      ObjectSetText("TWEST_Momentics_init", a_text_4, 16, "Times New Roman", Red);
      WindowRedraw();
      g_text_360 = a_text_4;
      return;
   case 2:
      if (g_text_368 == a_text_4) break;
      ObjectSetText("TWEST_Momentics_init2", a_text_4, 16, "Times New Roman", Red);
      WindowRedraw();
      g_text_368 = a_text_4;
      return;
   }
}

void f0_11() {
   int li_0 = RegisterWindowMessageA("MetaTrader4_Internal_Message");
   PostMessageA(gi_300, li_0, 2, 1);
}

int f0_14() {
   if (!IsDllsAllowed()) {
      gs_376 = "\'Allow DLL imports\' must be checked! Re-attach the indicator, make sure it\'s checked.";
      Alert(gs_376);
      f0_6(1, "\'Allow DLL imports\' must be checked! Re-attach the indicator...");
   }
   /*
   gi_324 = tbPutObject(gi_300, "label", 3, -49, 120, 14, "");
   tbSetText(gi_300, gi_324, "         TradeWest Forex", 14, "Arial");
   tbSetBgColor(gi_300, gi_324, Chart_BackGround_color);
   tbSetTextColor(gi_300, gi_324, Chart_ForeGround_color);
   gi_328 = tbPutObject(gi_300, "label", 3, -35, 120, 17, "");
   tbSetText(gi_300, gi_328, "         " + gs_240, 14, "Arial");
   tbSetBgColor(gi_300, gi_328, Chart_BackGround_color);
   tbSetTextColor(gi_300, gi_328, Chart_ForeGround_color);
   */
   f0_11();
   return (1);
}

void f0_15(int ai_0) {
   string ls_20;
   string ls_28;
   gi_236 = TRUE;
   ls_20 = "MomenticsUsername";
   ls_28 = "MomenticsPassword";
   f0_10(ls_20, ls_28);
}

int deinit() {
   f0_17(0);
   if (gi_300 > 0) f0_13();
   ObjectDelete("TWEST_Momentics_init");
   ObjectDelete("TWEST_Momentics_init2");
   Comment("");
   return (0);
}

int start() {
   bool li_4;
   int li_20;
   bool li_24;
   int li_28;
   int shift_36;
   int shift_40;
   double iatr_44;
   double ibands_52;
   double ibands_60;
   int li_68;
   double ld_72;
   int li_80;
   double ld_84;
   double ibands_92;
   double ld_100;
   double ld_108;
   double ld_116;
   double ld_124;
   double ibands_132;
   double ld_140;
   double ld_148;
   if (gi_236) {
      gd_280 = MathMax(WindowPriceMax(0) - WindowPriceMin(0), 1.0 * Point * gd_248);
      gi_288 = WindowBarsPerChart();
      gd_180 = iATR(NULL, 0, 199, 1) / 2.0;
      if (gi_596) {
         gi_596 = FALSE;
         gi_592 = 0;
      } else gi_592 = IndicatorCounted();
      if (Bars <= 200) return (0);
      if (g_bars_256 > Bars) return (0);
      if (gi_592 < 1) f0_17(0);
      while (true) {
         for (int li_0 = Bars - gi_592 - 1; li_0 >= 0; li_0--) {
            if (li_0 >= Bars - gi_200) {
               li_0--;
               continue;
            }
            if (g_bars_256 != Bars) {
               if (li_0 == 0) {
                  if (g_bars_256 > 0) {
                     g_index_212++;
                     g_index_216++;
                  }
                  g_bars_256 = Bars;
               }
               li_4 = TRUE;
               for (int li_8 = 1; li_8 < gi_200 + 1; li_8++) {
                  if (!(Low[li_0 + gi_200 + 1] < Low[li_0 + gi_200 + 1 + li_8] && Low[li_0 + gi_200 + 1] < Low[li_0 + gi_200 + 1 - li_8])) {
                     li_4 = FALSE;
                     break;
                  }
               }
               if (li_4 && Time[gia_268[ArraySize(gia_268) - 1]] != Time[li_0 + gi_200 + 1] && (!(gi_592 > 0 && li_0 == 1))) {
                  if (gia_268[ArraySize(gia_268) - 1] != 0) for (int index_12 = 0; index_12 < ArraySize(gia_268) - 1; index_12++) gia_268[index_12] = gia_268[index_12 + 1];
                  gia_268[ArraySize(gia_268) - 1] = Time[li_0 + gi_200 + 1];
                  if (gi_204 < ArraySize(gia_268)) gi_204++;
               }
               li_4 = TRUE;
               for (li_8 = 1; li_8 < gi_200 + 1; li_8++) {
                  if (!(High[li_0 + gi_200 + 1] > High[li_0 + gi_200 + 1 + li_8] && High[li_0 + gi_200 + 1] > High[li_0 + gi_200 + 1 - li_8])) {
                     li_4 = FALSE;
                     break;
                  }
               }
               if (li_4 && Time[gia_272[ArraySize(gia_272) - 1]] != Time[li_0 + gi_200 + 1] && (!(gi_592 > 0 && li_0 == 1))) {
                  if (gia_272[ArraySize(gia_272) - 1] != 0) for (int index_16 = 0; index_16 < ArraySize(gia_272) - 1; index_16++) gia_272[index_16] = gia_272[index_16 + 1];
                  gia_272[ArraySize(gia_272) - 1] = Time[li_0 + gi_200 + 1];
                  if (gi_208 < ArraySize(gia_272)) gi_208++;
               }
            }
         }
         break;
      }
      if (gi_204 <= 0 || gi_208 <= 0) return (0);
      if (gi_592 > 0) gi_592--;
      li_20 = Bars - gi_592;
      if (g_index_420 == 0) g_index_420 = ArraySize(gia_268) - MathMin(ArraySize(gia_268), gi_204);
      if (g_index_424 == 0) g_index_424 = ArraySize(gia_272) - MathMin(ArraySize(gia_272), gi_208);
      li_24 = FALSE;
      li_28 = 0;
      for (int li_32 = li_20 - 1; li_32 >= 0; li_32--) {
         li_24 = li_32;
         li_28 = li_32;
         shift_36 = iBarShift(NULL, 0, gia_268[g_index_420], TRUE);
         shift_40 = iBarShift(NULL, 0, gia_272[g_index_424], TRUE);
         if (shift_36 < 0 && g_index_420 < ArraySize(gia_268) - 1) g_index_420++;
         else {
            if (shift_40 < 0 && g_index_420 < ArraySize(gia_272) - 1) g_index_424++;
            else {
               iatr_44 = iATR(NULL, 0, g_period_156, li_32 + 1);
               ibands_52 = iBands(NULL, 0, g_period_188, gd_192, 0, PRICE_LOW, MODE_LOWER, shift_36);
               ibands_60 = iBands(NULL, 0, g_period_188, gd_192, 0, PRICE_HIGH, MODE_UPPER, shift_40);
               li_68 = 1;
               ld_72 = Open[li_32];
               if (gi_132 && Open[li_32 + 1] > Close[li_32 + 1] && ld_72 < Open[li_32 + 1]) ld_72 = Open[li_32 + 1];
               if (gi_136) {
                  ld_72 = High[li_32];
                  gd_180 = 0.00001;
               }
               if ((!gi_224) && !gi_220 && (li_32 >= MathMax(iBarShift(NULL, 0, gia_268[g_index_420 + 1], TRUE) - gi_200, 0) || g_index_420 == ArraySize(gia_268) - 1 && li_32 <= shift_36 - gi_200 - 1 &&
                  Low[li_32] < ibands_52 && ld_72 - ibands_52 > gd_180 && Time[li_32] > g_datetime_276)) {
                  if (li_32 == 0) 
                  {
                     if (Stars[li_32] >= MinStars)
                     {
                        if (Enable_Sound_Alerts) Alert(gs_240 + " - Sell Signal on " + Symbol() + " " + gs_576 + " at: " + TimeToStr(Time[li_32], TIME_DATE|TIME_MINUTES));
                        if (Enable_Email_Notifications) SendMail(gs_240 + " - Signal", gs_240 + " - Sell Signal on " + Symbol() + " " + gs_576 + " at: " + TimeToStr(Time[li_32], TIME_DATE|TIME_MINUTES));
                     }
                  }
                  gi_224 = TRUE;
                  g_datetime_276 = Time[li_32 - gi_176];
                  if (li_32 < gi_176) g_datetime_276 = Time[li_32] + 60 * (gi_176 * Period());
                  
                  BuffSell[li_32 + 1] = ibands_52;
                  
                  gd_428 = ibands_52 + iatr_44 * gd_160;
                  gd_436 = ibands_52 - iatr_44 * gd_168;
                  

                  f0_12("Sell", li_32, Time[li_32], gd_436, g_datetime_276, gd_428, SellBox_color);
                  
                  
                  f0_16("Sell SL", li_32, Time[li_32], g_datetime_276, gd_428, SellLines_color);
                  f0_16("Sell TP", li_32, Time[li_32], g_datetime_276, gd_436, BuyLines_color);
                  
                  f0_7("Sell", li_32, Time[li_32 - 7], gd_428, "1:" + DoubleToStr((ibands_52 - gd_436) / MathMax(gd_428 - ibands_52, Point), 2));
                  f0_2("Sell", li_32, Time[li_32 - 7], gd_428, "+0/+0");
                  f0_1("Sell SLNum", li_32, Time[li_32] - 60 * (Period() * 2), gd_428, DoubleToStr(NormalizeDouble((ibands_52 - gd_428) / Point / gd_248, 0), 0), SellLines_color);
                  f0_1("Sell TPNum", li_32, Time[li_32] - 60 * (Period() * 2), gd_436, DoubleToStr(NormalizeDouble((ibands_52 - gd_436) / Point / gd_248, 0), 0), BuyLines_color);

                  SL[li_32 + 1] = gd_428;
                  TP[li_32 + 1] = gd_436;

                  if (Bid < iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, li_32 + 1)) li_68++;
                  if (Bid < iMA(NULL, 0, 34, 0, MODE_EMA, PRICE_CLOSE, li_32 + 1)) li_68++;
                  if (iATR(NULL, 0, g_period_156 / 5, li_32 + 1) > iATR(NULL, 0, g_period_156, li_32 + 1)) li_68++;
                  if (iATR(NULL, 0, g_period_156 / 5, li_32 + 1) > 1.5 * iATR(NULL, 0, g_period_156, li_32 + 1)) li_68++;
                  
                  f0_0("Sell", li_32, 0, gd_428, li_68);
                  
                  if (li_68 >= MinStars)
                     Stars[li_32 + 1] = li_68;
                   
                  g_index_212 = li_32;
                  if (gi_140) {
                     gd_560 += gd_512;
                     gd_568 += gd_504;
                     gs_144 = gs_144 + "," + DoubleToStr(gd_504, 0);
                     if (gd_512 >= 0.0) {
                        gd_544 += gd_512;
                        gd_528++;
                     } else {
                        gd_552 += gd_512;
                        gd_536++;
                     }
                  }
                  gd_444 = gd_428;
                  gd_452 = gd_436;
                  gi_460 = FALSE;
                  gd_464 = 0.0;
                  gd_504 = 0.0;
               } else {
                  if ((!gi_224) && !gi_220 && li_32 < iBarShift(NULL, 0, gia_268[g_index_420 + 1], TRUE) - gi_200) {
                     g_index_420++;
                     li_28 = li_32 + 1;
                  }
               }
               while (gi_224 && (!gi_220) && g_index_212 - li_32 <= gi_176 && li_32 >= 0) {
                  g_datetime_276 = Time[g_index_212 - gi_176];
                  if (g_index_212 < gi_176) {
                     g_datetime_276 = Time[li_32] + 60 * ((gi_176 - (g_index_212 - li_32)) * Period());
                     ObjectSet(gs_576 + "Momentics Box Sell :" + Time[g_index_212], OBJPROP_TIME2, g_datetime_276);
                     ObjectSet(gs_576 + "Momentics Sell SL :" + Time[g_index_212], OBJPROP_TIME2, g_datetime_276);
                     ObjectSet(gs_576 + "Momentics Sell TP :" + Time[g_index_212], OBJPROP_TIME2, g_datetime_276);
                     f0_0("Sell", li_32, g_index_212 - li_32, gd_428, li_68);
                  }
                  li_80 = Time[g_index_212 - 7];
                  if (g_index_212 < 7) li_80 = Time[li_32] + 60 * ((7 - (g_index_212 - li_32)) * Period());
                  if ((Close[li_32] >= gd_444 && Close[li_32] >= gd_428) || (Close[li_32] <= gd_452 && Close[li_32] <= gd_436)) f0_7("Sell", g_index_212, li_80, gd_428, "1:" + DoubleToStr((ibands_52 - gd_436) / MathMax(gd_428 - ibands_52, Point), 2));
                  else {
                     if (Close[li_32] > gd_444 && Close[li_32] < gd_428) f0_7("Sell", g_index_212, li_80, gd_428, "1:" + DoubleToStr((Close[li_32] - gd_452) / MathMax(gd_428 - Close[li_32], Point), 2));
                     else {
                        if (Close[li_32] < gd_452 && Close[li_32] > gd_436) f0_7("Sell", g_index_212, li_80, gd_428, "1:" + DoubleToStr((Close[li_32] - gd_436) / MathMax(gd_444 - Close[li_32], Point), 2));
                        else f0_7("Sell", g_index_212, li_80, gd_428, "1:" + DoubleToStr((Close[li_32] - gd_452) / MathMax(gd_444 - Close[li_32], Point), 2));
                     }
                  }
                  if (!gi_460 && g_index_212 > li_32 && High[li_32 + 1] < ibands_52) 
                  {
                     if (High[li_32 + 1] < gd_444) gd_444 = High[li_32 + 1];
                     f0_16("Sell SL", g_index_212, Time[g_index_212], g_datetime_276, gd_444, SellLines_color);
                     f0_1("Sell SLNum", g_index_212, Time[g_index_212] - 60 * (Period() * 2), gd_444, DoubleToStr(NormalizeDouble((ibands_52 - gd_444) / Point / gd_248, 0), 0), SellLines_color);
                  }
                  if (Low[li_32] <= gd_452) gd_464 = gd_452;
                  else
                     if (High[li_32] >= gd_444 && li_32 != g_index_212) gd_464 = gd_444;
                     
                  if (!gi_460 && gd_464 > 0.0) 
                  {
                     gi_460 = TRUE;
                     gd_512 = NormalizeDouble((ibands_52 - gd_464) / Point / gd_248, 0);
                     if (gd_512 > gd_504) gd_504 = gd_512;
                     if (gd_512 >= 0.0) f0_2("Sell", g_index_212, li_80, gd_428, "+" + DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                     else f0_2("Sell", g_index_212, li_80, gd_428, DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                     f0_1("Sell SLNum", g_index_212, Time[g_index_212] - 60 * (Period() * 2), gd_444, DoubleToStr(NormalizeDouble((ibands_52 - gd_444) / Point / gd_248, 0), 0), SellLines_color);
                     f0_1("Sell TPNum", g_index_212, Time[g_index_212] - 60 * (Period() * 2), gd_452, DoubleToStr(NormalizeDouble((ibands_52 - gd_452) / Point / gd_248, 0), 0), BuyLines_color);
                     
                     SL[li_32 + 1] = gd_444;
                     TP[li_32 + 1] = gd_452;

                  } else 
                  {
                     if (!gi_460) 
                     {
                        ld_84 = NormalizeDouble((ibands_52 - Low[li_32]) / Point / gd_248, 0);
                        if (ld_84 > gd_504) gd_504 = ld_84;
                        gd_512 = NormalizeDouble((ibands_52 - Close[li_32]) / Point / gd_248, 0);
                        if (gd_512 >= 0.0) f0_2("Sell", g_index_212, li_80, gd_428, "+" + DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                        else f0_2("Sell", g_index_212, li_80, gd_428, DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                        ibands_92 = Close[li_32];
                        if (g_index_212 - li_32 == gi_176) ibands_92 = ibands_52;
                        f0_1("Sell SLNum", g_index_212, Time[g_index_212] - 60 * (Period() * 2), gd_444, DoubleToStr(NormalizeDouble((ibands_92 - gd_444) / Point / gd_248, 0), 0), SellLines_color);
                        f0_1("Sell TPNum", g_index_212, Time[g_index_212] - 60 * (Period() * 2), gd_452, DoubleToStr(NormalizeDouble((ibands_92 - gd_452) / Point / gd_248, 0), 0), BuyLines_color);
                        
                        SL[li_32 + 1] = gd_444;
                        TP[li_32 + 1] = gd_452;
                        
                     } else 
                     {
                        if (gi_460) {
                           ld_100 = gd_512;
                           ld_108 = Low[iLowest(NULL, 0, MODE_LOW, g_index_212 - li_32, li_32)];
                           if (ld_108 < gd_452) ld_108 = gd_452;
                           gd_512 = NormalizeDouble((ibands_52 - ld_108) / Point / gd_248, 0);
                           if (gd_512 > gd_504) gd_504 = gd_512;
                           gd_512 = ld_100;
                           if (gd_512 >= 0.0) f0_2("Sell", g_index_212, li_80, gd_428, "+" + DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                           else f0_2("Sell", g_index_212, li_80, gd_428, DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                        }
                     }
                  }
                  li_32--;
                  if (g_index_212 - li_32 > gi_176) {
                     gi_224 = FALSE;
                     li_32 = li_24;
                     gia_268[g_index_420] = 0;
                  }
               }
               li_32 = li_24;
               li_68 = 1;
               ld_116 = Open[li_32];
               if (gi_132 && Open[li_32 + 1] < Close[li_32 + 1] && ld_116 > Open[li_32 + 1]) ld_116 = Open[li_32 + 1];
               if (gi_136) {
                  ld_116 = Low[li_32];
                  gd_180 = 0.00001;
               }
               if ((!gi_220) && !gi_224 && (li_32 >= MathMax(iBarShift(NULL, 0, gia_272[g_index_424 + 1], TRUE) - gi_200, 0) || g_index_424 == ArraySize(gia_272) - 1 && li_32 <= shift_40 - gi_200 - 1 &&
                  High[li_32] > ibands_60 && ibands_60 - ld_116 > gd_180 && Time[li_32] > g_datetime_276)) {
                  if (li_32 == 0) 
                  {
                     if (Stars[li_32] >= MinStars)
                     {
                        if (Enable_Sound_Alerts) Alert(gs_240 + " - Buy Signal on " + Symbol() + " " + gs_576 + " at: " + TimeToStr(Time[li_32], TIME_DATE|TIME_MINUTES));
                        if (Enable_Email_Notifications) SendMail(gs_240 + " - Signal", gs_240 + " - Buy Signal on " + Symbol() + " " + gs_576 + " at: " + TimeToStr(Time[li_32], TIME_DATE|TIME_MINUTES));
                     }
                  }
                  gi_220 = TRUE;
                  g_datetime_276 = Time[li_32 - gi_176];
                  if (li_32 < gi_176) g_datetime_276 = Time[li_32] + 60 * (gi_176 * Period());

                  BuffBuy[li_32 + 1] = ibands_60;
                  gd_428 = ibands_60 + iatr_44 * gd_168;
                  gd_436 = ibands_60 - iatr_44 * gd_160;
                  

                  f0_12("Buy", li_32, Time[li_32], gd_436, g_datetime_276, gd_428, BuyBox_color);
                  f0_16("Buy SL", li_32, Time[li_32], g_datetime_276, gd_436, SellLines_color);
                  f0_16("Buy TP", li_32, Time[li_32], g_datetime_276, gd_428, BuyLines_color);

                  f0_7("Buy", li_32, Time[li_32 - 7], gd_428, "1:" + DoubleToStr((gd_428 - ibands_60) / MathMax(ibands_60 - gd_436, Point), 2));
                  f0_2("Buy", li_32, Time[li_32 - 7], gd_428, "+0/+0");
                  f0_1("Buy SLNum", li_32, Time[li_32] - 120, gd_428, DoubleToStr(NormalizeDouble((gd_436 - ibands_60) / Point / gd_248, 0), 0), SellLines_color);
                  f0_1("Buy TPNum", li_32, Time[li_32] - 60 * (Period() * 2), gd_436, DoubleToStr(NormalizeDouble((gd_428 - ibands_60) / Point / gd_248, 0), 0), BuyLines_color);

                  SL[li_32 + 1] = gd_428;
                  TP[li_32 + 1] = gd_436;

                  if (Bid > iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, li_32 + 1)) li_68++;
                  if (Bid > iMA(NULL, 0, 34, 0, MODE_EMA, PRICE_CLOSE, li_32 + 1)) li_68++;
                  if (iATR(NULL, 0, g_period_156 / 5, li_32 + 1) > iATR(NULL, 0, g_period_156, li_32 + 1)) li_68++;
                  if (iATR(NULL, 0, g_period_156 / 5, li_32 + 1) > 1.5 * iATR(NULL, 0, g_period_156, li_32 + 1)) li_68++;

                  f0_0("Buy", li_32, 0, gd_428, li_68);
                  
                  if (li_68 >= MinStars)
                     Stars[li_32 + 1] = li_68;

                  if (gi_140) {
                     gd_560 += gd_512;
                     gd_568 += gd_504;
                     gs_144 = gs_144 + "," + DoubleToStr(gd_504, 0);
                     if (gd_512 >= 0.0) {
                        gd_544 += gd_512;
                        gd_528++;
                     } else {
                        gd_552 += gd_512;
                        gd_536++;
                     }
                  }
                  g_index_216 = li_32;
                  gd_444 = gd_436;
                  gd_452 = gd_428;
                  gi_460 = FALSE;
                  gd_464 = 0.0;
                  gd_504 = 0.0;
               } else {
                  if ((!gi_220) && !gi_224 && li_32 < iBarShift(NULL, 0, gia_272[g_index_424 + 1], TRUE) - gi_200) {
                     g_index_424++;
                     li_28 = li_32 + 1;
                  }
               }
               while (gi_220 && (!gi_224) && g_index_216 - li_32 <= gi_176 && li_32 >= 0) {
                  g_datetime_276 = Time[g_index_216 - gi_176];
                  if (g_index_216 <= gi_176) {
                     g_datetime_276 = Time[li_32] + 60 * ((gi_176 - (g_index_216 - li_32)) * Period());
                     ObjectSet(gs_576 + "Momentics Box Buy :" + Time[g_index_216], OBJPROP_TIME2, g_datetime_276);
                     ObjectSet(gs_576 + "Momentics Buy SL :" + Time[g_index_216], OBJPROP_TIME2, g_datetime_276);
                     ObjectSet(gs_576 + "Momentics Buy TP :" + Time[g_index_216], OBJPROP_TIME2, g_datetime_276);
                     f0_0("Buy", li_32, g_index_216 - li_32, gd_428, li_68);
                  }
                  li_80 = Time[g_index_216 - 7];
                  if (g_index_216 < 7) li_80 = Time[li_32] + 60 * ((7 - (g_index_216 - li_32)) * Period());
                  if ((Close[li_32] <= gd_444 && Close[li_32] <= gd_436) || (Close[li_32] >= gd_452 && Close[li_32] >= gd_428)) f0_7("Buy", g_index_216, li_80, gd_428, "1:" + DoubleToStr((gd_428 - ibands_60) / MathMax(ibands_60 - gd_436, Point), 2));
                  else {
                     if (Close[li_32] < gd_444 && Close[li_32] > gd_436) f0_7("Buy", g_index_216, li_80, gd_428, "1:" + DoubleToStr((gd_452 - Close[li_32]) / MathMax(Close[li_32] - gd_436, Point), 2));
                     else {
                        if (Close[li_32] > gd_452 && Close[li_32] < gd_428) f0_7("Buy", g_index_216, li_80, gd_428, "1:" + DoubleToStr((gd_428 - Close[li_32]) / MathMax(Close[li_32] - gd_444, Point), 2));
                        else f0_7("Buy", g_index_216, li_80, gd_428, "1:" + DoubleToStr((gd_452 - Close[li_32]) / MathMax(Close[li_32] - gd_444, Point), 2));
                     }
                  }
                  if (!gi_460 && g_index_216 > li_32 && Low[li_32 + 1] > ibands_60) {
                     if (Low[li_32 + 1] > gd_444) gd_444 = Low[li_32 + 1];
                     f0_16("Buy SL", g_index_216, Time[g_index_216], g_datetime_276, gd_444, SellLines_color);
                     f0_1("Buy SLNum", g_index_216, Time[g_index_216] - 60 * (Period() * 2), gd_444, DoubleToStr(NormalizeDouble((gd_444 - ibands_60) / Point / gd_248, 0), 0), SellLines_color);
                  }
                  if (High[li_32] >= gd_452) gd_464 = gd_452;
                  else
                     if (Low[li_32] <= gd_444 && li_32 != g_index_216) gd_464 = gd_444;
                  if (!gi_460 && gd_464 > 0.0) {
                     gi_460 = TRUE;
                     gd_512 = NormalizeDouble((gd_464 - ibands_60) / Point / gd_248, 0);
                     if (gd_512 > gd_504) gd_504 = gd_512;
                     if (gd_512 >= 0.0) f0_2("Buy", g_index_216, li_80, gd_428, "+" + DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                     else f0_2("Buy", g_index_216, li_80, gd_428, DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));

                     f0_1("Buy SLNum", g_index_216, Time[g_index_216] - 60 * (Period() * 2), gd_444, DoubleToStr(NormalizeDouble((gd_444 - ibands_60) / Point / gd_248, 0), 0), SellLines_color);
                     f0_1("Buy TPNum", g_index_216, Time[g_index_216] - 60 * (Period() * 2), gd_452, DoubleToStr(NormalizeDouble((gd_452 - ibands_60) / Point / gd_248, 0), 0), BuyLines_color);

                     SL[li_32 + 1] = gd_444;
                     TP[li_32 + 1] = gd_452;

                  } else {
                     if (!gi_460) {
                        ld_124 = NormalizeDouble((High[li_32] - ibands_60) / Point / gd_248, 0);
                        if (ld_124 > gd_504) gd_504 = ld_124;
                        gd_512 = NormalizeDouble((Close[li_32] - ibands_60) / Point / gd_248, 0);
                        if (gd_512 >= 0.0) f0_2("Buy", g_index_216, li_80, gd_428, "+" + DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                        else f0_2("Buy", g_index_216, li_80, gd_428, DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                        ibands_132 = Close[li_32];
                        if (g_index_216 - li_32 == gi_176) ibands_132 = ibands_60;
                        f0_1("Buy SLNum", g_index_216, Time[g_index_216] - 60 * (Period() * 2), gd_444, DoubleToStr(NormalizeDouble((gd_444 - ibands_132) / Point / gd_248, 0), 0), SellLines_color);
                        f0_1("Buy TPNum", g_index_216, Time[g_index_216] - 60 * (Period() * 2), gd_452, DoubleToStr(NormalizeDouble((gd_452 - ibands_132) / Point / gd_248, 0), 0), BuyLines_color);

                        SL[li_32 + 1] = gd_444;
                        TP[li_32 + 1] = gd_452;

                     } else {
                        if (gi_460) {
                           ld_140 = gd_512;
                           ld_148 = High[iHighest(NULL, 0, MODE_HIGH, g_index_216 - li_32, li_32)];
                           if (ld_148 > gd_452) ld_148 = gd_452;
                           gd_512 = NormalizeDouble((ld_148 - ibands_60) / Point / gd_248, 0);
                           if (gd_512 > gd_504) gd_504 = gd_512;
                           gd_512 = ld_140;
                           if (gd_512 >= 0.0) f0_2("Buy", g_index_216, li_80, gd_428, "+" + DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                           else f0_2("Buy", g_index_216, li_80, gd_428, DoubleToStr(gd_512, 0) + "/+" + DoubleToStr(gd_504, 0));
                        }
                     }
                  }
                  li_32--;
                  if (g_index_216 - li_32 > gi_176) {
                     gi_220 = FALSE;
                     li_32 = li_24;
                     gia_272[g_index_424] = 0;
                  }
               }
               li_32 = li_28;
            }
         }
      }
   }
   f0_4();
   return (0);
}

void f0_4() {
   string ls_0;
   string ls_8;
   string ls_16;
   bool li_24;
   string ls_28;
   string ls_36;
   int str2int_44;
   if (gd_280 > gd_292 / 0.8 || gd_280 < 0.75 * gd_292) {
      f0_9();
      gd_292 = gd_280;
   }
   if (gi_140 && gi_524 == 0 || gi_524 != gd_528 + gd_536) {
      gi_524 = gd_528 + gd_536;
      Comment(" Total Trades: ", DoubleToStr(gi_524, 0), 
      "\n", "               PL: ", DoubleToStr(gd_560, 0), " pips \n", "        Max PL: ", DoubleToStr(gd_568, 0), " pips\n", "      Win Rate: ", DoubleToStr(100.0 * (gd_528 / MathMax(gd_528 +
         gd_536, 1)), 0), "% \n", "    Avg Profit: ", DoubleToStr(gd_544 / MathMax(gd_528, 1), 0), " pips \n", "      Avg Loss: ", DoubleToStr(gd_552 / MathMax(gd_536, 1),
         0), " pips");
      Print(gs_144);
   }
   if (gi_300 <= 0) {
      gi_300 = WindowHandle(Symbol(), Period());
      return;
   }
   if (!gi_356 && gi_300 > 0) {
      gi_356 = TRUE;
      f0_14();
      f0_8();
      f0_15(0);
      gi_356 = TRUE;
      return;
   }
   if (gi_300 > 0) {
      f0_15(0);
      if (g_bid_604 != 0.0 && (!gi_600)) {
         f0_6(2, " ");
         gi_600 = TRUE;
      }
      g_bid_604 = Bid;
      if (tbIsClicked(gi_300, gi_308)) ShellExecuteA(0, "open", "http://www.tradewestforex.com/help/?t=momentics&s=i", 0, 0, 5);
   }
}

void f0_12(string as_0, int ai_8, int a_datetime_12, double ad_16, int a_datetime_24, double ad_28, color a_color_36) {
   string name_52;
   string ls_60;
   string name_40 = gs_576 + "Momentics Box " + as_0 + " :" + Time[ai_8];
   if (ObjectFind(name_40) >= 0) {
      ObjectSet(name_40, OBJPROP_PRICE1, ad_16);
      ObjectSet(name_40, OBJPROP_PRICE2, ad_28);
      ObjectSet(name_40, OBJPROP_TIME1, a_datetime_12);
      ObjectSet(name_40, OBJPROP_TIME2, a_datetime_24);
      return;
   }
   if (ai_8 < MaxBarsToShowBoxes) {
      for (int li_48 = ObjectsTotal() - 1; li_48 >= 0; li_48--) {
         name_52 = ObjectName(li_48);
         if (StringSubstr(name_52, 0, StringLen(gs_576) + 9) == gs_576 + "Momentics") {
            ls_60 = StringSubstr(name_52, StringFind(name_52, ":", 0) + 1, 0);
            if (iBarShift(NULL, 0, StrToInteger(ls_60), TRUE) > MaxBarsToShowBoxes) ObjectDelete(name_52);
         }
      }
      ObjectCreate(name_40, OBJ_RECTANGLE, 0, a_datetime_12, ad_16, a_datetime_24, ad_28);
      ObjectSet(name_40, OBJPROP_COLOR, a_color_36);
   }
}

void f0_16(string as_0, int ai_8, int a_datetime_12, int a_datetime_16, double ad_20, color a_color_28) {
   string name_32 = gs_576 + "Momentics " + as_0 + " :" + Time[ai_8];
   if (ObjectFind(name_32) >= 0) {
      ObjectSet(name_32, OBJPROP_TIME1, a_datetime_12);
      ObjectSet(name_32, OBJPROP_TIME2, a_datetime_16);
      ObjectSet(name_32, OBJPROP_PRICE1, ad_20);
      ObjectSet(name_32, OBJPROP_PRICE2, ad_20);
      return;
   }
   if (ai_8 < MaxBarsToShowBoxes) {
      ObjectCreate(name_32, OBJ_TREND, 0, a_datetime_12, ad_20, a_datetime_16, ad_20);
      ObjectSet(name_32, OBJPROP_COLOR, a_color_28);
      ObjectSet(name_32, OBJPROP_WIDTH, 2);
      ObjectSet(name_32, OBJPROP_RAY, FALSE);
   }
}

void f0_7(string as_0, int ai_8, int a_datetime_12, double ad_16, string a_text_24) {
   string name_32 = gs_576 + "Momentics " + as_0 + " RR :" + Time[ai_8];
   double ld_40 = 0.0;
   if (gd_292 > 0.0) ld_40 = gd_292;
   else ld_40 = gd_280;
   if (ObjectFind(name_32) >= 0) {
      ObjectSet(name_32, OBJPROP_TIME1, a_datetime_12);
      ObjectSet(name_32, OBJPROP_PRICE1, ad_16 + ld_40 / 8.0);
      ObjectSetText(name_32, a_text_24, 12, "Arial Black", Chart_ForeGround_color);
      return;
   }
   if (ai_8 < MaxBarsToShowBoxes) {
      ObjectCreate(name_32, OBJ_TEXT, 0, a_datetime_12, ad_16 + ld_40 / 8.0);
      ObjectSetText(name_32, a_text_24, 12, "Arial Black", Chart_ForeGround_color);
      ObjectSet(name_32, OBJPROP_ARROWCODE, 171);
      ObjectSet(name_32, OBJPROP_BACK, TRUE);
   }
}

void f0_2(string as_0, int ai_8, int a_datetime_12, double ad_16, string a_text_24) {
   string name_32 = gs_576 + "Momentics " + as_0 + " PL :" + Time[ai_8];
   double ld_40 = 0.0;
   if (gd_292 > 0.0) ld_40 = gd_292;
   else ld_40 = gd_280;
   if (ObjectFind(name_32) >= 0) {
      ObjectSet(name_32, OBJPROP_TIME1, a_datetime_12);
      ObjectSet(name_32, OBJPROP_PRICE1, ad_16 + ld_40 / 8.0 / 2.0);
      ObjectSetText(name_32, a_text_24, 12, "Arial Black", BuyLines_color);
      return;
   }
   if (ai_8 < MaxBarsToShowBoxes) {
      ObjectCreate(name_32, OBJ_TEXT, 0, a_datetime_12, ad_16 + ld_40 / 8.0 / 2.0);
      ObjectSetText(name_32, a_text_24, 12, "Arial Black", BuyLines_color);
      ObjectSet(name_32, OBJPROP_ARROWCODE, 171);
      ObjectSet(name_32, OBJPROP_BACK, TRUE);
   }
}

void f0_1(string as_0, int ai_8, int a_datetime_12, double ad_16, string a_text_24, color a_color_32) {
   string name_36 = gs_576 + "Momentics " + as_0 + " :" + Time[ai_8];
   double ld_44 = MathAbs(StrToDouble(a_text_24));
   a_datetime_12 -= 60 * Period();
   if (ld_44 != 0.0) a_datetime_12 -= 60 * Period();
   if (ld_44 > 10.0 || ld_44 < 0.0) a_datetime_12 -= 60 * Period();
   if (ld_44 > 100.0 || ld_44 <= -10.0) a_datetime_12 -= 60 * Period();
   if (ld_44 > 1000.0 || ld_44 <= -100.0) a_datetime_12 -= 60 * Period();
   if (ld_44 <= -1000.0) a_datetime_12 -= 60 * Period();
   double ld_52 = 0.0;
   if (gd_292 > 0.0) ld_52 = gd_292;
   else ld_52 = gd_280;
   if (ObjectFind(name_36) >= 0) {
      ObjectSet(name_36, OBJPROP_TIME1, a_datetime_12);
      ObjectSet(name_36, OBJPROP_PRICE1, ad_16 + ld_52 / 40.0);
      ObjectSetText(name_36, a_text_24, 12, "Arial Black", a_color_32);
      return;
   }
   if (ai_8 < MaxBarsToShowBoxes) {
      ObjectCreate(name_36, OBJ_TEXT, 0, a_datetime_12, ad_16 + ld_52 / 40.0);
      ObjectSetText(name_36, a_text_24, 12, "Arial Black", a_color_32);
      ObjectSet(name_36, OBJPROP_ARROWCODE, 171);
      ObjectSet(name_36, OBJPROP_BACK, TRUE);
   }
}

void f0_0(string as_0, int ai_8, int ai_12, double ad_16, int ai_24) 
{

   int lia_28[5];
   string name_44;
   lia_28[0] = Time[ai_8 - 7 - ai_12];
   lia_28[1] = Time[ai_8 - 10 - ai_12];
   lia_28[2] = Time[ai_8 - 4 - ai_12];
   lia_28[3] = Time[ai_8 - 13 - ai_12];
   lia_28[4] = Time[ai_8 - 1 - ai_12];
   if (ai_8 < gi_176) {
      lia_28[0] = Time[ai_8] + 60 * ((7 - ai_12) * Period());
      lia_28[1] = Time[ai_8] + 60 * ((10 - ai_12) * Period());
      lia_28[2] = Time[ai_8] + 60 * ((4 - ai_12) * Period());
      lia_28[3] = Time[ai_8] + 60 * ((13 - ai_12) * Period());
      lia_28[4] = Time[ai_8] + 60 * ((1 - ai_12) * Period());
   }
   double ld_32 = 0.0;
   if (gd_292 > 0.0) ld_32 = gd_292;
   else ld_32 = gd_280;
   
   int StarsX = 0;
   
   for (int li_40 = 1; li_40 <= ai_24; li_40++) 
   {
      name_44 = gs_576 + "Momentics " + as_0 + " Star-" + li_40 + " :" + ((Time[ai_8 + ai_12]));
      
      if (ObjectFind(name_44) >= 0)
         ObjectDelete(name_44);
         
      if (ObjectFind(name_44) >= 0) 
      {
         ObjectSet(name_44, OBJPROP_TIME1, lia_28[li_40 - 1]);
         ObjectSet(name_44, OBJPROP_PRICE1, ad_16 + ld_32 / 5.0);
         
      } else 
      {
         if (ai_8 < MaxBarsToShowBoxes) 
         {
            ObjectCreate(name_44, OBJ_ARROW, 0, lia_28[li_40 - 1], ad_16 + ld_32 / 5.0);
            ObjectSet(name_44, OBJPROP_COLOR, Chart_ForeGround_color);
            ObjectSet(name_44, OBJPROP_WIDTH, 3);
            ObjectSet(name_44, OBJPROP_ARROWCODE, 171);
            ObjectSet(name_44, OBJPROP_BACK, TRUE);
         }
      }
   }
   
}

void f0_9() {
   string name_4;
   string ls_12;
   string ls_20;
   double ld_28;
   int li_36;
   int li_unused_40;
   double ld_44;
   double ld_52;
   string ls_64;
   double ld_72;
   string name_84;
   int datetime_92;
   double ld_96;
   for (int li_0 = 0; li_0 < ObjectsTotal(); li_0++) {
      name_4 = ObjectName(li_0);
      if (StringFind(name_4, gs_576 + "Momentics Box", 0) >= 0) {
         ls_12 = StringSubstr(name_4, StringFind(name_4, ":", 0) + 1, 0);
         ls_20 = StringSubstr(name_4, StringLen(gs_576) + 14, StringFind(name_4, " ", StringLen(gs_576) + 14) - (StringLen(gs_576) + 14));
         ld_28 = ObjectGet(name_4, OBJPROP_PRICE2);
         li_36 = ObjectGet(name_4, OBJPROP_TIME1);
         li_unused_40 = ObjectGet(name_4, OBJPROP_TIME2);
         ld_44 = ObjectGet(gs_576 + "Momentics " + ls_20 + " TP :" + ls_12, OBJPROP_PRICE1);
         ld_52 = ObjectGet(gs_576 + "Momentics " + ls_20 + " SL :" + ls_12, OBJPROP_PRICE1);
         for (int li_60 = 1; li_60 <= 5; li_60++) ObjectSet(gs_576 + "Momentics " + ls_20 + " Star-" + li_60 + " :" + ls_12, OBJPROP_PRICE1, ld_28 + gd_280 / 5.0);
         ObjectSet(gs_576 + "Momentics " + ls_20 + " RR :" + ls_12, OBJPROP_PRICE1, ld_28 + gd_280 / 8.0);
         ObjectSet(gs_576 + "Momentics " + ls_20 + " PL :" + ls_12, OBJPROP_PRICE1, ld_28 + gd_280 / 8.0 / 2.0);
         ls_64 = "TP";
         ld_72 = ld_44;
         for (int count_80 = 0; count_80 < 2; count_80++) {
            name_84 = gs_576 + "Momentics " + ls_20 + " " + ls_64 + "Num :" + ls_12;
            datetime_92 = li_36 - 60 * Period();
            ld_96 = MathAbs(StrToDouble(ObjectDescription(name_84)));
            if (ld_96 != 0.0) datetime_92 -= 60 * Period();
            if (ld_96 > 10.0 || ld_96 < 0.0) datetime_92 -= 60 * Period();
            if (ld_96 > 100.0 || ld_96 <= -10.0) datetime_92 -= 60 * Period();
            if (ld_96 > 1000.0 || ld_96 <= -100.0) datetime_92 -= 60 * Period();
            if (ld_96 <= -1000.0) datetime_92 -= 60 * Period();
            ObjectSet(name_84, OBJPROP_TIME1, datetime_92);
            ObjectSet(name_84, OBJPROP_PRICE1, ld_72 + gd_280 / 40.0);
            ls_64 = "SL";
            ld_72 = ld_52;
         }
      }
   }
}

int f0_10(string as_0, string as_8) {
   gi_236 = TRUE;
   gs_228 = " ";
   gi_412 = TRUE;
   f0_6(2, gs_228);
   return (gi_236);
}


