JS_CC_Trend
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «js_cc_trend.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
JS_CC_Trend — пользовательский индикатор для MetaTrader 5, который отображает на графике пользовательские свечные объекты, построенные на основе накопительной оценки ценовых изменений. Индикатор формирует свечи трёх уровней иерархии, где каждый последующий уровень зависит от завершения свечей предыдущего. Основная функция индикатора — визуализация трендовых паттернов через рисование прямоугольных объектов на графике цены. Пользователь может настраивать количество баров, период анализа, отображение и заливку свечей каждого уровня, а также их цвет и стиль линий. При обновлении данных индикатор пересчитывает накопительные счётчики, удаляет ранее созданные объекты и перерисовывает свечи, что позволяет адаптировать отображение под различные типы графиков.
Настройки программы
| Настройка | Описание |
|---|---|
| CandleBars | Число баров свечи уровня 1 — Количество баров для формирования свечи первого уровня. |
| LookBack | Период сравнения цен — Количество баров для сравнения цен при определении направления движения. |
| DoShow1 | Отображение свечи уровня 1 — Включает или отключает отображение свечи первого уровня. |
| DoShow2 | Отображение свечи уровня 2 — Включает или отключает отображение свечи второго уровня. |
| DoShow3a | Отображение свечи уровня 3A — Включает или отключает отображение свечи третьего уровня A. |
| DoShow3b | Отображение свечи уровня 3B — Включает или отключает отображение свечи третьего уровня B. |
| DoFill1 | Заливка свечи уровня 1 — Включает или отключает заливку свечи первого уровня. |
| DoFill2 | Заливка свечи уровня 2 — Включает или отключает заливку свечи второго уровня. |
| DoFill3a | Заливка свечи уровня 3A — Включает или отключает заливку свечи третьего уровня A. |
| DoFill3b | Заливка свечи уровня 3B — Включает или отключает заливку свечи третьего уровня B. |
| CandleLineWidth1 | Толщина линии уровня 1 — Толщина линии свечи первого уровня. |
| CandleLineStyle1 | Стиль линии уровня 1 — Стиль линии свечи первого уровня. |
| CandleLineWidth2 | Толщина линии уровня 2 — Толщина линии свечи второго уровня. |
| CandleLineStyle2 | Стиль линии уровня 2 — Стиль линии свечи второго уровня. |
| CandleLineWidth3 | Толщина линии уровня 3 — Толщина линии свечи третьего уровня. |
| CandleLineStyle3 | Стиль линии уровня 3 — Стиль линии свечи третьего уровня. |
| CandleColor1 | Цвет свечи уровня 1 — Цвет свечи первого уровня. |
| CandleColor2 | Цвет свечи уровня 2 — Цвет свечи второго уровня. |
| CandleColor3a | Цвет свечи уровня 3A — Цвет свечи третьего уровня A. |
| CandleColor3b | Цвет свечи уровня 3B — Цвет свечи третьего уровня B. |
Поиск по коду файла
#property indicator_chart_window
extern int CandleBars = 2;
extern int LookBack = 1;
extern bool DoShow1 = true;
extern bool DoShow2 = true;
extern bool DoShow3a = false;
extern bool DoShow3b = false;
extern bool DoFill1 = false;
extern bool DoFill2 = true;
extern bool DoFill3a = false;
extern bool DoFill3b = false;
extern int CandleLineWidth1 = 1;
extern int CandleLineStyle1 = 0;
extern int CandleLineWidth2 = 1;
extern int CandleLineStyle2 = 0;
extern int CandleLineWidth3 = 3;
extern int CandleLineStyle3 = 0;
extern color CandleColor1 = Black;
extern color CandleColor2 = Red;
extern color CandleColor3a = PowderBlue;
extern color CandleColor3b = GreenYellow;
datetime LastBar;
int Count1Up = 0, Count1Down = 0;
int Count2Up = 0, Count2Down = 0;
int Count3a = 1, Count3b = 0;
int CustomBars1 = 0, CustomBars2 = 0, CustomBars3a = 0, CustomBars3b = 0;
int digits;
double points;
double Open1, Close1, Open2, Close2, Open3a, Close3a, Open3b, Close3b;
bool FillIt[4];
int LineWidth[4], LineStyle[4], CCBars[4];
color CandleClr[4];
string TAG = "JS_CC_Trend";
int init()
{
// код доступен только после оплаты
} // init()
void ObDeleteObjectsByPrefix(string Prefix)
{
int L = StringLen(Prefix);
int i = 0;
while(i < ObjectsTotal())
{
string ObjName = ObjectName(i);
if(StringSubstr(ObjName, 0, L) != Prefix)
{
i++;
continue;
}
ObjectDelete(ObjName);
}
}
int deinit()
{
ObDeleteObjectsByPrefix(TAG);
return(0);
} // deinit();
int start()
{
// код доступен только после оплаты
}
int limit;
int i;
string n;
limit = iBarShift(Symbol(), 0, LastBar) - 1;
for (i=limit; i>0; i--)
{
if (Close[i] > Close[i+LookBack])
{
if (Count1Up == (CandleBars - 1))
{
CustomBars1++;
n = TAG + " Lev1 " + CustomBars1;
Open1 = Close1;
Close1 = Close[i];
if (DoShow1)
DoPaint(n, i, 0, Open1, Close1);
if (Close1 > Open1)
{
if (Count2Up == (CandleBars-1))
{
CustomBars2++;
n = TAG + " Lev2 " + CustomBars2;
Open2 = Close2;
Close2 = Close[i];
if (DoShow2)
DoPaint(n, i, 1, Open2, Close2);
if (Count3a == (CandleBars-1))
{
CustomBars3a++;
n = TAG + " Lev3a " + CustomBars3a;
Open3a = Close3a;
Close3a = Close[i];
if (DoShow3a)
DoPaint(n, i, 2, Open3a, Close3a);
} // Complete level 3a bar
if (Count3b == (CandleBars-1))
{
CustomBars3b++;
n = TAG + " Lev3b " + CustomBars3b;
Open3b = Close3b;
Close3b = Close[i];
if (DoShow3b)
DoPaint(n, i, 3, Open3b, Close3b);
} // Complete level 3b bar
Count3a++;
Count3b++;
Count3a %= CandleBars;
Count3b %= CandleBars;
} // Complete level 2 up bar;
Count2Up++;
Count2Up %= CandleBars;
Count2Down = 0;
} // increment for level 2 up
else
if (Close1 < Open1)
{
if (Count2Down == (CandleBars-1))
{
CustomBars2++;
n = TAG + " Lev2 " + CustomBars2;
Open2 = Close2;
Close2 = Close[i];
if (DoShow2)
DoPaint(n, i, 1, Open2, Close2);
if (Count3a == (CandleBars-1))
{
CustomBars3a++;
n = TAG + " Lev3a " + CustomBars3a;
Open3a = Close3a;
Close3a = Close[i];
if (DoShow3a)
DoPaint(n, i, 2, Open3a, Close3a);
} // Complete level 3a bar
if (Count3b == (CandleBars-1))
{
CustomBars3b++;
n = TAG + " Lev3b " + CustomBars3b;
Open3b = Close3b;
Close3b = Close[i];
if (DoShow3b)
Показано первые 50% кода (символов: 5923)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.