ArrayMinimum renvoie l'INDEX de l'élément dont la valeur est la plus faible. Maintenant nous devons récupérer la valeur elle-même du tableauLow par l'indexlow:
Faible [faible]
Rien...
//+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ doubleiLow(string symbol,ENUM_TIMEFRAMES timeframe,int do) { int low=0; double l=0; ArraySetAsSeries(Low,true); int copied=CopyLow(symbol,timeframe,0,do,Low); if(copied>0 && index<copied){ low=ArrayMinimum(Low);//ArrayMinimum( l = Low[low]; } return(l); }
Top2n: Low - Le tableau contient les prix bas de 0 à do.
Où le voyez-vous ? Mettez un tableau dans votre fonction. Initialiser la variablel avec "-1". En général, veuillez utiliser le Stylizer - votre code est difficile à lire. De plus, vous retournez quand même quelque chose, même s'il y a eu une erreur. Ce n'est pas bon.
Ajouté : et pourquoi tu compares comme ça :
if(copied>0 && index<copied)
Vous n'obtiendrez jamais de résultat de cette manière.
//+------------------------------------------------------------------+ //| Получим Lowest для заданного промежутка | //+------------------------------------------------------------------+ doubleiLowest( string symbol, // символ int timeframe, // период int count, // число элементов int start // индекс ) { doubleLow[]; double result=-1; ArraySetAsSeries(Low,true); int copied=CopyLow(symbol,timeframe,start,count,Low); if(copied==start) { result=Low[ArrayMinimum(Low)]; } return(result); }
mais c'est l'analogue complet de la fonction des quatre
//+------------------------------------------------------------------+ //| Получим Lowest для заданного промежутка | //+------------------------------------------------------------------+ doubleiLowest( string symbol, // символ int timeframe, // период int type, // идентификатор таймсерии int count, // число элементов int start // индекс ) { doubleLow[]; int copied=0.0; double result=-1; ArraySetAsSeries(Low,true); if(type==PRICE_CLOSE)copied=CopyClose(symbol,timeframe,start,count,Low); if(type==PRICE_OPEN)copied=CopyOpen(symbol,timeframe,start,count,Low); if(type==PRICE_HIGH)copied=CopyHigh(symbol,timeframe,start,count,Low); if(type==PRICE_LOW)copied=CopyLow(symbol,timeframe,start,count,Low); if(copied==start) { result=Low[ArrayMinimum(Low)]; } return(result); } //+------------------------------------------------------------------+
Où le voyez-vous ? Mettez un tableau dans votre fonction. Initialiser la variablel avec "-1". En général, veuillez utiliser le Stylizer - votre code est difficile à lire. De plus, vous retournez quand même quelque chose, même s'il y a eu une erreur. Ce n'est pas bon.
Kirill Andreev: Je n'arrive pas à comprendre comment ajouter une classe de trailing stop standard à un EA, montrez-moi un exemple si vous le voulez bien.
Exemple : \MQL5\Experts\Examples\MACD\MACD Exemple.mq5
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
ArrayMinimum renvoie l'INDEX de l'élément dont la valeur est la plus faible. Maintenant nous devons récupérer la valeur elle-même du tableauLow par l'indexlow:
Faible [faible]
Rien...
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int do)
{
int low=0; double l=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,do,Low);
if(copied>0 && index<copied){ low=ArrayMinimum(Low);//ArrayMinimum(
l = Low[low];
}
return(l);
}
Rien...
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
int low=0; double l=0;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,index,Low);
if(copied>0 && index<copied){ low=ArrayMinimum(Low);//ArrayMinimum(
l = Low[low];
}
return(l);
}
Qu'est-ce qui estfaible dans votre code?
Low - Le tableau contient les prix bas de 0 à do.
Où le voyez-vous ? Mettez un tableau dans votre fonction. Initialiser la variablel avec "-1". En général, veuillez utiliser le Stylizer - votre code est difficile à lire. De plus, vous retournez quand même quelque chose, même s'il y a eu une erreur. Ce n'est pas bon.
Ajouté : et pourquoi tu compares comme ça :
Vous n'obtiendrez jamais de résultat de cette manière.
//| Получим Lowest для заданного промежутка |
//+------------------------------------------------------------------+
double iLowest(string symbol,ENUM_TIMEFRAMES timeframe,int bands)
{
double Low[];
double result=-1;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,0,bands,Low);
if(copied==bands)
{
result=Low[ArrayMinimum(Low)];
}
return(result);
}
Vladimir Je pense que c'est plus universel
//| Получим Lowest для заданного промежутка |
//+------------------------------------------------------------------+
double iLowest(
string symbol, // символ
int timeframe, // период
int count, // число элементов
int start // индекс
)
{
double Low[];
double result=-1;
ArraySetAsSeries(Low,true);
int copied=CopyLow(symbol,timeframe,start,count,Low);
if(copied==start)
{
result=Low[ArrayMinimum(Low)];
}
return(result);
}
//| Получим Lowest для заданного промежутка |
//+------------------------------------------------------------------+
double iLowest(
string symbol, // символ
int timeframe, // период
int type, // идентификатор таймсерии
int count, // число элементов
int start // индекс
)
{
double Low[];
int copied=0.0;
double result=-1;
ArraySetAsSeries(Low,true);
if(type==PRICE_CLOSE)copied=CopyClose(symbol,timeframe,start,count,Low);
if(type==PRICE_OPEN)copied=CopyOpen(symbol,timeframe,start,count,Low);
if(type==PRICE_HIGH)copied=CopyHigh(symbol,timeframe,start,count,Low);
if(type==PRICE_LOW)copied=CopyLow(symbol,timeframe,start,count,Low);
if(copied==start)
{
result=Low[ArrayMinimum(Low)];
}
return(result);
}
//+------------------------------------------------------------------+
Où le voyez-vous ? Mettez un tableau dans votre fonction. Initialiser la variablel avec "-1". En général, veuillez utiliser le Stylizer - votre code est difficile à lire. De plus, vous retournez quand même quelque chose, même s'il y a eu une erreur. Ce n'est pas bon.
Merci ! !!
Je n'arrive pas à comprendre comment ajouter une classe de trailing stop standard à un EA, montrez-moi un exemple si vous le voulez bien.
Exemple : \MQL5\Experts\Examples\MACD\MACD Exemple.mq5