Utilizando el EA para el Trading
En el mundo del trading, contar con las herramientas adecuadas puede marcar la diferencia. Hoy vamos a hablar sobre un Asesor Experto (EA) que te ayudará a gestionar tus órdenes de manera más eficiente.
Inputs Necesarios
Este EA requiere tres entradas que debes configurar:
- Objetivo de Beneficio
- Límite de Pérdidas
- Número Mágico
extern double inTargetProfitMoney = 10; //Objetivo de Beneficio ($) extern double inCutLossMoney = 0.0 //Límite de Pérdidas ($) extern int inMagicNumber = 0 //Número Mágico
Cuando este EA se ejecuta, primero llamará a la función OnInit(), donde verificaremos la inicialización de las entradas y variables.
int OnInit() { //--- if(inTargetProfitMoney <= 0) { Alert("Entrada inválida"); return(INIT_PARAMETERS_INCORRECT); } inCutLossMoney = MathAbs(inCutLossMoney) * -1; //--- return(INIT_SUCCEEDED); }
Cada vez que haya un movimiento de precio (tick), se llamará a la función OnTick().
void OnTick() { //--- double tFloating = 0.0; int tOrder = OrdersTotal(); for(int i=tOrder-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderMagicNumber() == inMagicNumber) { tFloating += OrderProfit()+OrderCommission() + OrderSwap(); } } } if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0)) { fCloseAllOrders(); } }
En la función OnTick, se calcula el beneficio o pérdida total. Si se cumple el objetivo o se alcanza el límite de pérdida, se cierran todas las órdenes.
void fCloseAllOrders() { double priceClose = 0.0; int tOrders = OrdersTotal(); for(int i=tOrders-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL)) { priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK); if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold)) { Print("AVISO: Cierre Fallido"); } } } } }
Para más información detallada y compartir códigos MQL4, te invito a unirte a nuestro grupo de Telegram: t.me/codeMQL