TRUE Forex

Просмотр кода форекс индикатора !FT HISTOGRAM.mq4

// +----------------------------------------------------------------------------------------+ //
// |                                        !FT HISTOGRAM  \¦/                              | //
// |                            Knowledge of the ancients (т у)                             | //
// |_________________________________________________o0o___(_)___o0o________________________| //
// |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|____|_____| //
// |                                                                                   2011 | //
// |----------------------------------------------------------------------------------------| //
// | Programming language:     MQL4                                                         | //
// | Development platform:     MetaTrader 4                                                 | //
// |          End product:     Indicator for MetaTrader 4 designed                          | //
// |                           for Build 229 (current version)                              | //
// +----------------------------------------------------------------------------------------+ //

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 White
#property indicator_width2 4
#property indicator_color3 Black
#property indicator_width3 4

int period = 10;
double g_ibuf_80[];
double g_ibuf_84[];
double g_ibuf_88[];

int init() {
   SetIndexStyle(0, DRAW_NONE);
   SetIndexStyle(1, DRAW_HISTOGRAM);
   SetIndexStyle(2, DRAW_HISTOGRAM);
   IndicatorDigits(Digits + 1);
   SetIndexBuffer(0, g_ibuf_80);
   SetIndexBuffer(1, g_ibuf_84);
   SetIndexBuffer(2, g_ibuf_88);
   IndicatorShortName("VII");
   SetIndexLabel(0, NULL);
   SetIndexLabel(1, NULL);
   SetIndexLabel(2, NULL);
   return (0);
}

int start() {
   double ld_8;
   double ld_16;
   double ld_80;
   int li_4 = IndicatorCounted();
   double ld_32 = 0;
   double ld_40 = 0;
   double ld_unused_48 = 0;
   double ld_unused_56 = 0;
   double ld_64 = 0;
   double ld_unused_72 = 0;
   double l_low_88 = 0;
   double l_high_96 = 0;
   if (li_4 > 0) li_4--;
   int li_0 = Bars - li_4;
   for (int li_104 = 0; li_104 < Bars; li_104++) {
      l_high_96 = High[iHighest(NULL, 0, MODE_HIGH, period, li_104)];
      l_low_88 = Low[iLowest(NULL, 0, MODE_LOW, period, li_104)];
      ld_80 = (High[li_104] + Low[li_104]) / 2.0;
      if (l_high_96 - l_low_88 == 0.0) ld_32 = 0.67 * ld_40 + (-0.33);
      else ld_32 = 0.66 * ((ld_80 - l_low_88) / (l_high_96 - l_low_88) - 0.5) + 0.67 * ld_40;
      ld_32 = MathMin(MathMax(ld_32, -0.999), 0.999);
      if (1 - ld_32 == 0.0) g_ibuf_80[li_104] = ld_64 / 2.0 + 0.5;
      else g_ibuf_80[li_104] = MathLog((ld_32 + 1.0) / (1 - ld_32)) / 2.0 + ld_64 / 2.0;
      ld_40 = ld_32;
      ld_64 = g_ibuf_80[li_104];
   }
   bool li_108 = TRUE;
   for (li_104 = Bars; li_104 >= 0; li_104--) {
      ld_16 = g_ibuf_80[li_104];
      ld_8 = g_ibuf_80[li_104 + 1];
      if ((ld_16 < 0.0 && ld_8 > 0.0) || ld_16 < 0.0) li_108 = FALSE;
      if ((ld_16 > 0.0 && ld_8 < 0.0) || ld_16 > 0.0) li_108 = TRUE;
      if (!li_108) {
         g_ibuf_88[li_104] = ld_16;
         g_ibuf_84[li_104] = 0.0;
      } else {
         g_ibuf_84[li_104] = ld_16;
         g_ibuf_88[li_104] = 0.0;
      }
   }
   return (0);
}

Комментарии к исходному коду форекс индикатора !FT HISTOGRAM.mq4
В целях безопасности и борьбы со спамом в тексте комментариев запрещено размещать html-теги и ссылки. Благодарим за понимание.

  • X
  • 0% загружено
« индикатор !CrazyEddyBoxes.mq4
индикатор !FT mCODE.mq4 »