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

1VS_ChannelTrend_V1.0

vs_channeltrend_v1.0.mq5

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

1VS_ChannelTrend_V1.0 — это пользовательский индикатор для MetaTrader 4, который анализирует ценовые данные и отображает на графике трендовые и канальные линии. Индикатор определяет восходящие и нисходящие тренды, начиная с заданного бара, и рисует сплошные трендовые линии, а также пунктирные линии каналов, параллельные тренду.

При появлении нового бара или изменении точки старта анализа индикатор пересчитывает и перерисовывает все линии. Также опционально отрисовываются дополнительные внутренние трендовые линии внутри обнаруженных каналов. В углу графика отображается количество найденных восходящих и нисходящих трендов.

Все созданные графические объекты (трендовые линии, метки) удаляются при деинициализации индикатора. Индикатор работает в основном окне графика и использует стандартные объекты OBJ_TREND и OBJ_LABEL для визуализации.

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

НастройкаОписание
????????? ??? ?????????? ????? ( ?????????? ???????????? ????? StartTL ) (FirstBar) FirstBar — Номер бара, с которого начинается анализ ценовых данных для построения трендов.
??????????? ?????? ????? ? ????? (DeltaBar) DeltaBar — Минимальное количество баров, которое должен содержать тренд для отображения трендовой линии.
?????? ??? ??? ?????????????? ?????????? ????? ????????? ? ????????????? (InsLine) InsLine — Включает или отключает отрисовку дополнительных внутренних трендовых линий внутри обнаруженных каналов.
Получить полный код

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

#property indicator_chart_window
extern int       FirstBar  =  1;    // ????????? ??? ?????????? ?????  ( ?????????? ???????????? ????? StartTL )
extern int       DeltaBar  =  3;    // ??????????? ?????? ????? ? ?????
extern bool      InsLine   =  true; // ?????? ??? ??? ?????????????? ?????????? ????? ????????? ? ?????????????

color     ColorTL_U   =  Blue,
          ColorTL_D   =  Red,
          ColorCH_U   =  Blue,
          ColorCH_D   =  Red,
          ColorTR_U   =  Green,
          ColorTR_D   =  Violet;
string    NameTL_U    =  "Up_", 
          NameTL_D    =  "Dn_",
          NameCH_U    =  "UpZ_", 
          NameCH_D    =  "DnZ_",
          NameTR_U    =  "UpTr_", 
          NameTR_D    =  "DnTr_";
int       last_bar    =  0,
          cntLine     =  1,       // ????? ????????? ?????
          Line_U[100][2],       // ?????? ????????? ????????? ????? . ?????? ????? ????? ???? ?????? 
          Line_D[100][2],       // ?????? ????????? ????????? ????? . ?????? ????? ????? ???? ?????? 
          LineI_U[100][2],      // ?????? ????????? ?????????? ????????? ????? . ?????? ????? ????? ???? ?????? 
          LineI_D[100][2],      // ?????? ????????? ??????????  ????????? ????? . ?????? ?????? ????? ???? ?????? 
          LineShow_U[100][2],   // ?????? ????????? ???????????? ????????? ????? . ?????? ?????? ????? ???? ?????? - ???????????? Line_U[100][2]
          LineShow_D[100][2];   // ?????? ????????? ???????????? ????????? ????? . ?????? ?????? ????? ???? ?????? - ???????????? Line_D[100][2] 

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

int deinit()
  {
   ObjectDelete("StartTL");
   DeleteTrendLine( NameTL_U, 100);
   DeleteTrendLine( NameTL_D, 100);
   DeleteTrendLine( NameCH_U, 100);
   DeleteTrendLine( NameCH_D, 100);
   DeleteTrendLine( NameTR_U, 100);
   DeleteTrendLine( NameTR_D, 100);
   ObjectDelete("MyLabel_D");
   ObjectDelete("MyLabel_U");
   return(0);
  }

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

