TITAN_SMC_GRID_MARTINGALE
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный советник для MetaTrader 5 сочетает в себе анализ Smart Money Concepts (SMC) с системой сеточной мартингейл-восстановления. Он определяет зоны спроса и предложения на старших таймфреймах, выявляет паттерны отката по фитилям свечей и открывает первую позицию. После открытия первого ордера активируется сеточный режим с постепенным увеличением объёма.
Советник отслеживает уровень эквити и при превышении заданного порога убытка автоматически закрывает все позиции. Тейк-профит рассчитывается на основе средневзвешенной цены всех открытых позиций в сетке и периодически пересчитывается при добавлении новых ордеров.
В качестве HTF-индикатора используются встроенные функции CopyHigh и CopyLow для определения экстремумов свечей. Торговые операции выполняются через класс CTrade. Советник обрабатывает событие OnTick и поддерживает информационный вывод на экране через функцию Comment.
Настройки программы
| Настройка | Описание |
|---|---|
| InpHTF | Таймфрейм для определения зон спроса и предложения (по умолчанию H4) |
| InpLookbackBars | Количество свечей для поиска максимума и минимума при определении зон HTF |
| InpZoneThickness | Толщина зоны спроса/предложения в пунктах (800 пунктов = 80 пипсов) |
| InpSpreadBuffer | Дополнительный буфер для более раннего или позднего входа в зону относительно границ |
| InpWickToBodyRatio | Минимальное соотношение длины тела свечи к длине фитиля для подтверждения отката (например, 2.0) |
| InpLotInitial | Объём первой позиции при входе в сделку |
| InpMartingaleMult | Множитель увеличения объёма при добавлении сеточных ордеров (например, 1.5) |
| InpGridDistance | Шаг сетки в пунктах для открытия дополнительных ордеров (150 пипсов) |
| InpMaxGridOrders | Максимальное количество дополнительных сеточных позиций |
| InpTakeProfit | Расстояние тейк-профита от средней цены открытия в пунктах (150 пипсов) |
| InpMaxLossPercent | Процент убытка от баланса, при достижении которого все позиции закрываются автоматически (30%) |
| InpMagicNumber | Магический номер для идентификации ордеров советника |
Поиск по коду файла
#property strict
#property version "3.10"
#property description "SMC Trap (Wick Rejection) + Grid Martingale Recovery"
#include <Trade\Trade.mqh>
CTrade trade;
input group "=== 1. SMC REAL ZONE (HTF KIRISH) ==="
input ENUM_TIMEFRAMES InpHTF = PERIOD_H4; // Katta Taymfreym
input int InpLookbackBars = 40; // Qancha sham orqani tekshirish kerak?
input int InpZoneThickness = 800; // Zonaning qalinligi (800 punkt = 80 pip)
input int InpSpreadBuffer = 400; // Spred uchun bufer (Zonadan sal ertaroq/kechroq kirish)
input double InpWickToBodyRatio = 2.0; // ⚡ SOYA TANADAN NECHA MARTA UZUN BO'LISHI KERAK? (Masalan 2.0)
input group "=== 2. GRID VA MARTINGALE (QUTQARUV TIZIMI) ==="
input double InpLotInitial = 0.01; // Boshlang'ich Lot
input double InpMartingaleMult= 1.5; // Martingale ko'paytuvchisi (Masalan 1.5 barobar)
input int InpGridDistance = 1500; // KATTA SPRED UCHUN QADAM (150 pip)
input int InpMaxGridOrders = 10; // Maksimal setka o'rderlar soni
input group "=== 3. FOYDA VA XAVFSIZLIK ==="
input int InpTakeProfit = 1500; // O'rtacha narxdan TP (150 pip)
input double InpMaxLossPercent= 30.0; // Umumiy zararni cheklash (30% minusga kirsa yopish)
input int InpMagicNumber = 7777;
double HTF_Supply = 0.0;
double HTF_Demand = 0.0;
int OnInit() {
// код доступен только после оплаты
}
void OnTick() {
// код доступен только после оплаты
}
void UpdateHTFZones() {
double highArray[], lowArray[];
if(CopyHigh(_Symbol, InpHTF, 1, InpLookbackBars, highArray) > 0 &&
CopyLow(_Symbol, InpHTF, 1, InpLookbackBars, lowArray) > 0) {
HTF_Supply = highArray[ArrayMaximum(highArray)];
HTF_Demand = lowArray[ArrayMinimum(lowArray)];
}
}
void CheckForSMCEntry() {
static datetime lastEntryBar = 0;
datetime currentBar = iTime(_Symbol, PERIOD_CURRENT, 0);
if(currentBar == lastEntryBar) return;
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double c[], o[], h[], l[];
if(CopyClose(_Symbol, PERIOD_CURRENT, 1, 2, c) <= 0) return;
CopyOpen(_Symbol, PERIOD_CURRENT, 1, 2, o);
CopyHigh(_Symbol, PERIOD_CURRENT, 1, 2, h);
CopyLow(_Symbol, PERIOD_CURRENT, 1, 2, l);
double body = MathAbs(c[1] - o[1]); // Tananing qalinligi
double upperWick = h[1] - MathMax(c[1], o[1]); // Tepadagi soya uzunligi
double lowerWick = MathMin(c[1], o[1]) - l[1]; // Pastdagi soya uzunligi
if(h[1] >= (HTF_Supply - InpZoneThickness * _Point) && h[1] <= (HTF_Supply + InpSpreadBuffer * _Point)) {
if(upperWick > (body * InpWickToBodyRatio) && c[1] < o[1]) {
if(trade.Sell(InpLotInitial, _Symbol, bid, 0, 0, "SMC Sell Start")) {
lasПоказано первые 50% кода (символов: 6352)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.