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
WHRoeder, Questo codice sembra così semplice ma non riesco a capire nella mia testa come funziona, l'istruzione if non sarà sempre vera se rende time0 uguale a time[0] ogni volta che time0 è uguale a time[0]? Non dico che non funzioni, ma non capisco come funziona strutturato in questo modo.
1° tick: Time0 non è uguale a Time[0 ] quindi il ritorno non viene eseguito,Time0 è impostato su Time[0 ] (tempo di inizio della barra corrente) il resto della funzione diinizio viene eseguito.
2° tick e successivi: se Time0 è ancora uguale al tempo di inizio della barra corrente allora siamo ancora sulla stessa barra, viene eseguito il ritorno e si esce dalla funzione di avvio. Se Time0 non è uguale al tempo di inizio della barra corrente allora siamo su una nuova barra, il ritorno non viene eseguito, Time0 è impostato su Time[0] (tempo di inizio della nuova barra corrente) il resto della funzione di avvio viene eseguito.
Come posso fare per creare un contatore dove se un ordine in sospeso viene piazzato e non viene attivato entro un certo numero di barre, allora deve essere cancellato? Tutto quello che posso fare è mettere un contatore per contare ogni volta che si forma una nuova barra e se la quantità di barre contate == le barre consentite specificate prima che gli ordini in sospeso vengano cancellati. Il contatore di barre viene azzerato ogni volta che viene aperto un nuovo ordine pendente? Come vi sembra?
Creerei una funzione che controlla gli ordini in sospeso, cerca di vedere quando ogni ordine è stato aperto, controlla quanto tempo è passato e se più lungo del limite di tempo chiude l'ordine.
Voglio fare una funzione che analizza eurusd, usdchf, gbpusd, usdjpy su 1hr tf. Va indietro all'ultima candela delle 06:00 gmt e registra l'apertura, va indietro di altre 24 barre alla candela precedente delle 06:00 gmt e registra il range 6gmt - 6gmt per ogni coppia. Poi confronta il range 6gmt - 6gmt di tutte le coppie e restituisce quello che è il più alto. E' possibile per un ea fare questo dall'essere collegato ad un grafico a tempo?
Con tutti i problemi come questo, prima di pensare al codice devi prima capire la tua soluzione...IMO. Crea un diagramma di flusso o scrivi qualche pseudo codice . . ottenere una soluzione che abbia senso prima . . poi guardare il codice.
Per rispondere alla tua ultima domanda, sì, è possibile farlo, ad esempio, per ottenere il valore di apertura di una particolare candela da una coppia diversa da quella su cui l'EA è in uso.
una volta che hai i tuoi valori per la rabbia delle 4 coppie puoi facilmente determinare il più grande usando qualcosa come questo:
. . . o potresti mettere i valori in un array e usare ArraySort . . . di solito c'è più di un modo per fare qualsiasi cosa, prima devi avere un piano di come hai intenzione di risolvere il tuo problema.
EDIT: tieni presente che alcune di queste cose non funzioneranno correttamente con lo Strategy tester.
Bene, questo è il mio tentativo di scrivere del codice che scannerizzi il grafico eurusd 1hr fino a trovare l'ultima barra delle 06:00, ne registri l'apertura, torni indietro di altre 24 barre per registrare l'apertura di quella barra (inizio del giorno 06:00) e ottenga l'intervallo apertura-apertura da queste due barre selezionate.
Sorpresa, sorpresa, non funziona. Lol ------> http://myfacewhen.com/307/
Dimmi il che cosa ho f*'d up. O ho solo preso la cosa nel modo sbagliato? Ho provato hehe
Individuato un problema . . . 24 ore prima di b è b+24 . . le barre contano dalla barra corrente ( 0 ) a sinistra
Ben fatto per l'aggiunta dei commenti, molto buona pratica per ottenere in . . . :-)
Individuato un problema . . . 24 ore prima di b è b+24 . . le barre contano dalla barra corrente ( 0 ) a sinistra
Ben fatto per l'aggiunta dei commenti, molto buona pratica per ottenere in . . . :-)
Wow, ben individuato, mi ci sarebbe voluto un po' per capirlo lol. Non posso credere di aver capito tutto - quello stupido errore. Sento che sto arrivando da qualche parte ora. Sì, ho aggiunto i commenti per aiutarmi a tenere traccia di ciò che sto facendo e per rendere super facile per voi ragazzi vedere cosa sto cercando di fare. Ora ho intenzione di ottenere per confrontare le 4 coppie e sputare fuori quello con il più alto valore Ill farvi sapere come vado con esso. Grazie RaptorUK
Va bene, ho trasformato tutte le variabili in array ed eseguito i controlli per ciascuna di esse. Ora ha smesso di funzionare. Non è possibile avere più cicli for come questo?
Sì, puoi, nessun problema, ma non usare un array nell'indice del ciclo for, puoi usare b ogni volta se vuoi. Viene resettato a 0 per ogni ciclo for, quindi riutilizzarlo non è un problema. Per cosa hai effettivamente bisogno di usare un array? Non è solo per i valori dell'intervallo?