fair_value_gap_scanner_mt5.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «fair_value_gap_scanner_mt5.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой индикатор для платформы MetaTrader 5, написанный на языке MQL5. Он сканирует закрытые свечи на наличие Fair Value Gap (FVG) — ценовых пропастей между свечами — и отображает их на графике в виде цветных прямоугольников.
Индикатор анализирует данные ценового ряда в заданном диапазоне баров, определяет бычьи и медвежьи пропасти по установленному минимальному размеру в пунктах и отслеживает, была ли каждая пропасть заполнена последующим движением цены. Прямоугольники рисуются с настраиваемым продлением вперёд, отдельными цветами для бычьих, медвежьих и заполненных пропастей, а также с возможностью отображения текстовых меток.
Встроенная система уведомлений информирует трейдера о появлении новых незаполненных пропастей. Индикатор выполняет проверку входных параметров при инициализации и удаляет все созданные объекты при деинициализации. Работает на текущем графике и таймфрейме, используя стандартные回调ные функции MQL5.
Настройки программы
| Настройка | Описание |
|---|---|
| InpMaximumBars | Максимальное количество баров для сканирования на графике. |
| InpMinimumGapPoints | Минимальный размер ценовой пропасти в пунктах, при котором она будет обнаружена. |
| InpShowBullishGaps | Отображение бычьих пропастей на графике. |
| InpShowBearishGaps | Отображение медвежьих пропастей на графике. |
| InpHideMitigated | Скрытие уже заполненных (митигированных) пропастей от отображения на графике. |
| InpUseFullFill | Определяет, для расчёта заполнения использовать полное заполнение или первое касание цены. |
| InpExtensionBars | Количество баров для продления отрисовки пропасти вперёд. |
| InpBullishGapColor | Цвет прямоугольника бычьей пропасти. |
| InpBearishGapColor | Цвет прямоугольника медвежьей пропасти. |
| InpMitigatedColor | Цвет прямоугольника для заполненных (митигированных) пропастей. |
| InpTransparency | Уровень прозрачности прямоугольников пропастей на графике. |
| InpShowLabels | Отображение текстовых меток с указанием типа пропасти и статуса заполнения. |
| InpEnableAlerts | Включение или отключение уведомлений о новых пропастях. |
Поиск по коду файла
#property version "1.00"
#property description "Closed candle fair value gap scanner with mitigation tracking."
#property indicator_chart_window
#property indicator_plots 0
#property indicator_buffers 0
input group "Gap Detection"
input int InpMaximumBars = 400; // Bars to scan
input double InpMinimumGapPoints = 20.0; // Minimum gap in points
input bool InpShowBullishGaps = true;
input bool InpShowBearishGaps = true;
input bool InpHideMitigated = false;
input bool InpUseFullFill = true; // Full fill or first touch
input group "Display"
input int InpExtensionBars = 80;
input color InpBullishGapColor = clrPaleGreen;
input color InpBearishGapColor = clrMistyRose;
input color InpMitigatedColor = clrGainsboro;
input uchar InpTransparency = 55;
input bool InpShowLabels = true;
input group "Alerts"
input bool InpEnableAlerts = false;
string g_prefix="FVGSCAN_";
datetime g_last_bar=0;
datetime g_last_alert_bar=0;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
ObjectsDeleteAll(0,g_prefix);
ChartRedraw(0);
}
bool IsBullishMitigated(const int formation_index,const double gap_bottom,
const double gap_top,const double &low[])
{
const double threshold=(InpUseFullFill ? gap_bottom : gap_top);
for(int index=formation_index-1; index>=0; index--)
if(low[index]<=threshold)
return(true);
return(false);
}
bool IsBearishMitigated(const int formation_index,const double gap_bottom,
const double gap_top,const double &high[])
{
const double threshold=(InpUseFullFill ? gap_top : gap_bottom);
for(int index=formation_index-1; index>=0; index--)
if(high[index]>=threshold)
return(true);
return(false);
}
void DrawGap(const string id,const datetime start_time,const datetime end_time,
const double top,const double bottom,const bool bullish,
const bool mitigated)
{
const string rectangle_name=g_prefix+"BOX_"+id;
color base_color=(mitigated ? InpMitigatedColor :
(bullish ? InpBullishGapColor : InpBearishGapColor));
if(!ObjectCreate(0,rectangle_name,OBJ_RECTANGLE,0,start_time,top,end_time,bottom))
return;
ObjectSetInteger(0,rectangle_name,OBJPROP_COLOR,ColorToARGB(base_color,InpTransparency));
ObjectSetInteger(0,rectangle_name,OBJPROP_FILL,true);
ObjectSetInteger(0,rectangle_name,OBJPROP_BACK,true);
ObjectSetInteger(0,rectangle_name,OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,rectangle_name,OBJPROP_HIDDEN,true);
if(!InpShowLabels)
return;
const string label_name=g_prefix+"TEXT_"+id;
const double label_priceПоказано первые 50% кода (символов: 4839)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.