Demandez ! - page 105

 

Question pour les codeurs

Bonjour

J'ai écrit une alerte mais elle ne fonctionne que lorsque j'ouvre une fenêtre avec mon indicateur. Elle ne fonctionne également que lorsque je saute entre les fenêtres des graphiques, en d'autres termes lorsque je saute entre les niveaux de temps des graphiques. Il semble que l'indicateur ne peut pas compter quand il fonctionne. Comment puis-je résoudre mon problème ? Besoin d'aide. Le problème est-il lié à Indicatorcounted ? Dois-je faire quelque chose dans le paramètre de l'alerte ? Comment faire ?

Dois-je utiliser quelque chose comme :

double

? = ObjectGetValueByShift(string name, int shift)) ;

si ( ???????????)

Alert("Pattern on " + Symbol() + " " + Period()) ;

Pucio

 

Question idiote...

Quelqu'un ? J'essaie de créer ce qui doit être l'indy le plus simple de tous les temps et je me plante...

Entrée : Dernière valeur de Tic de (1)Paire X et (2) Paire Y.

(les deux CDF "paires" ..c'est à dire des symboles de 3 lettres))

Sortie 1 : Impression sur l'écran X-Y

Sortie 2 : Tracé dans la fenêtre de l'indicateur MA de X-Y..

Ne demandez pas...LoL

 

Alerte unique

Bonjour,

S'il vous plaît, pourriez-vous écrire un exemple de code où l'Alerte est seulement une fois.

Lorsqu'un objet apparaît sur le graphique et que vous voulez avoir une alerte unique.

Pucio

 
Pucio:
Bonjour,

S'il vous plaît, pourriez-vous écrire un exemple de code où l'alerte n'est qu'une fois.

Lorsqu'un objet apparaît sur le graphique et que vous voulez que l'alerte soit unique.

Pucio

Vous pourriez peut-être utiliser ce morceau de code : https://www.mql5.com/en/forum/general

 

J'ai un indicateur similaire à celui-ci. Quelqu'un sait-il comment transmettre ses valeurs à EA ? J'ai essayé d'utiliser un tampon, de cette façon

double Trend[] ;

...

SetIndexBuffer(0,Trend) ;

...

Trend[0]=UpRating ;

retour(0) ;

}

Je ne sais pas si cela fonctionne mais je sais que l'inscription de tous les indicateurs a disparu. Une idée à ce sujet ?

 

Besoin d'aide pour une modification

Bonjour collègue commerçant

J'ai besoin d'aide avec ce code.

La fonction actuelle est de fermer les premiers ordres ouverts par temps et tous les ordres suivants, ce qui signifie qu'il pourrait y avoir plus de 2 ordres fermés dans le même temps.

Question : comment puis-je le modifier pour qu'il ferme les 2 premiers ordres ouverts par heure UNIQUEMENT.

Voici le code.

Merci pour votre aide

//+------------------------------------------------------------------+

//| Condition de fermeture de type 2

//+------------------------------------------------------------------+

void CheckCloseConditionType2()

