double topbottom @fsignalspot.com.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.