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

fxpt_dbltopbottom.mq5

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

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

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

О программе

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

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

Дополнительно можно задать минимальное расстояние между соседними барами, формирующими уровень: если расстояние меньше заданного значения, соответствующая линия не отображается. Это позволяет отфильтровывать слишком близко расположенные экстремумы.

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

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

НастройкаОписание
NumberOfBars Количество последних баров, анализируемых для поиска локальных максимумов и минимумов. Значение ограничивается сверху числом 100.
BarsMinSeparation Минимальное расстояние в барах между соседними барами, образующими уровень. Если расстояние меньше этого значения, соответствующая линия не отображается. Значение 0 показывает даже соседние бары.
TopBarColor Цвет горизонтальных линий, построенных по локальным максимумам.
BottomBarColor Цвет горизонтальных линий, построенных по локальным минимумам.
LineWidth Толщина горизонтальных линий.
LineStyle Стиль отображения горизонтальных линий.
Получить полный код

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

#property indicator_chart_window
extern int NumberOfBars   = 100;  

extern int BarsMinSeparation   = 0;  
extern color TopBarColor    = Red;
extern color BottomBarColor = LimeGreen;
extern int LineWidth = 2;
extern int LineStyle = 2;
datetime thisbartime=0;

double Poin;

int deinit() {
   DeleteObjects();
   return(0);
}

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

int DeleteObjects(){

for (int shift=100; shift>0; shift--) {
  ObjectDelete("DailyRLine1_"+shift);
  ObjectDelete("DailyTrend1_"+shift);
  ObjectDelete("DailyTrend2_"+shift);

  }
  return(0);
  }

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

double val1,val2; 
color LineClr;
int x;
int cnt1=0,cnt2=0;
int thissz=0;
double LinePos1,LinePos2,LinePos3;

int ele_indx1=0;
int ele_indx2=0;
double this_ele1,this_ele2;
int Time1,Time2,DistanceTop,DistanceBot;

string sObjName,text;
int Color1,Color2;

if(thisbartime!=Time[0]){
thisbartime=Time[0]; 

double myarray1[100];
double myarray2[100];
double myarray3[100];
double myarray4[100];
if(NumberOfBars>100){
NumberOfBars=100;
}

for (int i=0; i<NumberOfBars; i++) {
val1 = High[i];
val2 = Low[i];
if(val1 > 0){
cnt1++;
myarray1[cnt1] = val1;
myarray2[cnt1] = val1;
myarray3[cnt1] = val2;
myarray4[cnt1] = val2;
}
}//for

thissz = ArrayResize(myarray1,NumberOfBars);
ArraySort(myarray1,WHOLE_ARRAY,1,MODE_ASCEND);

 LinePos1 = (myarray1[cnt1-1]);
 LinePos2 = (myarray1[cnt1-4]);

for ( x=1; x<thissz; x++) {
 this_ele1 = myarray2[x+1];
 this_ele2 = myarray2[x+1];

if(this_ele1==LinePos1){

ele_indx1=x;
 }
if(this_ele2==LinePos2){

ele_indx2=x;
 }
 }

if(ele_indx2 > ele_indx1){
 DistanceTop=MathAbs(ele_indx

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

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

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

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

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

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

Стоимость полного кода
294,50₽ ≈ $3.60