![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Comunque, grazie, dovrò leggere di più su questo, mi sto avvicinando ma è ancora un po' nebbioso :)
Sembra che mi ci voglia troppo tempo per imparare le cose. Penso di dover leggere di più i codici degli altri e cercare di capirli per avere migliori idee di design.
Grazie per la risposta.
Ci sono 2 buffer (array) che contengono i valori dei prezzi dei frattali. . . val1 & val2. Se vuoi trovare i valori precedenti dei frattali devi semplicemente fare un loop, incrementando un valore di shift, e controllare i valori del buffer finché non trovi quelli che non sono EMPTY_VALUE ( https://docs.mql4.com/customind/SetIndexEmptyValue )
Quindi posso eseguire il loop v1[i] e v2[i] con qualcosa di codice 1++,
Non capisco val1>0 non è sempre maggiore di 0 tranne che per High[0] ?
E perché val1 segna solo il frattale alto e non tutti gli High[i] 'AHHH Penso di capire perché l'istruzione if gli dice di fare solo gli High[i]
Quindi ok, fammi pensare ancora un po'.
val1 è il frattale, tuttavia v1[i] sono solo i frattali alti ok penso di aver capito questa parte.
Quindi potrei fare un loop v1[i] 1++ in qualche modo (devo risolvere questa parte) fino al punto precedente a EMPTY_VALUE e questo sarebbe il frattale precedente High[i].
Mi sto avvicinando?
Ok, sto solo pensando ad alta voce qui:
val1 è il frattale, tuttavia v1[i] sono solo i frattali alti ok, penso di aver capito questa parte.
Quindi potrei fare un loop v1[i] 1++ in qualche modo (devo risolvere questa parte) fino al punto precedente a EMPTY_VALUE e questo sarebbe il frattale precedente High[i].
Mi sto avvicinando?
Corretto. . . :-)
Grazie
Comunque sia:
Ho pensato che il ciclo for mi avrebbe portato indietro solo un segnale e stampato il livello del segnale per me. ma non ottengo nulla o 0
Dopo alcuni giorni a pensarci e a provare molte cose, ho provato a fare queste modifiche alla versione dell'indicatore aggiungendo anche un terzo buffer e cercando di segnalare con il prezzo sui grafici, ma anche questo è stato un nulla di fatto.
Beh, aspetta che riprendo questo la versione breve EA non ho il buffer EMPTY_VALUE così che probabilmente non sta andando a lavorare in ogni caso, e così l'idea era quella di testare l'EA in modo da poter vedere le funzioni di stampa per vedere i risultati, ma la versione indicatore avrei dovuto aspettare per così devo postare indietro su questo come si è scoperto.
Bene, ho abbandonato il tentativo di creare il 3° buffer / segnale per ora e voglio solo vedere se posso stampare il risultato del segnale precedenteComunque qui c'è la versione dell'indicatore, ma non mi sento sicuro di questo perché non sono esattamente sicuro se devo tentare di fare un loop all'interno della dichiarazione while o creare un nuovo ciclo e ricreare val1 = .... di nuovo anche.
EMPTY_VALUE il modo in cui ho messo il codice inizializza l'indicatore, ma questo è tutto niente stampa
Puoi spiegare come funziona questo ciclo for?
for(val1=Alto[i]; v1[i] == 0 ;i++)
Puoi spiegare come funziona questo ciclo for?
for(val1=Alto[i]; v1[i] == 0 ;i++)
Ho pensato che questo avrebbe incrementato i++ di 1 livello fino al massimo precedente, beh, in realtà credo che sarebbe andato oltre fino al prossimo EMPTY_VALUE
Quindi ho bisogno di farlo nel modo opposto v1[i] = High[i]; i++
Allora questo non dovrebbe portarmi all'alto precedente, ma non sono sicuro di come inizializzarlo correttamente.
Continuerò a lavorarci.
Tutto ciò che ottengo sono gli 0, quindi in realtà non ci sono valori quando = Print (v1[i]);
Il che è strano perché come faccio a far funzionare l'indicatore a questo punto?
Oh beh, continuerò a farlo.
Lo sto cambiando in un if( Voglio solo vedere qualsiasi cosa stampata a questo punto in modo da poter almeno vedere cosa sta facendo l'indicatore.
Tutto ciò che ottengo è 0's quindi non c'è effettivamente NESSUN valore quando = Print (v1[i]);
Il che è strano perché come faccio a far funzionare l'indicatore a questo punto?
Oh beh, continuerò a farlo.
Forse stai solo vedendo i valori per v1[0] ? stampa i allo stesso tempo . .
Non ho postato tutto ma tutte le linee leggono lo stesso = 0
Ho pensato che dovrei comunque vedere un valore effettivo per v1[0] ?
come può essere sempre 0 quando l'indicatore deve essere if(>0) ?
Forse mi sto addentrando in un'altra area di cui sono ignorante.
Ho pensato che potrei essere in grado di stampare così potrei cercare di capire cosa e perché tutti i miei tentativi stanno fallendo; e così potrei incrementare i++ in qualche modo per arrivare al prossimo frattale e poi in qualche modo capire come usare queste informazioni per qualcosa.
Posso stampare High[i] o v1[i] ed è sempre 0
Stampando High[0] o High[1] anche 0
Anche se capisco quello che hai postato e la stampa del valore di i che sembra essere bloccato a causa del ciclo i-- che lo porta sempre a 0, ma anche così dovrebbe comunque stampare un valore per i, come almeno pensavo.
E capisco perché sta stampando [-1] perché i=Bars. Ho capito questo, ma =0 ?