[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 170
La tua versione può essere ridotta a queste due righe aggiunte alla versione dell'autore, e con alcune modifiche alle condizioni dovrebbe in linea di principio accelerare le cose abbastanza bene.
Essenzialmente il tuo suggerimento è di escludere dai controlli e dai calcoli le candele che non rientrano nella gamma UPPprice/LOWprice... questo è escluso da due linee. Se non esce dal giro, significa che il prezzo è nella gamma di cui abbiamo bisogno e facciamo i controlli standard. Il vostro codice può andare più veloce solo a scapito dei risultati, perché la logica di lavoro con INS è molto contorta usare il valore di questa variabile dall'iterazione precedente non ha senso.
Essenzialmente il tuo suggerimento è di escludere dai controlli e dai calcoli le candele che non rientrano nella gamma UPPprice/LOWprice... questo è escluso da due linee. Se non esce dal giro, significa che il prezzo è nella gamma di cui abbiamo bisogno e facciamo i controlli standard. Il vostro codice può andare più veloce solo a scapito dei risultati, perché la logica di lavoro con INS è molto contorta usare il valore di questa variabile dall'iterazione precedente non ha senso.
Quindi sei sicuro! :))))
Prima ha citato il codice:
splxgf:
if (LOWprice > iHigh(NULL,60,i)) continue;
if (UPPprice < iLow (NULL,60,i)) continue;
Se il prezzo è sotto Low, perché dovremmo controllare se il prezzo è sopra High? Nella vostra versione questa condizione non è esclusa. Ma nel mio suggerimento:
if (UPP)
... // не выполнитсяif (LOW)
if (LOWprice < iLow (NULL,60,i))
continue;
else
..
è escluso.
Non nego che il mio codice possa non essere il più ottimale.
Ma quante volte più veloce pensi che
if (UPP)
funzionerà che.
if (LOWprice > iHigh(NULL,60,i))
?
Infatti:
UPP = LOWprice > iHigh(NULL, 60, i);
Solo io lo so per certo (tranne quando l'offerta è all'interno della barra storica corrente) e tu lo calcoli...
INS = True;
for (int i=1; i<=6000; i++)
{
if (INS)
{
if (LOWprice > iHigh(NULL,60,i))
{
INS = False;
UPP = True;
LOW = False;
continue;
Considerate questa sezione del codice
INS=True;
Il ciclo è andato
se (INS) il volo è ok
if (LOWprice...) per esempio, la condizione è vera, ma poi va male perché otteniamo INS=False e andiamo alla prossima iterazione
poi se (falso) e abbiamo finito, perché è un'altra barra, quindi che diavolo...
Per quanto riguarda il mio codice, non sto controllando il prezzo ma se la barra è entro +300/300 pip dal prezzo corrente e se lo è, dovrebbe essere considerata. Tutte le altre ottimizzazioni non sono così critiche perché i primi due controlli per esempio eliminano il 90% delle barre inutili.
Perché pensate che le variabili booleane accelerino se ogni condizione è seguita da un altro if (LOWprice > iHigh(NULL,60,i)), cioè le stesse uova ma dal lato più una condizione e un sacco di assegnazioni...
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.
Sei sicuro?
Essenzialmente il tuo suggerimento è di escludere dai controlli e dai calcoli le candele che non rientrano nella gamma UPPprice/LOWprice... questo è escluso da due linee. Se non esce dal giro, significa che il prezzo è nella gamma di cui abbiamo bisogno e facciamo i controlli standard. Il vostro codice può andare più veloce solo a scapito dei risultati, perché la logica di lavoro con INS è molto contorta usare il valore di questa variabile dall'iterazione precedente non ha senso.
Essenzialmente il tuo suggerimento è di escludere dai controlli e dai calcoli le candele che non rientrano nella gamma UPPprice/LOWprice... questo è escluso da due linee. Se non esce dal giro, significa che il prezzo è nella gamma di cui abbiamo bisogno e facciamo i controlli standard. Il vostro codice può andare più veloce solo a scapito dei risultati, perché la logica di lavoro con INS è molto contorta usare il valore di questa variabile dall'iterazione precedente non ha senso.
Quindi sei sicuro! :))))
Prima ha citato il codice:
Se il prezzo è sotto Low, perché dovremmo controllare se il prezzo è sopra High? Nella vostra versione questa condizione non è esclusa. Ma nel mio suggerimento:
è escluso.
Non nego che il mio codice possa non essere il più ottimale.
Ma quante volte più veloce pensi che
if (UPP)funzionerà che.
?
Infatti:
Solo io lo so per certo (tranne quando l'offerta è all'interno della barra storica corrente) e tu lo calcoli...
Sì...
Devi diventare così contorto da trasformare tre chiare linee di codice in un codice difficile da capire.
Se avevi l'idea di dividere l'assegno iLow, iHigh, avresti potuto dividerlo subito:
E non fare battuteConsiderate questa sezione del codice
INS=True;
Il ciclo è andato
se (INS) il volo è ok
if (LOWprice...) per esempio, la condizione è vera, ma poi va male perché otteniamo INS=False e andiamo alla prossima iterazione
poi se (falso) e abbiamo finito, perché è un'altra barra, quindi che diavolo...
Per quanto riguarda il mio codice, non sto controllando il prezzo ma se la barra è entro +300/300 pip dal prezzo corrente e se lo è, dovrebbe essere considerata. Tutte le altre ottimizzazioni non sono così critiche perché i primi due controlli per esempio eliminano il 90% delle barre inutili.
poi se (falso) e siamo fregati, perché è un bar diverso, bisogna chiedere cosa...
e poi ha nuotato davvero...
Perché pensate che le variabili booleane accelerino se ogni condizione è seguita da un altro if (LOWprice > iHigh(NULL,60,i)), cioè le stesse uova ma dal lato più una condizione e un sacco di assegnazioni...
Whoa!
È qui che le discussioni si scaldano.
Per ora la metto così:
È molto interessante osservare il movimento dei prezzi. Va sempre nella direzione della minore resistenza.
Si può anche prevedere il suo movimento futuro. Osservare.
Il prezzo è come l'acqua che scorre in un ruscello.
Grazie a tutti!
Per favore, ditemi come trovare il numero della barra con il valore più alto dell'alto.
Search_High=MathMax( High[i],High[1])
Puoi dirmi come trovare il numero della barra con il valore chai più alto?
Search_High=MathMax( High[i],High[1])
Puoi andare su https://docs.mql4.com/ru/array/ArrayMaximum
attraverso l'array High.