Ayuda a la codificación - página 439

 
neverbeast:
Hola de nuevo.

Así que he hecho un indicador simple con flechas. Desafortunadamente no las dibuja como yo quería. Mi objetivo era mostrar una flecha cuando las condiciones se cumplen, pero cuando las condiciones ya no se cumplen debería eliminar esa flecha. Como un ejemplo: En 15 segundos de la vela actual se cumplen las condiciones y se dibuja una flecha, luego cambia la dirección y las condiciones ya no se cumplen, por lo que debería eliminar esa flecha antes del cierre de la vela actual. Actualmente dibuja flechas cuando se cumplen las condiciones y no repinta en absoluto, además hay flechas de expiración que muestran si fue ITM u OTM/ATM que no se dibujan en absoluto hasta la actualización. ¿Podría alguien echar un vistazo y ayudarme a arreglarlo, por favor?

6s.mq4

Usted no tiene un cheque para los primeros 15 segundos en el código en absoluto. ¿Por qué no añadir esa comprobación también?

 
mladen:
En el código no tienes una comprobación de los primeros 15 segundos en absoluto. ¿Por qué no añadir esa comprobación también

Mi error. Era otra versión de ese indicador que describía aquí. De todos modos soy novato en la codificación de mql4 y no tengo idea de cómo hacer eso. ¿Puedes escribir ese trozo de código con un pequeño tutorial de cómo funciona?

 
neverbeast:
Error mío. Era otra versión de ese indicador la que describía aquí. De todas formas soy novato en la codificación de mql4 y no tengo ni idea de cómo hacer eso. ¿Podrías escribir ese trozo de código con un pequeño tutorial de cómo funciona?

Puede hacer esto :

if (TimeCurrent()-Time[0])>15) return(0);

Colócalo al principio del procedimiento start() (como primera línea del mismo) y evitará que se ejecute el resto del código si el número de segundos transcurridos desde el inicio de la vela actual es superior a 15

 

Tengo el código para un EA pero mis habilidades son.....none. Intenté compilarlo, sacar los errores pero no hubo suerte.

¿Alguien puede ayudar?

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 para seguir la tendencia, 1 para forzar la compra, 2 para forzar la venta extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "Se ha añadido una nueva orden "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: " + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Cierra todo //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| cancela todas las órdenes que están en ganancia //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| cancela todas las órdenes pendientes //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Determina el precio de la última orden | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green); TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Error al abrir la orden de COMPRA : ",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point,Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green); TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Error al abrir la orden de COMPRA : ",GetLastError()); return(0); } } // start()

 

Lo siento, aquí no está todo revuelto

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 para seguir la tendencia, 1 para forzar la compra, 2 para forzar la venta extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "Se ha añadido una nueva orden "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: " + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Cierra todo //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| cancela todas las órdenes que están en ganancia //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| cancela todas las órdenes pendientes //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Determina el precio de la última orden | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green); TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Error al abrir la orden de COMPRA : ",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point,Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green); TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Error al abrir la orden de COMPRA : ",GetLastError()); return(0); } } // start()

 
godrich:
Lo siento, aquí no está todo revuelto //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 para seguir la tendencia, 1 para forzar la compra, 2 para forzar la venta extern int leverage = 5; extern double MaximumLossinMoney = 1000; extern int MagicNumber = 250346; extern bool UseAlerts = false; //+-------------+ //| Custom init | //|-------------+ int init() { } //+----------------+ //| Custom DE-init | //+----------------+ int deinit() { } void sendEmail() { if (UseAlerts==true) SendMail("YTF Alert", "Se ha añadido una nueva orden "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: " + Close[0]); return; } void DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Cierra todo //+------------------------------------------------------------------------+ void CloseAll() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllSell() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); bool result = false; if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| cancela todas las órdenes que están en ganancia //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| cancela todas las órdenes pendientes //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Determina el precio de la última orden | //-------------------------------------------------------------------+ if(OrdersTotal()==0 && TradeType ==1 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-TP*Point,Ask+leverage*TP*Point, "MLTrendETF",MagicNumber,0,Green); TradeType=2; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Error al abrir la orden de COMPRA : ",GetLastError()); return(0); } if(OrdersTotal()==0 && TradeType ==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TP*Point,Bid-TP*leverage*Point, "MLTrendETF",MagicNumber,0,Green); TradeType = 1; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) sendEmail(); } else Print("Error al abrir la orden de COMPRA : ",GetLastError()); return(0); } } // start()

godrich

puedes adjuntar el archivo mq4

De esta manera será inutilizable si se pega en el metaeditor

 

No estoy seguro si esto funcionó pero...

Archivos adjuntos:
pac.mq4  5 kb
 

Hola.

Acabo de encontrar el indicador PetD que dibuja una línea roja o verde sobre mi vela. Lo que me pregunto es si hay alguna posibilidad de hacer una tira de histograma de color en su lugar.

Así puedo tener una ventana separada con una barra verde o roja.

Gracias

pet-d_fulll_option.mq4

Archivos adjuntos:
 
NWFstudent:
Hola.

Acabo de encontrar el indicador PetD que dibuja una línea roja o verde sobre mi vela. Lo que me pregunto es si hay alguna posibilidad de hacer una tira de histograma de color en su lugar.

Así puedo tener una ventana separada con una barra verde o roja.

Gracias

pet-d_full_option.mq4

NWFstudent

Aquí está ese tipo también : pet-d_full_option_-_separate.mq4

Archivos adjuntos:
 
makototokyo:
Hola,

este indicador no parece hacer bien la alerta. Me parece que hace alerta sólo una vez después de que el mt4 se inicia y después de la 1 ª alerta que no hace el sonido. También me di cuenta de que hace sonido sólo cuando la barra es "clímax".. pero quiero que haga sonido cuando la barra es "creciente".

¿Alguien podría arreglar este código para el indicador de volumen?

si tiene tiempo de hacer lo mismo para este indicador de velas se lo agradezco, pero no quiero quitarle mucho tiempo.

Gracias de antemano.

Makototokyo, cambié las alertas en la versión de la ventana separada para usar las alertas de "alcista y bajista", y deberían funcionar correctamente en esta versión.

Archivos adjuntos: