[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 720
artmedia70: Vedo che stai già prendendo una decisione da solo
Sto arrivando alla decisione... Ma è come un cane: capisco quello che capisco, ma non posso dirlo, cioè non posso rappresentarlo nel codice). Forse è il caldo che mi fa sciogliere il cervello).
Shuba: Mi sto avvicinando alla soluzione... È come un cane: capisco quello che capisco, ma non posso dirlo, cioè non posso rappresentarlo nel codice). Forse è il caldo che mi fa sciogliere il cervello).
Ora ho aggiunto alle linee: if(ZZCur == High[i] && UpCount < 2) e if(ZZCur == Low[i] && DnCount < 2) controllando il prossimo frattale superiore o inferiore al primo trovato.
Cerco i frattali usando l'indicatore ZIGZAG-FRACTALS con questa funzione:
Prova a cercare con questa funzione:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.08.2008 |//| Описание : Возвращает номер бара фрактала по его номеру. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| nf - номер фрактала ( 0 - последний) |//+----------------------------------------------------------------------------+int GetFractalBar(string sy="0", int tf=0, int nf=0) {
if (sy=="" || sy=="0") sy=Symbol();
double f=0;
int i, k=iBars(sy, tf), kf;
for (i=2; i<k; i++) {
f=iFractals(sy, tf, MODE_LOWER, i);
if (f!=0) {
kf++;
if (kf>nf) return(i);
}
f=iFractals(sy, tf, MODE_UPPER, i);
if (f!=0) {
kf++;
if (kf>nf) return(i);
}
}
Print("GetFractalBar(): Фрактал не найден");
return(-1);
}
Questa funzione restituisce il numero di barra del frattale. Prima la chiamate con il parametro nf = 0 - l'ultimo frattale sarà trovato, e poi chiamate questa funzione nel ciclo, dove nf = contatore di cicli da 1 a ... per tutto il tempo necessario. Nel corpo del ciclo, controlla se il prossimo frattale trovato corrisponde ai criteri di cui hai bisogno e se lo fa, esci dal ciclo. Dopo l'analisi avrete i numeri delle barre di due frattali di cui avete bisogno e fate con loro quello che volete.
La funzione restituisce il numero di barra del frattale. Prima la chiamate con il parametro nf = 0 - l'ultimo frattale sarà trovato, e poi chiamate questa funzione nel ciclo, dove nf = contatore di cicli da 1 a ... per tutto il tempo necessario. Nel corpo del ciclo, controlla se il prossimo frattale trovato corrisponde ai criteri di cui hai bisogno e se lo fa, esci dal ciclo. Dopo l'analisi avrete i numeri delle barre di due frattali di cui avete bisogno e fate con loro quello che volete.
Era nel tester,... Non ho avuto la possibilità di usarlo, ma ho un sacco di problemi con esso. Così, come risultato, ho fatto un sacco di problemi con il mio codice di trawl e ho preso la funzione di monitoraggio delle coppie di trawl di KimIV. Ora tutto funziona su demo ))
Grazie a tutti per il vostro aiuto, le vostre spiegazioni sono molto utili.
Non puoi, quando inizializzi una variabile, alloca solo un'area di RAM, quindi perché riassegnarla? Basta azzerare la variabile e usarla tutte le volte che si vuole. In effetti, qual è il problema? Perché deinizializzare una variabile? Non ha senso.
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.
Vedo che stai già prendendo una decisione da solo
Forse è il caldo che mi fa sciogliere il cervello).
Mi sto avvicinando alla soluzione... È come un cane: capisco quello che capisco, ma non posso dirlo, cioè non posso rappresentarlo nel codice).
Forse è il caldo che mi fa sciogliere il cervello).
Come si cercano i frattali?
Cerco i frattali usando l'indicatore ZIGZAG-FRACTALS con questa funzione:
Ora ho aggiunto alle linee: if(ZZCur == High[i] && UpCount < 2) e if(ZZCur == Low[i] && DnCount < 2) controllando il prossimo frattale superiore o inferiore al primo trovato.
Abbiamo le seguenti linee
if(ZZCur == High[i] && ZZCur > ZZFirst && UpCount < 2) e
if(ZZCur == Low[i] && ZZCur < ZZFirst && DnCount < 2)
Ma alla fine la ricerca è in qualche modo inadeguata :(
Nell'immagine una spessa linea bianca mostra come dovrebbe essere e una sottile linea verde mostra come è fatto...
Cerco i frattali usando l'indicatore ZIGZAG-FRACTALS con questa funzione:
Prova a cercare con questa funzione:
Questa funzione restituisce il numero di barra del frattale. Prima la chiamate con il parametro nf = 0 - l'ultimo frattale sarà trovato, e poi chiamate questa funzione nel ciclo, dove nf = contatore di cicli da 1 a ... per tutto il tempo necessario. Nel corpo del ciclo, controlla se il prossimo frattale trovato corrisponde ai criteri di cui hai bisogno e se lo fa, esci dal ciclo. Dopo l'analisi avrete i numeri delle barre di due frattali di cui avete bisogno e fate con loro quello che volete.
Prova a cercare con questa funzione:
La funzione restituisce il numero di barra del frattale. Prima la chiamate con il parametro nf = 0 - l'ultimo frattale sarà trovato, e poi chiamate questa funzione nel ciclo, dove nf = contatore di cicli da 1 a ... per tutto il tempo necessario. Nel corpo del ciclo, controlla se il prossimo frattale trovato corrisponde ai criteri di cui hai bisogno e se lo fa, esci dal ciclo. Dopo l'analisi avrete i numeri delle barre di due frattali di cui avete bisogno e fate con loro quello che volete.
Nel tester o nella demo?
Nel tester il punto sugli altri strumenti sarà 0
Era nel tester,... Non ho avuto la possibilità di usarlo, ma ho un sacco di problemi con esso. Così, come risultato, ho fatto un sacco di problemi con il mio codice di trawl e ho preso la funzione di monitoraggio delle coppie di trawl di KimIV. Ora tutto funziona su demo ))
Grazie a tutti per il vostro aiuto, le vostre spiegazioni sono molto utili.
Sembra aver risolto il problema, ma la domanda rimane...
Come faccio a deinizializzare una variabile per riutilizzarla?
Non puoi, quando inizializzi una variabile, alloca solo un'area di RAM, quindi perché riassegnarla? Basta azzerare la variabile e usarla tutte le volte che si vuole. In effetti, qual è il problema? Perché deinizializzare una variabile? Non ha senso.
Perché deinizializzare una variabile?
Condizione se
qui facciamo qualcosa
altrimenti se un'altra condizione
fare qualcos'altro.
Il punto non è moltiplicare le variabili, molte condizioni e contatori.