Aide au codage - page 223

 
daniel1983:
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 :

#property indicator_chart_window

//------------------------------------------------------------------

//

//------------------------------------------------------------------

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);

}
Dossiers :
test.mq4  1 kb
 

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:
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

 
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, MGM

MGM

Quel indicateur exactement (quel poste n°) ?

 
mladen:
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,

 
-IXI-:
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);

}

}

Le meilleur,

-IXI-

D'après ce que je vois, tout est OK

 

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.

Dossiers :