salve,
vorrei sapere come poter dare un segnale di acquisto dopo che il prezzo attuale (prima della chiusura della candela) supera il max della candela precedente (es con timeframe a 15 minuti) – magari con qualche pip di margine.
Riesco a dare il segnale, ma solo dopo la chiusura della barra successiva alla prima (if close > max[1]) quindi l’acquisto viene eseguito in apertura della terza barra.
grazie mille per l’aiuto,
L.
Devi usare il supporto Multi Time Frame ed usare un TF più basso.
Ad esempio questo verifica il superamento sul TF a 15 minuti, però lo verifica anche prima derlla chiusura se lo usi su un grafico a 5 minuti, o 1 minuto o 1 secondo:
Timeframe(15mn,default)
c1 = close > max[1]
//
Timeframe(default)
IF c1 THEN
. BUY/SELLSHORT......
ENDIF
Grazie per il fbk, ok a usare il MTF.
Il mio obiettivo è quello di memorizzare il massimo valore della barra che si presenta su TF 15minuti dopo il verificarsi di un preciso evento (es mio indicatore, indicato in verde nell’immagine, con la chiamata CALL “mio segnale long”).
Dopo la chiusura della barra a 15minuti, su TF più bassi (es 1 min o meno), attivare quindi l’acquisto dopo il superamento del massimo precedentemente memorizzato (linea rossa)..
Usando però il codice consigliato vedo che il problema è sempre il solito (vedi immagine): il massimo della barra da considerare sarebbe quello della prima barra blu (quella che si forma al formarsi del segnale verde in basso)
mentre l’ordine di acquisto parte in ritardo (terza o quarta barra)
Non so esattamente dove sia l’errore.
grazie ancora,
L
Prova a sostituire la riga 1 con questa:
Timeframe(15mn,Updateonclose)
salve,
mi scuso ma ho non riesco davvero a risolvere il problema segnalato.
Come da immagine allegata, vorrei che il sistema acquistasse dopo il massimo prezzo raggiunto sulla barra dove si presenta il segnale (barra verde in basso) e non sul massimo della barra successiva, come sempre avviene usando il codice sotto riportato. Ho letto anche altri esempi ma non riesco davvero a capire il problema,
Grazie ancora,
Leonardo
[attachment file="210507"]
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
timeframe(4h,Updateonclose)
// Condizioni per entrare su posizioni long
indicator1 = CALL "SEGNALE long SEMPLIFICATO"
if indicator1[close[0]] >10 then
compra= high
endif
timeframe(5mn,updateonclose)
IF (CLOSE> compra) then
BUY 10 contract at compra+5*pipsize stop
endif
// Stop e target
SET STOP pLOSS 10
SET TARGET pPROFIT 5
graph compra
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
timeframe(4h,Updateonclose)
// Condizioni per entrare su posizioni long
indicator1 = CALL “SEGNALE long SEMPLIFICATO”
if indicator1[close[0]] >10 then
compra= high
endif
timeframe(5mn,updateonclose)
IF (CLOSE> compra) then
BUY 10 contract at compra+5*pipsize stop
endif
// Stop e target
SET STOP pLOSS 10
SET TARGET pPROFIT 5
graph compra
Occorrerebbe la foto del timeframe a 5 minuti, in cui si veda tutto il grafico, compresi gli orari di entrata, con le frecce d’entrata.
Il codice è corretto, comunque.
L’unico problema può essere l’entrata in STOP, perché assume che il prezzo d’entrata sia maggiore a quello attuale (CLOSE), altrimenti entra a mercato. Oppure verifichi se fosse inferiore e metti un ordine pendente LIMIT.
grazie Roberto, dovrei aver risolto.
Ancora grazie,
L.