Ajuda na codificação - página 439

 
neverbeast:
Olá novamente.

Por isso, fiz um indicador simples com setas. Infelizmente não é desenhá-las como eu queria. Meu objetivo era mostrar uma seta quando as condições são cumpridas, mas quando as condições não são mais cumpridas, ela deve apagar essa seta. Como um exemplo: Em 15 segundos das condições atuais da vela são cumpridas e ela desenha uma seta e depois muda de direção e as condições não são mais cumpridas, então ela deve apagar aquela seta antes de fechar a vela atual. Atualmente, ela desenha setas quando as condições são atendidas e não pinta novamente, além disso, há setas de expiração mostrando se foi ITM ou OTM/ATM que não estão desenhando nada até a atualização. Alguém poderia dar uma olhada e me ajudar a consertá-lo, por favor?

6s.mq4

Você não tem nenhum cheque durante os primeiros 15 segundos do código. Por que você não adiciona também esse cheque?

 
mladen:
Você não tem nenhum controle durante os primeiros 15 segundos do código. Por que você não adiciona também esse cheque?

Erro meu. Era outra versão desse indicador que eu estava descrevendo aqui. De qualquer forma, sou novato na codificação mql4 e não tenho idéia de como fazer isso. Você pode escrever esse pedaço de código com um pequeno tutorial de como ele funciona?

 
neverbeast:
Erro meu. Era outra versão desse indicador que eu estava descrevendo aqui. De qualquer forma, sou novato na codificação mql4 e não tenho idéia de como fazer isso. Você pode escrever esse pedaço de código com um pequeno tutorial de como ele funciona?

Você pode fazer isso :

se (TimeCurrent()-Time[0])>15) retornar(0);

Coloque-o no início do procedimento de start() (como primeira linha nele) e impedirá que o resto do código seja executado se o número de segundos passados desde o início da vela atual for maior que 15

 

Eu tenho o código para um EA, mas minhas habilidades são.....none. Tentei compilá-lo, tirar os bugs, mas sem sorte.

Alguém capaz de ajudar ??

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Ação de Preço V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 para seguir a tendência, 1 para forçar a compra, 2 para forçar a venda externa int leverage = 5; extern doubleLossinMoney = 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", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: "+Fechamento[0]); retorno; } vazio DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Fecha tudo //+------------------------------------------------------------------------+ vazio CloseAll() { for(int i=OrdensTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); resultado bool = falso; se ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Vermelho ); if ( OrderType() == OP_SELLL && OrderMagicNumber()==MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Vermelho ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); resultado bool = falso; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Vermelho ); 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_SELLL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| cancela todos os pedidos que estão com lucro //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| cancela todos os pedidos pendentes //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELLL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Determinar o preço do último pedido | //-------------------------------------------------------------------+ 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 opening BUY order : ",GetLastError()); return(0); } if(OrderTotal()==0 && TradeType ===2) { ticket=OrderSend(Symbol(),OP_SELLL,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 opening BUY order : ",GetLastError()); return(0); } } // início()

 

