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
je peux utiliser lwma donc si je veux que la période soit de 30 en coque quelle mv dois-je mettre dans le graphique deux ma ou juste une avec combien de période je ne suis pas bon en maths et merci beaucoup beaucoup pour votre effort
zoroxzyad
Vous ne pouvez pas utiliser uniquement la moyenne mobile. Vous devez utiliser la formule du post précédent
Y a-t-il déjà un manuel pour le nouveau metatrader 4 ?
Ou en feront-ils jamais un ?
Y a-t-il déjà un manuel pour le nouveau metatrader 4 ? ou en feront-ils un un jour ?
Pas à ma connaissance. Je suppose qu'il y en aura (à un moment donné du développement).
Mladen, vous trouverez ci-joint un indicateur que vous avez modifié pour afficher les signaux de croisement sur le graphique principal.
Ce code est issu de la nouvelle version.
arrDn[CB] = EMPTY_VALUE;
state[CB] = state[CB+1];
if (TrendBuffer[CB]>LoBuffer[CB]) state[CB] = 1;
if (TrendBuffer[CB]<LoBuffer[CB]) state[CB] = -1;
if (state[CB]!=state[CB+1])
{
if (state[CB]== 1) arrUp[CB] = Low[CB] -iATR(NULL,0,10,CB)/2.0;
if (state[CB]==-1) arrDn[CB] = High[CB]+iATR(NULL,0,10,CB)/2.0;
}Y a-t-il un moyen facile d'expliquer comment ce code insère les signaux ?
Merci.
Mladen, vous trouverez ci-joint un indicateur que vous avez modifié pour afficher les signaux de croisement sur le graphique principal.
Ce code provient de la nouvelle version.
arrDn[CB] = EMPTY_VALUE;
state[CB] = state[CB+1];
if (TrendBuffer[CB]>LoBuffer[CB]) state[CB] = 1;
if (TrendBuffer[CB]<LoBuffer[CB]) state[CB] = -1;
if (state[CB]!=state[CB+1])
{
if (state[CB]== 1) arrUp[CB] = Low[CB] -iATR(NULL,0,10,CB)/2.0;
if (state[CB]==-1) arrDn[CB] = High[CB]+iATR(NULL,0,10,CB)/2.0;
}Y a-t-il un moyen facile d'expliquer comment ce code insère les signaux ?
Merci.Michael
Il recherche un croisement de valeurs dans deux buffers : TrendBuffer et LoBuffer. Il marque l'état actuel des deux : si TrendBuffer > LoBuffer il met l'état à 1 et si TrendBuffer < LoBuffer il met l'état à -1.
Maintenant, lorsque l'état de la barre actuelle est différent de l'état de la barre précédente, cela signifie qu'il y a un croisement. Et alors il dessine une flèche sur le graphique
Aussi professeur gênant encore, s'il vous plaît mettre cet indicateur converti en indicateurs MT4, merci !
colorbars_hlc.mq5
Michael
Il recherche un croisement de valeurs dans deux tampons : TrendBuffer et LoBuffer. Elle marque l'état actuel des deux : si TrendBuffer > LoBuffer, elle met l'état à 1 et si TrendBuffer < LoBuffer, elle met l'état à -1.
Maintenant, lorsque l'état de la barre actuelle est différent de l'état de la barre précédente, cela signifie qu'il y a un croisement. Et alors il dessine une flèche sur le graphiqueOK, cela explique TrendBuffer et LoBuffer.
Mais comment fonctionnent arrUp et arrDn ?
Pourquoi les signaux apparaissent-ils sur certaines bougies, et pas sur toutes les bougies.
Merci encore.
OK, cela explique TrendBuffer et LoBuffer.
Mais comment fonctionnent arrUp et arrDn ?
Pourquoi les signaux apparaissent-ils sur certaines bougies, et pas sur toutes les bougies.
Merci encore.michael
imaginez une séquence comme celle-ci (1 lorsque TrendBuffer > LoBuffer, -1 lorsque TrendBuffer < LoBuffer)
11111111-1-1-1-1-1-1-1-111111111
Les flèches doivent être dessinées uniquement lorsque 1 devient -1 ou lorsque -1 devient 1 (lorsque l'"état" change). C'est pourquoi il y a une ligne qui vérifie cela (cette ligne : if (state[CB] !=state[CB+1]) ). Donc, lorsque l'état change, la flèche est dessinée, sinon la flèche n'a pas besoin d'être dessinée du tout.
Hey mladen,
J'espère que tu as le temps si près de la fin de l'année.
Le code ci-dessous a un rapport avec la dernière question que j'ai posée. Il traîne 0,8 pips pour un ordre après l'objectif de 2 pips en plus.
Mais comment puis-je le modifier de façon à ce qu'il vérifie tous les ordres et les suive individuellement ?
Merci beaucoup ! Vous faites un excellent travail ici.
int start()
{
//----
if (OrdersTotal() == 0) {
isStopLoss = false;
}
for(int i=0; i<=OrdersTotal(); i++) {
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
continue;
}
if(OrdersTotal() == 0) {
continue;
}
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(isStopLoss == true) {
if(OrderType() == OP_BUY) {
if(iClose(Symbol(), 0, 0) >= (OrderOpenPrice()+inProfitStopLoss*Point)) { // Zieht bei 2.0 Pips nach! - 200 = 2.0 Pips
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) >= (lastStopLoss+trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss+trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+inProfitStopLoss*Point,0,0,0);
if(OrderStopLoss() >= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
} else if(OrderType() == OP_SELL) {
if(iClose(Symbol(), 0, 0) <= (OrderOpenPrice()-inProfitStopLoss*Point)) {
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) <= (lastStopLoss-trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss-trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-inProfitStopLoss*Point,0,0,0); // 200 ursprünglich
if(OrderStopLoss() <= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
}
lastStopLoss = OrderStopLoss();
continue;
}
if(OrderType() == OP_BUY) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-initialStopLoss*Point,0,0,0);
} else if(OrderType() == OP_SELL) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+initialStopLoss*Point,0,0,0);
}
lastStopLoss = OrderStopLoss();
}
//----
return(0);
}Hé mladen,
J'espère que vous avez le temps si près de la fin de l'année.
Le code ci-dessous a un rapport avec la dernière question qui m'a été posée. Il traîne 0,8 pips pour un ordre après l'objectif de 2 pips en plus.
Mais comment puis-je le modifier de façon à ce qu'il vérifie tous les ordres et les suive individuellement ?
Merci beaucoup ! Vous faites un excellent travail ici.
int start()
{
//----
if (OrdersTotal() == 0) {
isStopLoss = false;
}
for(int i=0; i<=OrdersTotal(); i++) {
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
continue;
}
if(OrdersTotal() == 0) {
continue;
}
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(isStopLoss == true) {
if(OrderType() == OP_BUY) {
if(iClose(Symbol(), 0, 0) >= (OrderOpenPrice()+inProfitStopLoss*Point)) { // Zieht bei 2.0 Pips nach! - 200 = 2.0 Pips
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) >= (lastStopLoss+trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss+trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+inProfitStopLoss*Point,0,0,0);
if(OrderStopLoss() >= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
} else if(OrderType() == OP_SELL) {
if(iClose(Symbol(), 0, 0) <= (OrderOpenPrice()-inProfitStopLoss*Point)) {
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) <= (lastStopLoss-trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss-trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-inProfitStopLoss*Point,0,0,0); // 200 ursprünglich
if(OrderStopLoss() <= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
}
lastStopLoss = OrderStopLoss();
continue;
}
if(OrderType() == OP_BUY) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-initialStopLoss*Point,0,0,0);
} else if(OrderType() == OP_SELL) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+initialStopLoss*Point,0,0,0);
}
lastStopLoss = OrderStopLoss();
}
//----
return(0);
}arroganzmaschine
Vérifiez la façon dont les trailing stops sont gérés dans l'EA à partir de ce post : https://www.mql5.com/en/forum/181334. Je pense qu'il peut vous aider car il a tous les éléments (y compris la vérification des erreurs) qui sont nécessaires pour gérer les stops suiveurs.