long currChart=ChartFirst();
int i=0;
while(currChart>=0)
{
Print(i,ChartSymbol(currChart)," ID =",currChart);
currChart=ChartNext(currChart); // на основании предыдущего получим новый график
i++;// не забудем увеличить счетчик
}
Aiutatemi a evitare array fuori portata in questo codice
double GetExtremumZigZagPriceHigh(string symbol="",ENUM_TIMEFRAMES timeframe=0,int extremum_number=0)//,int depth=12,int deviation=5,int backstep=3)
{
if(symbol=="") //Если symbol = "" , то..
symbol=Symbol(); //Присвоить переменной symbol значение текущего символа на графике.//Объявить необходимые переменные:double price[]; //Цена экстремума выбранная из массива таймсерии.//datetime time[];int count; //Счетчик цикла.int bars_quantity=1000; //Количество баров на графике.int extremum_count=0; //Счетчик экстремумов.ArraySetAsSeries(price,true); //Устанавить флаг, чтобы индексация массива производилась как в таймсериях.CopyBuffer(handle,1,0,bars_quantity,price); //Скопировать в динамический массив price[] цены указанного количества баров.for(count=1; count<bars_quantity; count++) //Запустить цикл, который будет бежать по каждому бару.
{
if(price[count]!=0) //Если Цена Зигзага есть, то есть не равна нулю, то..
{
extremum_count++; //Увеличить счетчик экстремумов на одну единицу.if(extremum_count>extremum_number) //Если счетчик экстремумов превысил значение указанного номера экстремума, то..return(price[count]); //Вернуть эту цену.
}
}
//Print("GetExtremumZigZagPrice(): Экстремум ЗигЗага ",extremum_number," не найден"); //А до тех пор, пока ЗигЗаг не показывает цену,return(0); //Печатать Print, и возвращать ноль.
}
Numero di elementi della matrice copiati o -1 in caso di errore .
Nota
Quando si richiedono i dati da un indicatore, se le serie temporali richieste non sono ancora state costruite o devono essere scaricate dal server, la funzione restituirà immediatamente -1, ma il processo di caricamento/costruzione stesso verrà avviato.
Quando si richiedono dati dall'Expert Advisor o da uno script, viene avviato il caricamento dal server se il terminale non ha questi dati localmente, o inizia la costruzione delle serie temporali richieste se i dati possono essere costruiti dallo storico locale, ma non sono ancora pronti. La funzione restituisce la quantità di dati che sarà pronta quando il timeout scade.
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.
Leggete attentamente la documentazione e il codice di esempio. Il vostro ciclo non è organizzato correttamente.
Non ditemi che i cicli for e while funzionano allo stesso modo. Non è questo il problema, sono le linee evidenziate.Grazie, l'ho letto (è da lì che ho iniziato)
Tutto funziona nel mio codice, solo un inconveniente in MT4, grafici 8 ma vede 7(
Improbabile. Quante volte ho dato la colpa alla piattaforma, si scopre sempre che ho sbagliato io.
Perché non provi questo?
Perché non provi questo?
La stessa cosa.
Perché la stampa è diversa? Codice diverso?
Quanti grafici sono aperti, quali? Simbolo, punto.
Dispiegato/dispiegato?Grazie, è quello che ho letto (è da lì che ho iniziato).
Tutto funziona nel mio codice, solo un inconveniente in MT4, grafici 8 ma vede 7(
Una pessima lettura. Probabilmente come la lettura forzata a scuola. L'ho letto, ma niente è rimasto impresso nel mio cervello.
Ecco un esempio. Lo scopo è diverso lì, ma ancora l'enumerazione dei grafici aperti non cambia a seconda dello scopo dell'enumerazione.
Oppure ecco il codice
Perché la stampa è diversa? Codice diverso?
Quanti grafici sono aperti, quali? Simbolo, punto.
Dispiegato/dispiegato?Una pessima lettura. Deve essere stato come una lettura forzata a scuola. Cioè, l'ho letto, ma niente mi è rimasto in testa.
Ecco un esempio. Lì l'obiettivo è diverso, ma ancora l'enumerazione dei grafici aperti non cambia a seconda dello scopo di questa enumerazione.
Oppure ecco il codice
Il problema viene rimosso, il problema si risolve riavviando il terminale
Aiutatemi a evitare array fuori portata in questo codice
È questa posizione che viene buttata via.
CopyBufferВозвращаемое значение
Numero di elementi della matrice copiati o -1 in caso di errore .
Nota
Quando si richiedono i dati da un indicatore, se le serie temporali richieste non sono ancora state costruite o devono essere scaricate dal server, la funzione restituirà immediatamente -1, ma il processo di caricamento/costruzione stesso verrà avviato.
Quando si richiedono dati dall'Expert Advisor o da uno script, viene avviato il caricamento dal server se il terminale non ha questi dati localmente, o inizia la costruzione delle serie temporali richieste se i dati possono essere costruiti dallo storico locale, ma non sono ancora pronti. La funzione restituisce la quantità di dati che sarà pronta quando il timeout scade.
Controlla se hai bar_quantity lì