Aide au codage - page 439

 
neverbeast:
Rebonjour.

J'ai donc créé un indicateur simple avec des flèches. Malheureusement, il ne les dessine pas comme je le voulais. Mon but était d'afficher une flèche lorsque les conditions sont remplies, mais lorsque les conditions ne sont plus remplies, la flèche devrait être supprimée. Par exemple : Dans les 15 secondes de la bougie actuelle, les conditions sont remplies et une flèche est dessinée, puis elle change de direction et les conditions ne sont plus remplies, elle doit donc être supprimée avant la clôture de la bougie actuelle. Actuellement, il dessine des flèches lorsque les conditions sont remplies et ne repeint pas du tout, de plus il y a des flèches d'expiration montrant si elle est allée ITM ou OTM/ATM qui ne se dessinent pas du tout jusqu'au rafraîchissement. Quelqu'un pourrait-il jeter un coup d'œil et m'aider à le réparer, s'il vous plaît ?

6s.mq4

Vous n'avez pas du tout de contrôle pour les 15 premières secondes dans le code. Pourquoi ne pas ajouter cette vérification également

 
mladen:
Vous n'avez pas du tout de vérification pour les 15 premières secondes dans le code. Pourquoi ne pas ajouter cette vérification aussi

C'est ma faute. C'était une autre version de cet indicateur que je décrivais ici. Quoi qu'il en soit, je suis un débutant dans le codage de mql4 et je n'ai aucune idée de la façon de faire cela. Pouvez-vous écrire ce morceau de code avec un petit tutoriel sur son fonctionnement ?

 
neverbeast:
C'est ma faute. C'était une autre version de cet indicateur que je décrivais ici. De toute façon, je suis novice dans le codage de mql4 et je n'ai aucune idée de comment faire cela. Pouvez-vous écrire ce morceau de code avec un petit tutoriel sur son fonctionnement ?

Vous pouvez faire ceci :

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

Placez-la au début de la procédure start() (comme première ligne dans celle-ci) et elle empêchera le reste du code d'être exécuté si le nombre de secondes écoulées depuis le début de la bougie actuelle est supérieur à 15.

 

J'ai le code pour un EA mais mes compétences sont.....none. J'ai essayé de le compiler, d'éliminer les bugs, mais sans succès.

Quelqu'un peut m'aider ? ??

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1 ; extern double TP = 100 ; extern int TradeType = 0 ; // 0 pour suivre la tendance, 1 pour forcer l'achat, 2 pour forcer la vente extern int leverage = 5 ; extern double MaximumLossinMoney = 1000 ; extern int MagicNumber = 250346 ; extern bool UseAlerts = false ; //+-------------+ //| Custom init | //|-------------+ int init() { } //+-------------+ //| Custom DE 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 : " + 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) ; } //+------------------------------------------------------------------------+ //| Ferme tout //+------------------------------------------------------------------------+ 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 ; } } //+------------------------------------------------------------------------+ //| annule tous les ordres qui sont en profit //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| annule tous les ordres en attente //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket ; int OrdersSELL ; double BuyLots, SellLots, BuyProfit, SellProfit ; //+------------------------------------------------------------------+ // Détermination du prix du dernier ordre | //-------------------------------------------------------------------+ 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(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 opening BUY order : ",GetLastError()) ; return(0) ; } } // start()

 

Désolé, ici ce n'est pas tout mélangé.

//|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1 ; extern double TP = 100 ; extern int TradeType = 0 ; // 0 pour suivre la tendance, 1 pour forcer l'achat, 2 pour forcer la vente extern int leverage = 5 ; extern double MaximumLossinMoney = 1000 ; extern int MagicNumber = 250346 ; extern bool UseAlerts = false ; //+-------------+ //| Custom init | //|-------------+ int init() { } //+hodhabi@gmail.com+ //| Custom DE-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 : " + 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) ; } //+------------------------------------------------------------------------+ //| Ferme tout //+------------------------------------------------------------------------+ 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 ; } } //+------------------------------------------------------------------------+ //| annule tous les ordres qui sont en profit //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| annule tous les ordres en attente //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket ; int OrdersSELL ; double BuyLots, SellLots, BuyProfit, SellProfit ; //+------------------------------------------------------------------+ // Détermination du prix du dernier ordre | //-------------------------------------------------------------------+ 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(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 opening BUY order : ",GetLastError()) ; return(0) ; } } // start()

 
godrich:
Désolé, ici ce n'est pas tout mélangé //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // Price Action V1 // hodhabi@gmail.com //|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #define NL "\n" extern double Lots = 1 ; extern double TP = 100 ; extern int TradeType = 0 ; // 0 pour suivre la tendance, 1 pour forcer l'achat, 2 pour forcer la vente ; 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", "New order has been added "+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) ; } //+------------------------------------------------------------------------+ //| Ferme tout //+------------------------------------------------------------------------+ 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 ; } } //+------------------------------------------------------------------------+ //| annule tous les ordres qui sont en profit //+------------------------------------------------------------------------+ //+------------------------------------------------------------------------+ //| annule tous les ordres en attente //+------------------------------------------------------------------------+ //+-----------+ //| Main | //+-----------+ int start() { int OrdersBUY, ticket ; int OrdersSELL ; double BuyLots, SellLots, BuyProfit, SellProfit ; //+------------------------------------------------------------------+ // Détermination du prix du dernier ordre | //-------------------------------------------------------------------+ 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(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 opening BUY order : ",GetLastError()) ; return(0) ; } } // start()

godrich

pouvez-vous joindre le fichier mq4

De cette façon, il sera inutilisable s'il est collé dans le metaeditor.

 

Je ne sais pas si ça a marché mais...

Dossiers :
pac.mq4  5 kb
 

Bonjour.

Je viens de trouver l'indicateur PetD qui dessine une ligne rouge ou verte sur mon chandelier. Ce que je me demande, c'est s'il est possible de faire une bande d'histogramme coloré à la place.

Ainsi je peux avoir une fenêtre séparée avec une barre verte ou rouge.

Merci

pet-d_full_option.mq4

Dossiers :
 
NWFstudent:
Bonjour.

Je viens de trouver l'indicateur PetD qui dessine une ligne rouge ou verte sur mon chandelier. Ce que je me demande, c'est s'il est possible de faire une bande d'histogramme coloré à la place.

Ainsi je peux avoir une fenêtre séparée avec une barre verte ou rouge.

Merci

pet-d_full_option.mq4

NWFstudent

Voici aussi ce type d'histogramme : pet-d_full_option_-_separate.mq4

Dossiers :
 
makototokyo:
Bonjour,

cet indicateur ne semble pas bien faire l'alerte. J'ai l'impression qu'il ne fait qu'une seule alerte après le démarrage de mt4 et après la 1ère alerte il ne fait pas de son. J'ai aussi réalisé qu'il ne fait du son que lorsque la barre est "climax"... mais je veux qu'il fasse du son lorsque la barre est "ascendante".

Quelqu'un pourrait-il corriger ce code pour l'indicateur de volume ?

Si vous avez le temps de faire la même chose pour cet indicateur de bougie, j'apprécierais, mais je ne veux pas prendre trop de votre temps.

Je vous remercie d'avance.

Makototokyo, j'ai changé les alertes dans la version fenêtre séparée pour utiliser les alertes "bull rising et bear rising", et elles devraient fonctionner correctement dans cette version.