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

clear method-sd v1.11.mq5

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

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

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

О программе

Индикатор для MetaTrader 4, который анализирует ценовые свинги на графике и отображает зоны спроса и предложения в виде цветных прямоугольников. Также отмечает точки разворота свингов и переходы между зонами спроса и предложения.

Индикатор использует четыре буфера для отрисовки линий и точек свингов, а при образовании новых баров вычисляет прямоугольники-зоны на основе исторических данных за заданный периодLookback. Визуальные элементы управляются настройками отображения и цветами.

Объекты рисуются на графике с префиксом "CSD." и обновляются при появлении нового бара. Индикатор не использует торговые API и предназначен исключительно для визуального анализа.

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

НастройкаОписание
Lookback Период анализа — Количество баров для анализа при вычислении зон спроса и предложения
ShowCMLine Показать линии свингов — Отображение линий свингов
ShowCMDot Показать точки свингов — Отображение точек-меток разворотов свингов в виде стрелок
ShowSbDDbS Показать переходы зон — Отображение прямоугольников переходов между зонами спроса и предложения
demtosupclr Показать переход спрос→предложение — Переключатель отображения переходов от спроса к предложению
suptodemclr Показать переход предложение→спрос — Переключатель отображения переходов от предложения к спросу
SupplyClr Цвет зоны предложения — Цвет прямоугольников зоны предложения
DemandClr Цвет зоны спроса — Цвет прямоугольников зоны спроса
DemToSupClr Цвет перехода спрос→предложение — Цвет прямоугольников, обозначающих переход зоны спроса в зону предложения
SupToDemClr Цвет перехода предложение→спрос — Цвет прямоугольников, обозначающих переход зоны предложения в зону спроса
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 MediumSeaGreen
#property indicator_color2 Maroon
#property indicator_color3 MediumSeaGreen
#property indicator_color4 Maroon

#property indicator_width3 2
#property indicator_width4 2

extern int   Lookback    = 20000;
extern bool  ShowCMLine  = false;
extern bool  ShowCMDot   = false;
extern bool  ShowSbDDbS = true;
extern bool  demtosupclr = true;
extern bool  suptodemclr = true;
extern color SupplyClr   = clrLightGray;
extern color DemandClr   = clrLightGray;
extern color DemToSupClr = clrPowderBlue;
extern color SupToDemClr = clrPowderBlue;

double BuffUp[];
double BuffDn[];
double BuffDotUp[];
double BuffDotDn[];

bool UpSwing = true;
double HighestLow, LowestHigh;

string ObjPref = "CSD.";

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

int deinit()
{

   delObjs();

   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
/**
 *
 */
void getSD()
{
   int i, j, k, l, m, limit = MathMin(Bars, Lookback)
       , ihh, ihl, iesw, isw //highest high bar, highest low bar, end bar of swing, index swing 
       , ill, ilh //lowest low bar, lowest high bar
       , upswgcnt, dnswgcnt  //upswing count, dnswing count
       , supcnt, demcnt  //unbroken upswing count, unbroken dnswing count

       , suptodemcnt, demtosupcnt
       ;
   double hl, hh  //highest low, highest high
         ,lh, ll  //lowest hight, lowest low
         ,upswg[][4], dnswg[][4]
         ,sup[][4], dem[][4]   //unbroken upswing array, unbroken dnswing array

         ,suptodem[][4], demtosup[][4]     
         ;

   bool broken, testprev; //is supply/demand broken, the swing is testing previous swing      

   delObjs();

   for (i=limit-1; i>0; i--)
   {
      if(BuffDotUp[i] !=0.0 && BuffDotDn[i+1] != 0.0) 
      {
         for (j=i-1; j>0; j--)
         {
            if(BuffDotUp[j] != 0.0 && BuffDotDn[j-1] != 0.0)
            {
               ihh = iHighest(NULL, 0, MODE_HIGH, (i-j)+1, j);
               ihl = iHighest(NULL, 0, MODE_LOW, (i-j)+1, j);
               hh = High[ihh];
               hl = Low [ihl];

               if (High[i+1]>hh) { hh=High[i+1]; ihh=i+1; }

               upswgcnt++;
               ArrayResize(upswg,upswgcnt);
               upswg[upswgcnt-1][0] = hh;
               upswg[upswgcnt-1][1] = hl; 
               upswg[upswgcnt-1][2] = ihh;              
               upswg[upswgcnt-1][3] = j-1; //--end bar of swing
               i = j-1;
               break;
             }
          }            
      }
   }

   for (i=limit-1; i>0; i--)
   {
      if(BuffDotDn[i] != 0.0 && BuffDotUp[i+1] != 0.0)
      {
         for (j=i-1; j>0; j--)
         {
            if(BuffDotDn[j] != 0.0 && BuffDotUp[j-1] != 0.0)
            {
               ill = iLowest(NULL, 0, MODE_LOW, (i-j)+1, j);
               ilh = iLowest(NULL, 0, MODE_HIGH, (i-j)+1, j);
               ll = Low[ill];
               lh = High[ilh];

               if (Low[i+1]<ll) { ll=Low[i+1]; ill=i+1; }

               dnswgcnt++;
               ArrayResize(dnswg,dnswgcnt);
               dnswg[dnswgcnt-1][0] = ll;
               dnswg[dnswgcnt-1][1] = lh; 
               dnswg[dnswgcnt-1][2] = ill;              
               dnswg[dnswgcnt-1][3] = j-1; //--end bar of swing
               i = j-1;
               break;
             }
          }            
      }
   }     

   for (i=0; i<upswgcnt; i++)
   {
      hh = upswg[i][0]; hl = upswg[i][1]; ihh = upswg[i][2]; iesw = upswg[i][3];
      broken = false;
      for (j=iesw-1; j>0; j--)
      {
         if (High[j]>hh) { broken = true; break; }

      }

      if (!broken)
      {
         testprev = false;

         for (k=supcnt-1; k>=0; k--)
         {
            testprev = (hh <= sup[k][0] && hh >= sup[k][1]);
            if (testprev) break;            
         }
         

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

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

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

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

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

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

Стоимость полного кода
783₽ ≈ $9.57