Desculpe, aqui não está tudo emaranhado

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Ação de Preço V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 para seguir a tendência, 1 para forçar a compra, 2 para forçar a venda externa int leverage = 5; extern doubleLossinMoney = 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", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: "+Fechamento[0]); retorno; } vazio DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Fecha tudo //+------------------------------------------------------------------------+ vazio CloseAll() { for(int i=OrdensTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); resultado bool = falso; se ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Vermelho ); if ( OrderType() == OP_SELLL && OrderMagicNumber()==MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Vermelho ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); resultado bool = falso; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Vermelho ); 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_SELLL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| cancela todos os pedidos que estão com lucro //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| cancela todos os pedidos pendentes //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELLL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Determinar o preço do último pedido | //-------------------------------------------------------------------+ 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 opening BUY order : ",GetLastError()); return(0); } if(OrderTotal()==0 && TradeType ===2) { ticket=OrderSend(Symbol(),OP_SELLL,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 opening BUY order : ",GetLastError()); return(0); } } // início()

 
godrich:
Desculpe, aqui não está tudo misturado //| // Price Action V1 // hodhabi@gmail.com ///$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1; extern double TP = 100; extern int TradeType = 0; // 0 para seguir a tendência, 1 para forçar a compra, 2 para forçar a venda externa int alavancagem = 5; extern doubleLossinMoney = 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", "New order has been added "+OrdersTotal()+" Balance = " +AccountBalance() + " Equity = "+AccountEquity() +" Current Price: "+Fechamento[0]); retorno; } vazio DrawHorizentalLine() { ObjectCreate("TProfit", OBJ_HLINE, 0, Time[1], Close[0]+500*Point); ObjectSet("Tprofit", OBJPROP_STYLE, STYLE_SOLID); ObjectSet("Tprofit", OBJPROP_COLOR, MediumSeaGreen); } //+------------------------------------------------------------------------+ //| Fecha tudo //+------------------------------------------------------------------------+ vazio CloseAll() { for(int i=OrdensTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); resultado bool = falso; se ( OrderType() == OP_BUY && OrderMagicNumber()== MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Vermelho ); if ( OrderType() == OP_SELL && OrderMagicNumber()==MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Vermelho ); if (UseAlerts) PlaySound("alert.wav"); } return; } void CloseAllBuy() { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); resultado bool = falso; if ( OrderType() == OP_BUY && OrderMagicNumber()==MagicNumber) resultado = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Vermelho ); 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_SELLL && OrderMagicNumber()==MagicNumber) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); if (UseAlerts) PlaySound("alert.wav"); } return; } //+------------------------------------------------------------------------+ //| cancela todos os pedidos que estão com lucro //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| cancela todos os pedidos pendentes //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket; int OrdersSELLL; double BuyLots, SellLots, BuyProfit, SellProfit; //+------------------------------------------------------------------+ // Determinar o preço do último pedido | //-------------------------------------------------------------------+ 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 opening BUY order : ",GetLastError()); return(0); } if(OrderTotal()==0 && TradeType ===2) { ticket=OrderSend(Symbol(),OP_SELLL,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 opening BUY order : ",GetLastError()); return(0); } } // início()

godrich

pode anexar o arquivo mq4

Desta forma, será inutilizável se colado em metaeditor

 

Não sei se isso funcionou, mas...

Arquivos anexados:
pac.mq4  5 kb
 

Hi.

Acabei de encontrar o indicador PetD que traça uma linha vermelha ou verde sobre o meu castiçal. O que me pergunto é se é possível fazer uma faixa de histograma colorido em vez disso.

Assim, posso ter uma janela separada com uma barra verde ou vermelha.

Obrigado

pet-d_full_option.mq4

Arquivos anexados:
 
NWFstudent:
Hi.

Acabei de encontrar o indicador PetD que traça uma linha vermelha ou verde sobre o meu castiçal. O que me pergunto é se é possível fazer uma faixa de histograma colorido em vez disso.

Assim, posso ter uma janela separada com uma barra verde ou vermelha.

Obrigado

pet-d_full_option.mq4

NWFstudent

Aqui também é esse tipo: pet-d_full_option_-_separate.mq4

Arquivos anexados:
 
makototokyo:
Olá,

este indicador não parece fazer bem o alerta. Sinto que ele faz alerta apenas uma vez depois que o mt4 é iniciado e depois do 1º alerta não faz soar. Também percebi que ele só faz som quando a barra está "clímax"... mas quero que ele faça som quando a barra está "subindo".

Alguém poderia corrigir este código para o indicador de volume?

Se você tiver tempo para fazer o mesmo para este indicador de vela, eu agradeço, mas não quero tomar muito do seu tempo.

Agradecemos antecipadamente.

Makototokyo, alterou os alertas na versão de janela separada para usar os alertas de "subir e subir de touro", e eles devem estar funcionando corretamente nesta versão.

Arquivos anexados: