![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Merci Mladen, j'ai fait les changements, l'indicateur ressemble à ceci, mais ne fait toujours rien dans le graphique...
//------------------------------------------------------------------
#property copyright "www.forex-tsd.com"
#property link "www.forex-tsd.com"
//------------------------------------------------------------------
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//----
return(0) ;
}
int deinit() {
Comment("") ;
ObjectDelete("KeyLine") ;
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisée |
//+------------------------------------------------------------------+
int start()
{
double number = (iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3 ;
Comment("Key Line : ",number) ;
ObjectDelete("KeyLine") ;
ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number) ;
ObjectSet("KeyLine",OBJPROP_COLOR,Orange) ;
ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID) ;
ObjectsRedraw() ;
return(0) ;
}
Qu'est-ce que je fais de mal maintenant ?
Merci.Faites-le comme ceci :
//------------------------------------------------------------------
//
//------------------------------------------------------------------
int init() { return(0); }
int deinit()
{
Comment("");ObjectDelete("KeyLine");
return(0);
}
int start()
{
double number = (iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3;
Comment("Key Line: ",number);
ObjectDelete("KeyLine");
ObjectCreate("KeyLine", OBJ_HLINE,0, CurTime(),number);
ObjectSet("KeyLine",OBJPROP_COLOR,Orange);
ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);
return(0);
}Ok Mladen, merci beaucoup pour votre temps, je vais voir ce que je peux faire, car il y a un problème avec le code des maths, car il ne prend toujours pas les prix de la première bougie pour faire l'équation mathématique. merci encore, je vais y jeter un coup d'oeil pendant le week-end.
Daniel1983
Ok Mladen, merci beaucoup pour votre temps, je vais voir ce que je peux faire, car il y a un problème avec le code des maths, car il ne prend toujours pas les prix de la première bougie pour faire l'équation mathématique. merci encore, je vais y jeter un coup d'oeil pendant le week-end. Daniel1983
Daniel1983
Pour traduire ce code mql en langage de tous les jours : le nombre est égal à l'ouverture du jour précédent + le haut du jour précédent + le bas du jour précédent divisé par 3. De cette façon, les valeurs des différents cadres temporels ne sont pas mélangées et il n'y aura pas de changement dans les valeurs jusqu'à ce que le jour actuel change.
Salut Mladen,
J'ai téléchargé l'indicateur Support Resistance depuisThread: Comment utiliser efficacement le support et la résistance Mais lorsque je le place sur un graphique, le support et la résistance apparaissent. Mais si je supprime l'indicateur, le support et la résistance restent sur le graphique. Savez-vous comment je peux faire pour le supprimer complètement ?
Merci d'avance !
Meilleures salutations, MGM
Bonjour Mladen,
J'ai téléchargé l'indicateur Support Resistance à partir deThread: Comment utiliser efficacement le support et la résistance
Mais lorsque je le place sur un graphique, le support et la résistance apparaissent. Mais si je supprime l'indicateur, le support et la résistance restent sur le graphique. Savez-vous comment je peux faire pour le supprimer complètement ?
Merci d'avance !
Meilleures salutations, MGMMGM
Quel indicateur exactement (quel poste n°) ?
MGM Quel indicateur exactement (quel poste ?) ?
Désolé, Maladen, je l'ai téléchargé à partir deThread:How to use Support and Resistance Effectivelypage44. Et maintenant, il fonctionne bien. Excusez-moi pour la question.
Merci quand même !
MGM
Cher Mladen
Je veux écrire un EA qui ouvre deux ordres, le premier de vente ou d'achat et le second en attente.
Si le premier ordre atteint l'objectif, l'EA supprime l'ordre en attente et répète le cycle.
J'ai créé une structure préliminaire. Pourriez-vous la vérifier?
//+-------------------------------------------------------+
//| Main Function |
//+-------------------------------------------------------+
int start()
{
if (Counter() == 0)
{
Long ();
Short();
}
if (Counter() == 1)
{
PendingRemover();
}
return(0);
}
//+-------------------------------------------------------+
//| Complementary Functions |
//+-------------------------------------------------------+
//---- Order Counter
int Counter()
{
int Pending = 0;
int Trading = 0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == False) break;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == Buy or Sell Order) Trading++;
if(OrderType() == Pending Order) Pending++;
}
}
return(Trading+Pending);
}
//---- Pending Remover
void PendingRemover()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == False) break;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == Pending Order);
OrderDelete(Pending);
}
}
//---- Long Position Handler
void Long()
{
int Ticket1;
int Ticket2;
if (X > 0)
{
Ticket1 = OrderSend(Trading);
Ticket2 = OrderSend(Pending);
}
}
//---- Short Position Handler
void Short()
{
int Ticket1;
int Ticket2;
if (X < 0)
{
Ticket1 = OrderSend(Trading);
Ticket2 = OrderSend(Pending);
}
}
Bonne chance,
Cher Mladen
Je veux écrire un EA pour ouvrir deux ordres, le premier de vente ou d'achat et le second en attente.
Si le premier ordre atteint l'objectif, l'EA supprime l'ordre en attente et répète le cycle.
J'ai créé une structure préliminaire. Pourriez-vous la vérifier ?
//+-------------------------------------------------------+
//| Main Function |
//+-------------------------------------------------------+
int start()
{
if (Counter() == 0)
{
Long ();
Short();
}
if (Counter() == 1)
{
PendingRemover();
}
return(0);
}
//+-------------------------------------------------------+
//| Complementary Functions |
//+-------------------------------------------------------+
//---- Order Counter
int Counter()
{
int Pending = 0;
int Trading = 0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == False) break;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == Buy or Sell Order) Trading++;
if(OrderType() == Pending Order) Pending++;
}
}
return(Trading+Pending);
}
//---- Pending Remover
void PendingRemover()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == False) break;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == Pending Order);
OrderDelete(Pending);
}
}
//---- Long Position Handler
void Long()
{
int Ticket1;
int Ticket2;
if (X > 0)
{
Ticket1 = OrderSend(Trading);
Ticket2 = OrderSend(Pending);
}
}
//---- Short Position Handler
void Short()
{
int Ticket1;
int Ticket2;
if (X < 0)
{
Ticket1 = OrderSend(Trading);
Ticket2 = OrderSend(Pending);
}
}
-IXI-
D'après ce que je vois, tout est OK![](https://c.mql5.com/forextsd/smiles/smile.png)
Cher Mladen
Merci beaucoup.
J'ai ajouté quelques codes pour faire un EA simple.
Il est étrange que l'EA ouvre des ordres d' achat et de vente en même temps ! Une idée ?
//---- Long Position Handler
void Long()
{
int Ticket1;
int Ticket2;
if (iMA(Symbol(),Period(),10,0,1,0,1)
> iMA(Symbol(),Period(),10,0,1,0,2))
{
Ticket1 = OrderSend(Symbol(),OP_BUY ,...);
Ticket2 = OrderSend(Symbol(),OP_SELLSTOP,...);
}
}
//---- Short Position Handler
void Short()
{
int Ticket1;
int Ticket2;
if (iMA(Symbol(),Period(),10,0,1,0,1)
< iMA(Symbol(),Period(),10,0,1,0,2))
{
Ticket1 = OrderSend(Symbol(),OP_SELL ,...);
Ticket2 = OrderSend(Symbol(),OP_BUYSTOP,...);
}
}
Meilleur.
Bonjour, Mladen.si probablement ajouter dans Momentum-Atr l'indicateur filtre ema+ ? Mais seulement que l'EMA était trop normalisé ? Il sera probablement mieux d'ajouter une autre moyenne, SMA peut-être.Franchement, je ne sais pas quoi faire. Je veux recevoir dans cet indicateur un croisement avec MA.c'est nécessaire pour que le momentum croise zero-entry. Croise une MA -sortie
S'il vous plaît aider.
Merci.