clear method-sd v1.11.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «clear method-sd v1.11.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, который анализирует ценовые свинги на графике и отображает зоны спроса и предложения в виде цветных прямоугольников. Также отмечает точки разворота свингов и переходы между зонами спроса и предложения.
Индикатор использует четыре буфера для отрисовки линий и точек свингов, а при образовании новых баров вычисляет прямоугольники-зоны на основе исторических данных за заданный периодLookback. Визуальные элементы управляются настройками отображения и цветами.
Объекты рисуются на графике с префиксом "CSD." и обновляются при появлении нового бара. Индикатор не использует торговые API и предназначен исключительно для визуального анализа.
Настройки программы
| Настройка | Описание |
|---|---|
| Lookback | Период анализа — Количество баров для анализа при вычислении зон спроса и предложения |
| ShowCMLine | Показать линии свингов — Отображение линий свингов |
| ShowCMDot | Показать точки свингов — Отображение точек-меток разворотов свингов в виде стрелок |
| ShowSbDDbS | Показать переходы зон — Отображение прямоугольников переходов между зонами спроса и предложения |
| demtosupclr | Показать переход спрос→предложение — Переключатель отображения переходов от спроса к предложению |
| suptodemclr | Показать переход предложение→спрос — Переключатель отображения переходов от предложения к спросу |
| SupplyClr | Цвет зоны предложения — Цвет прямоугольников зоны предложения |
| DemandClr | Цвет зоны спроса — Цвет прямоугольников зоны спроса |
| DemToSupClr | Цвет перехода спрос→предложение — Цвет прямоугольников, обозначающих переход зоны спроса в зону предложения |
| SupToDemClr | Цвет перехода предложение→спрос — Цвет прямоугольников, обозначающих переход зоны предложения в зону спроса |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 MediumSeaGreen
#property indicator_color2 Maroon
#property indicator_color3 MediumSeaGreen
#property indicator_color4 Maroon
#property indicator_width3 2
#property indicator_width4 2
extern int Lookback = 20000;
extern bool ShowCMLine = false;
extern bool ShowCMDot = false;
extern bool ShowSbDDbS = true;
extern bool demtosupclr = true;
extern bool suptodemclr = true;
extern color SupplyClr = clrLightGray;
extern color DemandClr = clrLightGray;
extern color DemToSupClr = clrPowderBlue;
extern color SupToDemClr = clrPowderBlue;
double BuffUp[];
double BuffDn[];
double BuffDotUp[];
double BuffDotDn[];
bool UpSwing = true;
double HighestLow, LowestHigh;
string ObjPref = "CSD.";
int init()
{
// код доступен только после оплаты
}
int deinit()
{
delObjs();
return(0);
}
int start()
{
// код доступен только после оплаты
}
/**
*
*/
void getSD()
{
int i, j, k, l, m, limit = MathMin(Bars, Lookback)
, ihh, ihl, iesw, isw //highest high bar, highest low bar, end bar of swing, index swing
, ill, ilh //lowest low bar, lowest high bar
, upswgcnt, dnswgcnt //upswing count, dnswing count
, supcnt, demcnt //unbroken upswing count, unbroken dnswing count
, suptodemcnt, demtosupcnt
;
double hl, hh //highest low, highest high
,lh, ll //lowest hight, lowest low
,upswg[][4], dnswg[][4]
,sup[][4], dem[][4] //unbroken upswing array, unbroken dnswing array
,suptodem[][4], demtosup[][4]
;
bool broken, testprev; //is supply/demand broken, the swing is testing previous swing
delObjs();
for (i=limit-1; i>0; i--)
{
if(BuffDotUp[i] !=0.0 && BuffDotDn[i+1] != 0.0)
{
for (j=i-1; j>0; j--)
{
if(BuffDotUp[j] != 0.0 && BuffDotDn[j-1] != 0.0)
{
ihh = iHighest(NULL, 0, MODE_HIGH, (i-j)+1, j);
ihl = iHighest(NULL, 0, MODE_LOW, (i-j)+1, j);
hh = High[ihh];
hl = Low [ihl];
if (High[i+1]>hh) { hh=High[i+1]; ihh=i+1; }
upswgcnt++;
ArrayResize(upswg,upswgcnt);
upswg[upswgcnt-1][0] = hh;
upswg[upswgcnt-1][1] = hl;
upswg[upswgcnt-1][2] = ihh;
upswg[upswgcnt-1][3] = j-1; //--end bar of swing
i = j-1;
break;
}
}
}
}
for (i=limit-1; i>0; i--)
{
if(BuffDotDn[i] != 0.0 && BuffDotUp[i+1] != 0.0)
{
for (j=i-1; j>0; j--)
{
if(BuffDotDn[j] != 0.0 && BuffDotUp[j-1] != 0.0)
{
ill = iLowest(NULL, 0, MODE_LOW, (i-j)+1, j);
ilh = iLowest(NULL, 0, MODE_HIGH, (i-j)+1, j);
ll = Low[ill];
lh = High[ilh];
if (Low[i+1]<ll) { ll=Low[i+1]; ill=i+1; }
dnswgcnt++;
ArrayResize(dnswg,dnswgcnt);
dnswg[dnswgcnt-1][0] = ll;
dnswg[dnswgcnt-1][1] = lh;
dnswg[dnswgcnt-1][2] = ill;
dnswg[dnswgcnt-1][3] = j-1; //--end bar of swing
i = j-1;
break;
}
}
}
}
for (i=0; i<upswgcnt; i++)
{
hh = upswg[i][0]; hl = upswg[i][1]; ihh = upswg[i][2]; iesw = upswg[i][3];
broken = false;
for (j=iesw-1; j>0; j--)
{
if (High[j]>hh) { broken = true; break; }
}
if (!broken)
{
testprev = false;
for (k=supcnt-1; k>=0; k--)
{
testprev = (hh <= sup[k][0] && hh >= sup[k][1]);
if (testprev) break;
}
Показано первые 50% кода (символов: 7830)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.