//+------------------------------------------------------------------+ //| SP_Pedro_Chapter09.mq5 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnStart() { // Definir variables para almacenar los parámetros de la orden double lotSize = 0.1; // Tamaño del lote double stopLoss = 50; // Nivel de stop loss en puntos double takeProfit = 100; // Nivel de take profit en puntos double precio = SymbolInfoDouble(_Symbol, SYMBOL_BID); // Precio actual de oferta del símbolo // Definir la estructura de solicitud de operación MqlTradeRequest request; ZeroMemory(request); request.action = TRADE_ACTION_DEAL; // Tipo de acción: Deal (acuerdo) request.type = ORDER_TYPE_BUY; // Tipo de orden: Compra request.volume = lotSize; // Tamaño del lote request.price = precio; // Precio de mercado actual request.sl = precio - stopLoss * _Point; // Stop Loss request.tp = precio + takeProfit * _Point; // Take Profit request.symbol = _Symbol; // Símbolo request.magic = 3344; // Número mágico // Enviar la solicitud de operación MqlTradeResult result; if (OrderSend(request, result)) { Print("Orden de compra enviada correctamente. Ticket: ", result.order); } else { Print("Error al enviar la orden de compra. Código de error: ", GetLastError()); } } //+------------------------------------------------------------------+