SMC/ICT: High Prob Signal FINAL
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc indicator source code.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это пользовательский индикатор для MetaTrader 4, который анализирует ценовые данные с использованием экспоненциальных скользящих средних и дневного контекста рынка. Индикатор определяет потенциальные точки входа на основе пересечений EMA, направления дневного тренда и зоны цены (премиум/скидка). Также отслеживает еженедельный разрыв цены (NWOG), отображая его в виде прямоугольника на графике. Сигналы выводятся в виде цветных стрелок и текстовых меток прямо на графике, а информационная панель в углу показывает текущее направление тренда и зону цены.
Настройки программы
| Настройка | Описание |
|---|---|
| g_sig | Заголовок раздела сигналов — Текстовый заголовок группы настроек, связанных с отображением сигналов и скользящих средних. |
| ema9_p | Период EMA 9 — Целочисленный период для расчёта экспоненциальной скользящей средней с длиной 9 баров. |
| ema21_p | Период EMA 21 — Целочисленный период для расчёта экспоненциальной скользящей средней с длиной 21 бар. |
| c_buy | Цвет сигнала покупки — Цвет стрелки и текста, отображаемых при сигнале на покупку. |
| c_sell | Цвет сигнала продажи — Цвет стрелки и текста, отображаемых при сигнале на продажу. |
| g_nwog | Заголовок раздела NWOG — Текстовый заголовок группы настроек, связанных с отображением еженедельного разрыва цены. |
| c_nwog | Цвет NWOG — Цвет прямоугольника, обозначающего зону нового недельного открытия (NWOG). |
Поиск по коду файла
#property version "2.00"
#property description "We crack MT4 n MT5 Indicators/Robots."
#property description "We convert MT4/MT5 Indicators to Robots."
#property description "."
#property description "CRACKED BY @Subzero_911"
#property description "."
#property description "Instagram = @Subzero_911_"
#property description "."
#property description "Telegram = @Subzero_911"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrBlue
#property indicator_color2 clrOrange
#property indicator_width1 1
#property indicator_width2 1
input string g_sig = "--- Signals and Averages ---";
input int ema9_p = 9; // EMA 9
input int ema21_p = 21; // EMA 21
input color c_buy = clrLime; // Compra
input color c_sell = clrRed; // Venta
input string g_nwog = "--- NWOG Settings ---";
input color c_nwog = clrGold; // Color NWOG
double ema9Buffer[];
double ema21Buffer[];
int lastBar = 0;
double lastWeeklyClose = 0;
datetime lastWeekStart = 0;
int boxHandle = -1;
int tableHandle = -1;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
ObjectsDeleteAll(0, "SMC_");
ObjectsDeleteAll(0, "NWOG_");
ObjectsDeleteAll(0, "Table_");
Comment("");
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
int limit;
if(prev_calculated == 0)
{
limit = rates_total - 1;
}
else
{
limit = rates_total - prev_calculated;
}
for(int i = limit; i >= 0; i--)
{
if(i + ema9_p < rates_total)
{
ema9Buffer[i] = iMA(NULL, 0, ema9_p, 0, MODE_EMA, PRICE_CLOSE, i);
}
if(i + ema21_p < rates_total)
{
ema21Buffer[i] = iMA(NULL, 0, ema21_p, 0, MODE_EMA, PRICE_CLOSE, i);
}
}
for(int i = limit; i >= 0; i--)
{
if(i + 1 >= rates_total) continue;
datetime currentTime = time[i];
datetime dayStart = iTime(NULL, PERIOD_D1, iBarShift(NULL, PERIOD_D1, currentTime));
int dailyIndex = iBarShift(NULL, PERIOD_D1, currentTime);
double d_o = iOpen(NULL, PERIOD_D1, dailyIndex);
double d_h = iHigh(NULL, PERIOD_D1, dailyIndex);
double d_l = iLow(NULL, PERIOD_D1, dailyIndex);
double d_c = iClose(NULL, PERIOD_D1, dailyIndex);
double prev_d_c = 0;
if(dailyIndex + 1 < iBars(NULL, PERIOD_D1))
{
prev_d_c = iClose(NULL, PERIOD_D1, dailyIndex + 1);
}
bool is_bullish = false;
if(prev_d_c > 0)
{
is_bullish = prev_d_c > ((d_h + d_l) / 2);
}
bool is_premium = close[i] > d_o;
bool is_discount = close[i] < d_o;
bool cross_up = false;
bool cross_dn = false;
if(i + 1 < rates_total)
{
cross_up = ema9Buffer[i] > ema21Buffer[i] && ema9Buffer[i+1] <= ema21Buffer[i+1];
cross_dn = ema9Buffer[i] < ema21Buffer[i] && ema9Buffer[i+1] >= ema21Buffer[i+1];
}
if(cross_up && is_bullish && is_discount)
{
string labelName = "SMC_BUY_" + IntegerToString(i);
if(ObjectFind(0, labelName) < 0)
{
ObjectCreate(0, labelName, OBJ_ARROW_BUY, 0, time[i], low[i]);
ObjectSetInteger(0, labelName, OBJPROP_ARROWCODE, 233);
ObjectSetInteger(0, labelName, OBJPROP_COLOR, c_buy);
ObjectSetInteger(0, labelName, OBJPROP_WIDTH, 2);
ObjectSetInteger(0, labelName, OBJPROP_BACK, false);
string textName = "SMC_BUY_TEXT_" + IntegerToString(i);
ObjectCreate(0, textName, OBJ_TEXT, 0, time[i], low[i] - 10 * Point);
ObjectSetString(0, textName, OBJPROP_TEXT, "BUY PRO");
ObjectSetInteger(0, textName, OBJPROP_COLOR, clrWhite);
ObjectSetInteger(0, textName, OBJPROP_FONTSIZE, 8);
ObjectSetInteger(0, textName, OBJPROP_BACK, false);
}
}
if(cross_dn && !is_bullish && is_premium)
{
string labelName = "SMC_SELL_" + IntegerToString(i);
if(ObjectFind(0, labelName) < 0)
{
ObjectCreate(0, labelName, OBJ_ARROW_SELL, 0, time[i], high[i]);
ObjectSetInteger(0, labelName, OBJPROP_ARROWCODE, 234);
ObjectSetInteger(0, labelName, OBJPROP_COLOR, c_sell);
ObjectSetInteger(0, labelName, OBJPROP_WIDTH, 2);
ObjectSetInteger(0, labelName, OBJPROP_BACK, false);
string textName = "SMC_SELL_TEXT_" + IntegerToString(i);
ObjectCreate(0, textName, OBJ_TEXT, 0, time[i], high[i] + 10 * Point);
ObjectSetString(0, textName, OBJPROP_TEXT, "SELL PRO");
ObjectSetInteger(0, textName, OBJPROP_COLOR, clrWhite);
ObjectSetInteger(0, textName, OBJPROP_FONTSIZE, 8);
ObjectSetInteger(0, textName, OBJPROP_BACK, false);
}
}
MqlDateTime currentStruct;
TimeToStruct(currentTime, currentStruct);
MqlDateTime prevStruct;
prevStruct.day_of_week = 0;
if(i + 1 < rates_total)
{
TimeToStruct(time[i+1], prevStruct);
}
if(currentStruct.day_of_week == 1 && (i + 1 >= rates_total || prevStruct.day_of_week > currentStruct.day_of_week))
{
int weeklyShift = iBarShift(NULL, PERIOD_W1, currentTime) + 1;
if(weeklyShift < iBars(NULL, PERIOD_W1))
{
lastWeeklyClose = iClose(NULL, PERIOD_W1, weeklyShift);
lastWeekStart = currentTime;
if(boxHandle >= 0)
{
Показано первые 50% кода (символов: 9531)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.