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
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
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.
PucioVous 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
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.
ShekSi nécessaire, vérifiez d'abord que vous êtes après 8 heures du matin :
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.