- Ayuda con el Codigo
- Redactaré un asesor de forma gratuita
- Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos
Hola, estoy intentando escribir unas ordenes de compra/venta cuandos se den "X" condiciones, y cerrar esas operaciones cuando se den "Y". He conseguido que empiece la operacion en las condiciones que le he dado, pero la condicion para que cierre la operacion incluye un indicador personalizado (si escribo Take Profit y Stop loss si que funciona), y no consigo hacer que cierre la operacion pues lo ignora completamente, y no se si es la parte de la orden de vender o la parte del indicador personalizado la que esta mal. Muchas gracias por adelantado.
Amigo, DEBES tener el el indicador en la propia MT4/MT5 en la que estas usando el expert
una vez lo tengas asi, haz la correccion de esta linea.
double customindicator = iCustom(NULL,0,"nombredelindicador_SinRUTA",i,o,u);
o
double customindicator = iCustom(NULL,0,"nombredelindicador_SinRUTA.ex4",i,o,u);
Otro tema que debes considerar es que las compras las abres con Ask, y las cierras con Bid, y visceversa para las ventas
Porque me da la impresion que estas haciendo el cierre de manera equivocada
Hola, muchas gracias por contestar.
He intentado poner la ruta tal y como me has indicado, pero no parece funcionar. He intentado descargar varios diferentes de internet pero no me funciona ninguno (aparece en el grafico actual, pero al empezar el backtest desaparece, aun despues de haber puesto el indicador en la plantiLLa de tester.tpl y ya no se a que se puede deber.
Con respecto al cierre, tal y como yo lo entiendo:
if (signal == "Buy" && OrdersTotal() == 0) OrderSend (Symbol(), OP_BUY, 0.2, Ask, 3, 0, 0, NULL, 0, 0, Green); ORDEN DE ABRIR COMPRA CON ASK if (signal == "Sell" && OrdersTotal() == 0) OrderSend (Symbol(), OP_SELL, 0.2, Bid, 3, 0, 0, NULL, 0, 0, Red); ORDEN DE ABRIR VENTA CON BID if(signal == "Stopshort" && OrdersTotal() == 1) ORDEN DE CERRAR VENTA CON ASK OrderClose (Symbol(),OP_BUY,Ask,3,Green); if(signal == "Stoplong" && OrdersTotal() == 1) ORDEN DE CERRAR COMPRA CON BID OrderClose (Symbol(),OP_SELL,Bid,3,Red); ASI LAS ORDENES DE COMPRA/VENTA Y SUS CORRESPONDIENTES CIERRES ESTARIAN CORRECTOS VERDAD? Y TENDRIA QUE CENTRARME EN HACER QUE EL INDICADOR ME FUNCIONE? PD: SI TENGO EL CODIGO DEL INDICADOR, HAY ALGUNA MANERA DE PONERLO EN EL EA PARA VER SI ASI FUNCIONA? MUCHAS GRACIA POR RESPONDERME https://ibb.co/n1jKHcj INDICADOR FUNCIONA EN EL GRAFICO ACTUAL https://ibb.co/tMVsQCj INDICADOR SE PARA EN EL BACKTEST (EL INDICADOR ES EL MORADO)
ffsss:
Amigo, esto lo tienes malo
if(signal == "Stopshort" && OrdersTotal() == 1) ORDEN DE CERRAR VENTA CON ASK OrderClose (Symbol(),OP_BUY,Ask,3,Green); if(signal == "Stoplong" && OrdersTotal() == 1) ORDEN DE CERRAR COMPRA CON BID OrderClose (Symbol(),OP_SELL,Bid,3,Red);
OrderClose debe llevar:
1. EL numero del ticket a cerrar,
2. el lotaje a cerrar,
3. El precio de cierre
4. El deslizamiento maximo permitido
5. (opcional) una flecha de algun color que deje alguna marca.
Entonces, cuando recibas la señal de cierre, debes buscar o identificar la orden (el ticket) que vas a cerrar, lo seleccionas con OrderSelect
y teniendolo seleccionado puedes cerrar asi:
OrderClose (OrderTicket(),OrderLots(),Bid,100); // Para las compras OrderClose (OrderTicket(),OrderLots(),Ask,100); // Para las Ventas
Para que veas el indicador en el backtesting debes guardar la plantilla con el mismo nombre del Experto, por ejemplo, el experto se llama "Experto_Estrategia_1.5.ex4";
Guardas la plantilla asi: "Experto_Estrategia_1.5.tpl"
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso