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

double topbottom @fsignalspot.com.mq5

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

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

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

О программе

Индикатор «double topbottom» анализирует ценовые данные на заданном таймфрейме и выявляет на графике паттерны двойной вершины и двойного дна. Для этого он собирает экстремумы (максимумы и минимумы) за настраиваемый период, определяет два наиболее значимых пика и отрисовывает горизонтальные трендовые линии на уровне второго по значимости экстремума. Паттерн отрисовывается только при условии, что расстояние между пиками превышает заданный минимум в барах.

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

Индикатор работает в окне графика MetaTrader 5 и использует legacy-функцию start() для пересчёта. Он не содержит торговой логики и не отправляет рыночные ордера. Все построения являются чисто визуальными аналитическими объектами типа OBJ_TREND.

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

НастройкаОписание
AutoDelete Автоматическое удаление всех объектов индикатора при появлении нового бара и при деинициализации. При значении true старые построения удаляются перед отрисовкой новых, предотвращая наложение. При значении false объекты остаются на графике.
TimeFrame Таймфрейм, на котором осуществляется анализ экстремумов. По умолчанию соответствует текущему таймфрейму графика. Может быть изменено на любой другой через перечисление ENUM_TIMEFRAMES.
TBperiod Количество баров, используемых для анализа экстремумов. Индикатор собирает максимумы и минимумы за указанный период и выбирает два наибольших значения для построения паттерна. Значение автоматически корректируется с учётом кратности таймфрейма и ограничивается диапазоном от 5 до 43200 кратных период
BarsMinSeparation Минимальное количество баров, разделяющих два пика (вершину или дно), чтобы паттерн считался валидным. Увеличение значения фильтрует близко расположенные экстремумы и оставляет только более значимые двойные формы.
TopBarColor Цвет трендовых линий, отрисовываемых для паттерна двойной вершины. Определяет визуальное обозначение уровня второго по значимости максимума в анализируемом периоде.
BottomBarColor Цвет трендовых линий, отрисовываемых для паттерна двойного дна. Определяет визуальное обозначение уровня второго по значимости минимума в анализируемом периоде.
LineStyle Стиль линий трендовых объектов, отрисовываемых для двойных вершин и дна. Задаётся через перечисление ENUM_LINE_STYLE (например, пунктирная, сплошная и т.д.).
LineWidth Толщина линий трендовых объектов в пикселях. Определяет визуальную заметность линий двойных вершин и дна на графике.
Получить полный код

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

???#property copyright "Copyright ? 2011, fxprotrader"

#property indicator_chart_window

extern bool            AutoDelete  =  true;
extern ENUM_TIMEFRAMES  TimeFrame  =  PERIOD_CURRENT;
extern int               TBperiod  =  100;  
extern int      BarsMinSeparation  =  0;  
extern color          TopBarColor  =  clrGold;  //Red;
extern color       BottomBarColor  =  clrAqua;  //LimeGreen;
extern ENUM_LINE_STYLE  LineStyle  =  STYLE_DASH;
extern int              LineWidth  =  3;

datetime thisbartime=0, delBar=0;  double Poin;  string PREF, sTFR;
double myarray1[], myarray2[], myarray3[], myarray4[];  int TFK;

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

int deinit()  { if (AutoDelete) ALL_OBJ_DELETE();  Comment("");  return(0); }

void ALL_OBJ_DELETE()
{
   string name;
   for (int s=ObjectsTotal()-1; s>=0; s--) {
        name=ObjectName(s);
        if (StringSubstr(name,0,StringLen(PREF))==PREF) ObjectDelete(name); }
}  

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

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;

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

   if (AutoDelete)  ALL_OBJ_DELETE();

for (int i=0; i<TBperiod; i++) {
   int y = iBarShift(NULL,TimeFrame,Time[i],false);
val1 = iHigh(NULL,TimeFrame,y);  //High[i];
val2 = iLow(NULL,TimeFrame,y);   //Low[i];
if (val1 > 0){
cnt1++;
myarray1[cnt1] = val1;             
myarray2[cnt1] = val1;
myarray3[cnt1] = val2;
myarray4[cnt1] = val2;
}
}//for

thissz = ArrayResize(myarray1,TBperiod);
ArraySort(myarray1,WHOLE_ARRAY,1*TFK,MODE_ASCEND);

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

for ( x=1*TFK; x<thissz; x++) {
 this_

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

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

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

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

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

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

Стоимость полного кода
374,40₽ ≈ $4.58