ArrayMinimum restituisce l'INDEX dell'elemento il cui valore è il più basso. Ora abbiamo bisogno di ottenere il valore stesso dall'arrayLow per l'indicelow:
Basso[basso]
Niente...
//+------------------------------------------------------------------+ //| Получим 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: Basso - La matrice contiene i prezzi bassi da 0 a fare
Dove lo vedi? Mettete un array all'interno della vostra funzione. Inizializza la variabilel con "-1". In generale, per favore usa lo Stylizer - il tuo codice è difficile da leggere. Inoltre si restituisce qualcosa comunque, anche se c'è stato un errore. Questo non va bene.
//+------------------------------------------------------------------+ //| Получим 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); }
ma è l'analogo completo della funzione dei quattro
//+------------------------------------------------------------------+ //| Получим 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); } //+------------------------------------------------------------------+
Dove lo vedi? Mettete un array all'interno della vostra funzione. Inizializza la variabilel con "-1". In generale, per favore usa lo Stylizer - il tuo codice è difficile da leggere. Inoltre si restituisce qualcosa comunque, anche se c'è stato un errore. Questo non va bene.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
ArrayMinimum restituisce l'INDEX dell'elemento il cui valore è il più basso. Ora abbiamo bisogno di ottenere il valore stesso dall'arrayLow per l'indicelow:
Basso[basso]
Niente...
//| Получим 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);
}
Niente...
//| Получим 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);
}
Cos'èLow nel vostro codice?
Basso - La matrice contiene i prezzi bassi da 0 a fare
Dove lo vedi? Mettete un array all'interno della vostra funzione. Inizializza la variabilel con "-1". In generale, per favore usa lo Stylizer - il tuo codice è difficile da leggere. Inoltre si restituisce qualcosa comunque, anche se c'è stato un errore. Questo non va bene.
Aggiunto: e perché si paragona così:
Non otterrete mai un risultato in questo modo.
//| Получим 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 penso che sia più universale
//| Получим 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);
}
//+------------------------------------------------------------------+
Dove lo vedi? Mettete un array all'interno della vostra funzione. Inizializza la variabilel con "-1". In generale, per favore usa lo Stylizer - il tuo codice è difficile da leggere. Inoltre si restituisce qualcosa comunque, anche se c'è stato un errore. Questo non va bene.
Grazie!!!
Non riesco a capire come aggiungere una classe di trailing stop standard a un EA, mostrami un esempio se non ti dispiace.
Esempio: \MQL5\esperti\esperienze\MACD\MACD Sample.mq5