{

int Ordres[] ;

int i, j ;

ArrayResize(Orders, 0) ;

int cnt = OrdersTotal() ;

for (i=0 ; i < cnt ; i++)

{

if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ;

if (OrderSymbol() != Symbol()) continue ;

si (OrderMagicNumber() != Magic) continuer ;

int type = OrderType() ;

if (type == OP_BUY || type == OP_SELL)

{

int size = ArraySize(Orders) ;

ArrayResize(Orders, size+1) ;

Ordres = OrderTicket() ;

}

}

//-----

size = ArraySize(Orders) ;

for (i=0 ; i < taille ; i++)

{

if (!OrderSelect(Orders, SELECT_BY_TICKET)) continue ;

si (OrderCloseTime() > 0) continue ;

datetime tm1 = OrderOpenTime() ;

for (j=i+1 ; j < taille ; j++)

{

if (!OrderSelect(Orders[j], SELECT_BY_TICKET)) continue ;

si (OrderCloseTime() > 0) continue ;

datetime tm2 = OrderOpenTime() ;

si (tm1 > tm2)

{

int ticket = Orders ;

Commandes = Commandes[j] ;

Ordres[j] = ticket ;

}

}

}

//-----

for (i = taille-1 ; i >= 1 ; i--)

{

double Profit = ArrayGetOrdersProfit(Orders) ;

if ((Profit >= TotalTakeProfit && TotalTakeProfit > 0) || (Profit >= Profit2Exit && Profit2Exit > 0))

{

Print("[Enter] Close by condition Type2") ;

string msg1 = "" ;

string msg2 = "" ;

double P ;

double T.P = 0 ;

for (j=0 ; j < taille ; j++)

{

if (Orders[j] == -1) continue ;

if (!OrderSelect(Orders[j], SELECT_BY_TICKET)) continue ;

si (OrderCloseTime() > 0) continue ;

if (StringLen(msg1) > 0) msg1 = msg1 + " + " ;

msg1 = msg1 + "order " +Orders[j] ;

GetOrderProfit(Orders[j], P) ;

if (StringLen(msg2) > 0) msg2 = msg2 + " + " ;

msg2 = msg2 +DoubleToStr(P, 2) ;

T.P += P ;

}

Print("Clôture : " + msg1) ;

Print("Profit : " + msg2 + " = " + DoubleToStr(T.P, 2)) ;

ArrayCloseOrders(Orders) ;

Print("[Exit] Fermeture par condition Type2") ;

retour ;

}

Ordres = -1 ;

}

}

 

Comment compter le nombre de pips

Bonjour,

Je me suis rendu compte qu'après que le marché ait fait de grands mouvements (tendance à la hausse ou à la baisse). Le marché restant est en quelque sorte risqué à trader. J'essaie de programmer un EA pour éviter d'entrer dans des trades, disons après un grand mouvement d'environ 90 pips.

J'ai besoin de savoir comment calculer le nombre de pips depuis la première barre à 8h (ouverture du marché londonien) jusqu'à la barre actuelle. Si le marché a déjà été déplacé de plus de 90 pips, je ne prendrai aucune transaction.

Quelqu'un peut-il coder quelques lignes pour me donner quelques indices ? Merci beaucoup et j'apprécie.

Shek

 
yyc196:
Bonjour,

J'ai réalisé qu'après que le marché ait fait de grands mouvements (tendance à la hausse ou à la baisse). Le marché restant est en quelque sorte risqué à négocier. J'essaie de programmer un EA pour éviter d'entrer dans des transactions, disons après un grand mouvement d'environ 90 pips.

J'ai besoin de savoir comment calculer le nombre de pips depuis la première barre à 8h (ouverture du marché londonien) jusqu'à la barre actuelle. Si le marché a déjà été déplacé de plus de 90 pips, je ne prendrai aucune transaction.

Quelqu'un peut-il coder quelques lignes pour me donner quelques indices ? Merci beaucoup.

Shek

Si nécessaire, vérifiez d'abord que vous êtes après 8 heures du matin :

if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

 

J'essaie d'ajouter une nouvelle fonctionnalité à cet indicateur High_Low (Zigzag) V2 pour que chaque fois qu'il forme un nouveau high-low, le ZZ m'alerte. Je ne sais pas où cela se passe mal. L'indicateur ne s'affiche pas sur mon écran. Quelqu'un ? Aidez-moi s'il vous plaît... Je suis nouveau dans le codage, s'il vous plaît affiner ce que j'ai fait de sorte que l'indi fera exactement comme ce que je veux dans le ci-dessus. Voici le code.

high_low_v2_zigzag_with_alert.mq4

 

Bonjour,

Comment dessiner un fond rectangulaire ? Je veux dire par le biais du conding. Je sais que cela utilise ObjectCreate() mais je ne sais pas comment l'écrire de la façon dont je suis supposé le faire.