55 lines
No EOL
3.4 KiB
MQL5
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;
|
|
} |