← К каталогу
Исходный код · ID 1585

rbicaowithfractals.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор реализует построение кирпичных (range) баров с фиксированным шагом цены в пунктах на платформе MetaTrader 5. Каждый бар формируется при достижении заданного диапазона между максимальной и минимальной ценой, после чего отрисовывается новый кирпич с соответствующим направлением.

Дополнительно индикатор отображает компоненты, аналогичные Ишимоку: линии Tenkan-sen и Kijun-sen, заливку Senkou Span A/B, а также запаздающий индикатор Chikou Span. Линии рисуются на основе экстремумов диапазонных баров за соответствующие периоды.

Индикатор также определяет фракталы (верхние и нижние) на основе значений High и Low буферов и отмечает их стрелочными маркерами. Фракталы отрисовываются только при наличии достаточного количества построенных кирпичей. Все расчёты выполняются в отдельном окне с использованием 13 индикаторных буферов.

Настройки программы

НастройкаОписание
PipRange Шаг диапазона в пунктах, задающий фиксированную величину размаха каждого кирпичного бара (High минус Low).
Tenkan-sen (InpTenkan) Период расчёта линии Tenkan-sen (линии конверсии), определяемый количеством диапазонных баров для поиска экстремумов.
Kijun-sen (InpKijun) Период расчёта линии Kijun-sen (базовой линии), определяемый количеством диапазонных баров для поиска экстремумов.
Senkou Span B (InpSenkou) Период расчёта линии Senkou Span B (опережающего спана B), определяемый количеством диапазонных баров для поиска экстремумов.
Получить полный код

Поиск по коду файла

#property version   "1.10"
#property indicator_separate_window

#property indicator_buffers 13
#property indicator_plots   7
#property indicator_type1   DRAW_COLOR_CANDLES
#property indicator_color1  clrDodgerBlue, clrRed, clrNONE
#property indicator_type2   DRAW_LINE
#property indicator_type3   DRAW_LINE
#property indicator_type4   DRAW_FILLING
#property indicator_type5   DRAW_LINE
#property indicator_color2  OrangeRed
#property indicator_color3  Blue
#property indicator_color4  SandyBrown,Thistle
#property indicator_color5  Lime
#property indicator_label1  "RangeBars"
#property indicator_label2  "Tenkan-sen"
#property indicator_label3  "Kijun-sen"
#property indicator_label4  "Senkou Span A;Senkou Span B"
#property indicator_label5  "Chikou Span"
#property indicator_type6   DRAW_ARROW
#property indicator_type7   DRAW_ARROW
#property indicator_color6  Gray
#property indicator_color7  Gray
#property indicator_label6  "Fractal Up"
#property indicator_label7  "Fractal Down"

input ushort PipRange = 5;

input int InpTenkan=9;     // Tenkan-sen
input int InpKijun=16;     // Kijun-sen
input int InpSenkou=26;    // Senkou Span B

double pipRange,tempHigh,tempLow,init, prevClose, tvol;
int paintBricks = 0;int    ExtArrowShift=-10;

double OpenBuffer[];
double HighBuffer[];
double LowBuffer[];
double CloseBuffer[];
double ColorBuffer[];

double    ExtTenkanBuffer[];
double    ExtKijunBuffer[];
double    ExtSpanABuffer[];
double    ExtSpanBBuffer[];
double    ExtChikouBuffer[];
double    ExtUpperBuffer[];
double    ExtLowerBuffer[];
double    TickVolumeBuffer[]; 

int OnInit()
  {
      // код доступен только после оплаты
   }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
      // код доступен только после оплаты
   }
  if(prev_calculated==0 || prev_calculated > rates_total) // проверка на первичный пересчет индикатора
  FirstCalculated(rates_total,close,high,low);// return 0;             // и отправка на пересчет

  if(rates_total > prev_calculated && prev_calculated != 0) // проверка на появление нового бара
  ShiftBricksRight(rates_total-1);                          // и отправка на сдвиг индикаторных буферов вправо

      tvol++;
      bool flag = false;

      if(close[rates_total-1]>tempHigh) tempHigh = close[rates_total-1];
      if(close[rates_total-1]<tempLow) tempLow = close[rates_total-1];

         if(tempHigh-tempLow>=pipRange)
         {
         if(close[rates_total-1]>prevClose)
            {
            while(tempHigh-tempLow>=pipRange && !IsStopped())
               {
               OpenBuffer[rates_total-1] = prevClose;
               LowBuffer[rates_total-1] = tempLow;
               tempLow += pipRange;
               prevClose = tempLow;
               CloseBuffer[rates_total-1] = tempLow;
               HighBuffer[rates_total-1] = tempLow;
               ColorBuffer[rates_total-1] = 0;
               ShiftBricksLeft(rates_total,true);
               flag = true;
               }

            }
         if(close[rates_total-1]<=prevClose)
            {
            while(tempHigh-tempLow>=pipRange && !IsStopped())
               {
               OpenBuffer[rates_total-1] = prevClose;
               HighBuffer[rates_total-1] = tempHigh;
               tempHigh -= pipRange;
               prevClose = tempHigh;
               CloseBuffer[rates_total-1] = tempHigh;
               LowBuffer[rates_total-1] = tempHigh;
               ColorBuffer[rates_total-1] = 1;
               ShiftBricksLeft(rates_total,true);
               flag = true;
               }

            }
         }
         if(flag) tvol = 0;

         OpenBuffer[rates_total-1] = prevClose;
         HighBuffer[rates_total-1] = tempHigh;
         LowBuffer[rates_total-1] = tempLow;
         CloseBuffer[rates_total-1] = close[rates_total-1];
         TickVolumeBuffer[rates_total-1] = tvol;
         if(close[rates_total-1]>prevClose) ColorBuffer[rates_total-1] = 0;
         else ColorBuffer[rates_total-1] = 1;

Показано первые 50% кода (символов: 9286)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
928,60₽ ≈ $11.35