cerrando una orden de compraHola FXWizard
escribo porque soy nuevo en esto de la programación y también en este foro. he escrito un código muy sencillito pero cuya orden abierta no puede cerrar usando OrderSelect() y OrderClose(). no se cual es el fallo y seguro que echándole un vistazo rápido no tendrás problema en identificar donde se encuentra. aqui te dejo el código. Muchas gracias de antemano. -------------- input double Lots=0.01; input double macd_rapido=12; input double macd_lento=26; input int macd_signal=9; input int slippage=3; input int magic=12345; //-------------- int init() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void deinit() { //--- return; } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- definimos variables a usar double MacdCurrent,MacdPrevious; double SignalCurrent,SignalPrevious; bool cerrar; int i,ticket,total; //---------------- double SL=Ask-30*Point; double TP=Ask+70*Point; MacdCurrent=iMACD(Symbol(),0,macd_rapido,macd_lento,macd_signal,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious=iMACD(Symbol(),0,macd_rapido,macd_lento,macd_signal,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent=iMACD(Symbol(),0,macd_rapido,macd_lento,macd_signal,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious=iMACD(Symbol(),0,macd_rapido,macd_lento,macd_signal,PRICE_CLOSE,MODE_SIGNAL,1); total=OrdersTotal(); //------------------------------- if (total<1) { if(MacdCurrent>MacdPrevious) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,SL,TP,NULL,magic,0,clrGreen); for (i=0;i<total;i++) { if (OrderSelect(ticket,SELECT_BY_TICKET)==False) continue; if ((OrderType()==OP_BUY)&& (OrderSymbol()==Symbol())) { if ((MacdCurrent<MacdPrevious)) cerrar=OrderClose(OrderTicket(),Lots,Bid,slippage,clrNONE); } } return; } } }
Re: cerrando una orden de compraHola ramsalper, la verdad es que no acabo de ver por donde puede estar el error. No obstante te recomiendo que pruebes a modificar el MACD Sample que viene de serie con Metatrader, creo que trabajando sobre la estructura original conseguirás que funcione sin problema.
Saludos, FXWizard
Re: cerrando una orden de comprael primer error que se encuentra a simple vista es que cierras incorrectamente los "if"
tu codigo dice:
deberia decir:
y logicamente sacar los "}" que estan de mas luego en el codigo. PD:cuando luego de un if tienes una sola sentencia puedes ahorrarte poner los " { ...} " y se hace mas facil de leer
Re: cerrando una orden de compraGracias dacontrader!!
así lo haré...
Re: cerrando una orden de compraYo creo que defines "cerrar", pero no lo ejecutas... solo lo defines aqui:
Si estoy en lo cierto deberías definir mas arriba y luego ejecutar asi:
EDITO: Ni caso, los comandos de cierre de órdenes son mi punto flaco, pero puedes probar:
Re: cerrando una orden de compra
la igualdad no tiene nada de malo, es mas, yo siempre la pongo porque sino me da los "warnings" cuando compilo y soy jodido
Re: cerrando una orden de compragraciass!!! todo muy util ehh!1
ya conseguí que funcionara.ahora a darle sentido y consistencia al sistema Un saludo
Re: cerrando una orden de compraMe alegro
Saludos, FXWizard
9 mensajes
• Página 1 de 2 • 1, 2
|
|
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado