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 beaucoup !!! cockeyedcowboy, c'était vraiment super !!
Maintenant le message d'erreur est parti !
Mais le deuxième indicateur ne s'affiche pas et je ne sais pas pourquoi...
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i) ;
Vous avez un problème avec le deuxième tampon parce qu'il n'a pas de données pour les calculs.
Essayez de calculer TOUS les éléments dans Buffer_Mom, puis Buffer_Ma.
Exemple :
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(int i=0; i<limit; i++)
{
Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);
}
for( i=0; i<limit; i++)
{
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
}
return(0);
}Bonne chance.
Trouver l'OHLC d'une barre spécifique
Quelqu'un peut-il me dire comment trouver le prix de clôture d'une barre spécifique en utilisant un code MQL ? Puis-je référencer une barre par son heure ?
Par exemple : closing_price_of_bar = Close("04:59:00 AM") ... si seulement c'était aussi simple !
Merci de votre compréhension.
salut les amis !
ok j'ai un autre gros problème...
Comment coder cette condition ?
entrer en long ou en short seulement la première fois
(donc si j'ai plusieurs signaux longs qui suivent, l'ea n'entre que la première fois).
J'aimerais que tout le monde puisse m'aider sur ce point.
Voici mon code simple pour la condition d'achat :
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}Quelqu'un peut-il me dire comment trouver le prix de clôture d'une barre spécifique en utilisant un code MQL ? Puis-je référencer une barre par son heure ?
c'est-à-dire : closing_price_of_bar = Close("04:59:00 AM") ... si seulement c'était aussi simple !
Merci de votre compréhension.Essayez ceci :
closing_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59")) ;
Acheter ou vendre
Bonjour à tous,
J'ai l'EA d'achat et l'EA de vente qui sont toujours ouverts plus d'une position. J'aimerais avoir de l'aide pour changer ou modifier le code afin de permettre seulement 1(une) position d'achat et 1(une) position de vente et dans 1(une) compte.
Le SL et le TP utiliseront le Price Target, c'est-à-dire que si le prix d'achat a atteint le Price Target, la position sera fermée. De même pour le prix de vente.
J'apprécie l'aide des experts en code de ce forum.
Je vous remercie.
=s21=
Acheter et vendre
Oooops...
Voici l'EA d'achat.
Bonjour, si vous avez besoin qu'une seule commande soit ouverte, vous pouvez simplement ajouter la condition suivante : Si (OrdersTotal()==0).
Ainsi, vos règles pour les ordres d'achat seront quelque chose comme ça :
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
[/CODE]
So you will not get second-third-... orders opened until you current order open.
hy folks !
ok i have another big problem...
how to code this condition :
enter long or short only first time
(so if i have many following long signal ea enter only at first time)
i'll pay everyone could help me on this
this is my simple code for buy condition:
[CODE]
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}Essayez ceci : closing_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59")) ;
Fab ! J'ai dû ajouter une parenthèse fermante supplémentaire afin d'empêcher l'interpréteur de se plaindre d'une erreur, mais ça a bien fonctionné.
Merci, Roger09
Bonjour, si vous avez besoin qu'un seul ordre soit ouvert, vous pouvez simplement ajouter la condition suivante : Si (OrdersTotal()==0).
Donc vos règles pour les ordres d'achat seront quelque chose comme ça :
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
merci Avalanche,
mais ce n'est pas une solution pour moi, parce que j'ai un TP, je n'attends pas la condition contraire
D'autres idées ? Envoyez-moi un message et je vous paierai