![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Dans cet indicateur, il ya quelques problèmes lors de l'utilisation des citations à 4 chiffres. Mais il n'est pas critique, le problème est l'échelle à 4 chiffres au niveau de 100, a essayé de montrer les images, en regardant au bon moment est très fatiguant pour vos yeux (après quelques jours, si comme un fil à changer l'échelle au niveau de 40 - il serait mieux d'être vu histogrammes et coin droit du texte qui indiquerait la valeur actuelle ?
Оставлю оригинальный текст на русском, тк возможны искажения при переводе(
Il n'y a aucune raison pour que l'on ne se mette pas d'accord sur le fait qu'il n'y ait pas d'échange d'informations. Но это не критично, самая проблемы это масштабирование на 4 значном до уровня 100, постарался показать на картинках, разглядывать нужный момент весьма напрягает глаза( после нескольких дней, можно ли как нить поменять масштаб доуровня 40 - что бы лучше было видно гистограммы и в правом углу текстом что бы обозначалось текущее значение ? Il n'y a aucune raison de ne pas le faire. Il n'y a aucune raison de ne pas le faire.
Mladen,
Je travaille avec MT5.
J'ai cette " fonction de trailing simple" que je dois convertir en "trailing avec step", pourriez-vous me donner un conseil ?
Dans l'EA, j'ai
===================
entrée "Trailing" (par points)
=> exemple :
trailing : 4000 (4 points)
(ancienne méthode) si le prix a bougé de 4 points, déplacer le stoploss de 4 points
mais je dois modifier en
===================
Entrée "Trailing (Distance) en points".
Entrée "Trailing (Step) en points".
=> exemple :
distance de suivi : 4000 (4 points)
pas de traînage : 1500 (1,5 points)
(nouvelle méthode) si le prix a bougé de 4points déplacer le stoploss de 1,5 points
//| Simple Trailing function |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
}
}
N'est-ce pas le repeinteur ?
Mladen,
Je travaille avec MT5.
J'ai cette "fonction de trailing simple" que je dois convertir en "trailing avec step", pourriez-vous me donner un conseil ?
Dans l'EA, j'ai
===================
entrée "Trailing" (par points)
=> exemple :
trailing : 4000 (4 points)
(ancienne méthode) si le prix a bougé de 4 points, déplacer le stoploss de 4 points
mais j'ai besoin de modifier en
===================
Entrée "Trailing (Distance) en points".
Entrée "Trailing (Step) en points".
=> exemple :
distance de suivi : 4000 (4 points)
pas de traînage : 1500 (1,5 points)
(nouvelle méthode) si le prix a bougé de 4points déplacer le stoploss de 1,5 points
//| Simple Trailing function |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
}
}
Si le prix a bougé par rapport à : quoi ?
avant d'appeler la fonction vous avez
si le prix est en train de "monter", vous vérifiez la "distance" en points. s'il correspond à la "distance" vous déplacez le stoploss en utilisant le pas (en points)
exemple :
stoploss =8000
distance de suivi = 4000
pas de suivi = 2000
vous achetez au prix de 10000
maintenant le prix est de 14000 (distance de suivi cible atteinte=4000), maintenant vous devez déplacer le stoploss à 6000 (8000 - trailing step)
le prix est maintenant de 18000 (distance de suivi atteinte=4000 ), vous devez maintenant déplacer le stoploss à 2000 (6000 - pas de suivi)
le prix est maintenant de 22000 (distance de suivi de l'objectif atteint=4000), vous devez maintenant déplacer le stoploss à "entrée" + 2000 (2000 - étape de suivi =-2000)
maintenant le prix est de 24000 (distance de suivi atteinte=4000), maintenant vous devez déplacer le stoploss à "l'entrée" + 6000 (-2000 - pas de suivi =-6000)
avant d'appeler la fonction vous avez
si le prix est en train de "monter", vous vérifiez la "distance" en points. s'il correspond à la "distance" vous déplacez le stoploss en utilisant le pas (en points)
exemple :
stoploss =8000
trailing distance = 4000
trailing step = 2000
vous achetez au prix de 10000
maintenant le prix est de 14000 (distance de suivi atteinte=4000), vous devez déplacer le stoploss à 6000 (8000 - pas de suivi)
maintenant le prix est de 18000 (distance de suivi atteinte=4000), vous devez déplacer le stoploss à 2000 (6000 - pas de suivi)
maintenant le prix est de 22000 (distance de suivi atteinte=4000), vous devez déplacer le stoploss à "entrée" + 2000 (2000 - pas de suivi =-2000)
le prix est maintenant de 24000 (distance cible atteinte=4000), vous devez maintenant déplacer le stoploss à "entrance" + 6000 (-2000 - trailing step =-6000)
Bonjour,
Je voudrais écrire une fonction qui dessine une flèche. Je voudrais que la flèche flotte. Une idée ? :)
void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ChartRedraw(0);
}
Oui, mais si vous ne l'avez pas enregistré (comme c'est généralement le cas avec les prix stop loss ou take profit : quand ils sont modifiés, ils commencent à être un critère pour un autre changement), vous êtes forcé de l'avoir dans des variables et c'est tout sauf une preuve d'erreur. Ce que vous essayez n'est pas reproductible par le code ou vous devez coder en dur ces stops pour chaque cas, ce qui le rend inutilisable pour tout prix ouvert qui n'est pas exactement le même que les prix codés en dur.
Salut mladen,
voici l'exemple d'application
Bonjour,
Je voudrais écrire une fonction qui dessine une flèche. Je voudrais que la flèche flotte. Une idée ? :)
void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ChartRedraw(0);
}
Que signifie la flèche "flottante" ?
PS : les objets flèches n'utilisent pas les coordonnées x et y ou le coin. Ils utilisent le temps et le prix.
Bonjour Mr. mladen
s'il vous plaît, faites-lui une MTF
à propos de