void Draw_TL ()
{
   int    i,
          j,
          MaxTL,Bar2;
   double Bar1_Value,
          Bar2_Value,
          Bar0_Value;
   FirstBar=iBarShift(Symbol(),Period(), ObjectGet("StartTL",0), FALSE);

   DeleteTrendLine( NameTL_U, 100);
   DeleteTrendLine( NameTL_D, 100);
   DeleteTrendLine( NameCH_U, 100);
   DeleteTrendLine( NameCH_D, 100);
   DeleteTrendLine( NameTR_U, 100);
   DeleteTrendLine( NameTR_D, 100);

   Line_U[0,0]=FirstBar;                           // ?????? ??? ?????? ????????? ????? Up
   Line_U[0,1]=FindPoint(Line_U[0,0],Bars,1);      // ?????? ??? ?????? ????????? ????? Up
   Line_D[0,0]=FirstBar;                           // ?????? ??? ?????? ????????? ????? Down
   Line_D[0,1]=FindPoint(Line_D[0,0],Bars,-1);     // ?????? ??? ?????? ????????? ????? Down

   i=0;
   while ( Line_U[i,1] > Line_U[i,0] )     // ???? ??????? ????????? ????? ??????? ?? ?????????? ? ?????? Line
   {
      i++;
      Line_U[i,0]=Line_U[i-1,1];
      Line_U[i,1]=FindPoint(Line_U[i,0],Bars,1);
   }

   MaxTL=i-1;
   cntLine=0;
   j=0;    
   for (i=0; i<=MaxTL; i++) //  ?? ???????????? ??????? ???????? ??????? ????????? ?????? 
   {
      if(Line_U[i,1]-Line_U[i,0] >=DeltaBar )
      {
         cntLine++;
         LineShow_U[j,0]=Line_U[i,0];     // ????????? ?????? ? ?????????????? ?????????? ???????. 1 ??????????
         LineShow_U[j,1]=Line_U[i,1];     // ????????? ?????? ? ?????????????? ?????????? ???????. 2 ??????????
         j++;
         CreateLine(NameTL_U+cntLine,Time[Line_U[i,1]], Low[ Line_U[i,1] ],Time[Line_U[i,0]],Low[ Line_U[i,0] ],ColorTL_U,STYLE_SOLID);

         Bar2=DrawLine (NameTL_U+cntLine, Line_U[i,1], Line_U[i,0], 1); // ??????? ??? ?????????????? ????? ??????
         Bar2_Value=ObjectGetValueByShift(NameTL_U+cntLine, Bar2);      // ???????? ????? ????
         Bar0_Value=Low[ Line_U[i,0] ]+(High[ Bar2 ]-Bar2_Value  );     // ??????? ????? ?????? ?????? ? ?????? ?????
         CreateLine(NameCH_U+cntLine,Time[Line_U[i,1]], Low[ Line_U[i,1] ]+(High[ Bar2 ]-Bar2_Value ),  Time[Line_U[i,0]],Bar0_Value,ColorCH_U,STYLE_DASH);
         ObjectSet   (NameCH_U+cntLine,OBJPROP_RAY,false);
      }   
   }
   ObjectSetText("MyLabel_U", "Up=  "+ cntLine, 12, "Times New Roman", Blue);

   if (InsLine==true)
   {

      int Bar_1,Bar_2;
      MaxTL=j;
      for(j=0; j<MaxTL; j++)
      {

         Bar_1=iHighest(Symbol(),Period(),MODE_HIGH,LineShow_U[j][1]-LineShow_U[j][0],LineShow_U[j][0]); //?????? ???. ?????????, ??? ???????????? ?? ?????? ??????. 
         Bar_2=LineShow_U[j,1];                       // ?????? ??? ????????? ?????? ??? ?????? ????????? ????? Up
         LineI_U[0,0]=Bar_1;                          //?????? ??? ????????? ?????. ????????? ??? 

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

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

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

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

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

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

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