Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
1, ajoutez le drapeau bool après le déclenchement des critères de négociation.
2, vérifier le drapeau bool avant de passer la commande
3, après avoir passé la commande, le drapeau bool doit être réinitialisé.
4, réinitialiser le drapeau dans init() aussiMerci
Guide MQL nécessaire =^_^=
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 White
extern int Fast.MA.Period = 5 ;
extern int Slow.MA.Period = 34 ;
extern int Signal.period = 5 ;
//---- tampons
double Buffer1[],
Buffer2[],
b2[],
b3[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
// deux tampons supplémentaires utilisés pour le comptage
IndicatorBuffers(4) ;
IndicateurShortName("MA3_54") ;
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3) ;
SetIndexArrow(0,242) ; // vers le bas 226 234 242
SetIndexBuffer(0,b2) ;
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3) ;
SetIndexArrow(1,241) ; //HAUT 225 233 241
SetIndexBuffer(1,b3) ;
// Ces tampons ne sont pas tracés, ils sont juste utilisés pour déterminer les flèches.
SetIndexBuffer (2,Buffer1) ;
SetIndexBuffer (3,Buffer2) ;
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'indicateur de garde |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisée |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted() ;
double MA5,MA34 ;
int limit=Bars_comptées ;
Print(" print limit = ", limit) ;
if(counted_bars>0) limit++ ;
// Ligne principale
for(i=0 ; i<limit ; i++)
{
MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i) ;
MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i) ;
Tampon1=MA5-MA34 ;
}
// Ligne de signal
for(i=0 ; i<limit ; i++)
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i) ;
}
// Flèches
for(i=0 ; i<limit ; i++)
{
if(Buffer1 > Buffer2 && Buffer1 < Buffer2)
b2 = Haut+10*Point ;
si(Buffer1 Buffer2)
b3 = Bas-10*Point ;
}
//----
return(0) ;
}
Pouvez-vous m'apprendre comment créer un EA basé sur cet indis ? Quand la flèche apparaît sur l'écran et que l'EA entre automatiquement en position, est-ce possible ? S'il vous plaît, guidez-moi car j'aime apprendre =^_^=.
Bonne référence
#property indicator_chart_window
#Propriété indicator_buffers 2
............guidez-moi car j'ai envie d'apprendre =^_^=Voir ce guide très bon matériel Tutoriel MQL4
L'indis ressemble à ceci
Voici le signal de la flèche mentionné ci-dessus, j'ai besoin de quelqu'un pour me guider dans le codage de l'EA.
Merci à tous =^_^=
Quelqu'un peut-il m'aider à coder cet indis dans un EA simple ?
Bonjour les gars, quelqu'un peut-il m'aider à coder cet indis dans un EA ? Seulement un simple EA qui entre en position quand les flèches apparaissent sur l'écran, j'apprécierais beaucoup si quelqu'un pouvait m'aider sur un EA simple. =^_^= Merci.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 White
extern int Fast.MA.Period = 5 ;
extern int Slow.MA.Period = 34 ;
extern int Signal.period = 5 ;
//---- tampons
double Buffer1[],
Buffer2[],
b2[],
b3[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
// deux tampons supplémentaires utilisés pour le comptage
IndicatorBuffers(4) ;
IndicatorShortName("Elliott Wave Oscillator") ;
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3) ;
SetIndexArrow(0,242) ; // vers le bas 226 234 242
SetIndexBuffer(0,b2) ;
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3) ;
SetIndexArrow(1,241) ; //HAUT 225 233 241
SetIndexBuffer(1,b3) ;
//
SetIndexBuffer (2,Buffer1) ;
SetIndexBuffer (3,Buffer2) ;
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'indicateur de garde |
//+------------------------------------------------------------------+
int deinit()
{
//
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisée |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted() ;
double MA5,MA34 ;
int limit=Bars_comptées ;
Print(" print limit = ", limit) ;
if(counted_bars>0) limit++ ;
// Ligne principale
for(i=0 ; i<limit ; i++)
{
MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i) ;
MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i) ;
Tampon1=MA5-MA34 ;
}
// Ligne de signal
for(i=0 ; i<limit ; i++)
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i) ;
}
// Flèches
for(i=0 ; i<limit ; i++)
{
if(Buffer1 > Buffer2 && Buffer1 < Buffer2)
b2 = Haut+10*Point ;
si(Buffer1 Buffer2)
b3 = Bas-10*Point ;
}
//----
return(0) ;
}
//+------------------------------------------------------------------+
Code pour les ordres multiples ?
Est-ce que quelqu'un a un bon code pour négocier des ordres multiples lorsqu'on se heurte à la barrière du lot maximum ?
Par exemple, le courtier ne permet que des lots de 5, et vous voulez en négocier 10. La fonction négociera donc 2 ordres de 5 lots à la place.
Je cherche plus qu'une simple boucle ici. Le problème est qu'une simple boucle ne sera pas toujours complète, et vous pourriez vous retrouver avec seulement un ordre partiel ouvert.
Comment supprimer l'erreur 1 de OrderModify
Bonjour,
Je ne peux pas éviter l'erreur OrderModify 1 : elle apparaît toujours même en essayant de contrôler que les données avant de modifier sont différentes ! J'ai aussi essayé de doubler la normalisation... sans succès...
Voici le code :
if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)
{
si (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)
{
Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green) ;
Des suggestions ?
Merci.
Bonjour, quelqu'un peut-il m'aider à coder cet indis dans un EA ? Seulement un EA simple qui entre en position //+------------+
Ces aérogrammes sont affichés sur 2 moyennes mobiles qui se croisent, c'est à dire 5-34, vous pouvez trouver beaucoup d'EAs "MA's Cross EA" et avec un peu de chance vous en trouverez un.
Comment puis-je régler la fréquence des alertes ?
Je suis nouveau sur mq4 et j'essaie de créer un affichage à l'écran lorsqu'il y a un croisement de MACD. Voici mon code mais les alertes s'affichent toutes les quelques minutes.
Comment puis-je le coder pour afficher des alertes seulement une fois par heure ? Ou une alerte par barre ?
int start()
{
string MACD1="" ;
couleur colt9 ;
double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0) ;
double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0) ;
double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1) ;
double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1) ;
if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND" ; colt9=LimeGreen ; }
if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND" ; colt9=Red ; }
if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NOUVEAU CROISEMENT HAUT" ; colt9=LimeGreen ; }
if ((MACDM_S11 MACDS_S10)) { MACD1="NEW DOWN CROSSING" ; colt9=Red ; }
chaîne MACD2="" ;
couleur colt14 ;
double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0) ;
double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0) ;
double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1) ;
double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1) ;
if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND" ; colt14=LimeGreen ; }
if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND" ; colt14=Red ; }
if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NOUVEAU CROISEMENT HAUT" ; colt14=LimeGreen ; }
if ((MACDM_L11 MACDS_L10)) { MACD2="NEW DOWN CROSSING" ; colt14=Red ; }
if(MACD1=="NEW UP CROSSING"&&MACD2=="IN UPTREND")
Alert(Symbol()," - ", "H1 :"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS)) ;
if(MACD1=="NEW DOWN CROSSING"&&MACD2=="IN DOWNTREND")
Alert(Symbol()," - ", "H1 :"," MACD MAIN DOWNTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS)) ;
if(MACD2=="NEW UP CROSSING"&&MACD1=="IN UPTREND")
Alert(Symbol()," - ", "H1 :"," MACD, MAIN TREND CHANGE TO UPTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS)) ;
if(MACD2=="NEW DOWN CROSSING"&&MACD1=="IN DOWNTREND")
Alert(Symbol()," - ", "H1 :"," MACD, MAIN TREND CHANGE TO DOWNTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS)) ;
return(0) ;
}
dans quelles paires ?