mql5/Experts/reytick/mde/market_conditions_ok.mq5
2025-12-10 18:55:31 -06:00

55 lines
No EOL
3.4 KiB
MQL5

// ************************************************
// *** Project Name: reytick.mq5 ***
// *** License: Copyright 2025, MetaQuotes Ltd. ***
// *** URL: https://www.mql5.com/reytick ***
// ************************************************
// ************************************
// *** Author: Eduardo Pozos Huerta ***
// *** Date: 09/12/2025 ***
// *** Update: 09/12/2025 ***
// ************************************
// ***********************
// *** Include Headers ***
// ***********************
#include "../utils.mqh"
// ******************************************
// *** Market Data Conditions Ok Function ***
// ******************************************
bool market_conditions_ok() {
// Validaciones básicas
long trade_mode = SymbolInfoInteger(symbol_name, SYMBOL_TRADE_MODE);
if (trade_mode != SYMBOL_TRADE_MODE_FULL) return false;
// Captura de precio, spread y punto
double bid = SymbolInfoDouble(symbol_name, SYMBOL_BID);
double ask = SymbolInfoDouble(symbol_name, SYMBOL_ASK);
double last = SymbolInfoDouble(symbol_name, SYMBOL_LAST);
double point = SymbolInfoDouble(symbol_name, SYMBOL_POINT);
if (bid <= 0 || ask <= 0 || point <= 0) return false;
double spread_points = (ask - bid) / point;
if (spread_points > Max_Spread_Points) return false;
// Spread Condicional/Dinámico
double symbol_volality = SymbolInfoDouble(symbol_name, SYMBOL_PRICE_VOLATILITY);
if (symbol_volality > 0) {
double dynamic_spread_limit = Max_Spread_Points * symbol_volality;
if (spread_points > dynamic_spread_limit) return false;
}
return false;
}