Entrare a mercato automaticamente sulle NEWS
Entrare a mercato automaticamente sulle NEWS
Vorrei sapere come creare un expert advisor che attivi il proprio codice in ore da me prefissate.
Poi vorrei sapere come fare per indicare una determinata candela , in questo caso quella della notizia in maniera fissa, ovvero non dire CLose[1] quindi la candela appena chiusa che varia col variare del tempo ma ad esempio Close[CandelaNotizia] e la stessa cosa non solo indicando un determinato tempo di una determinata candela ma anche indicando un determinato tempo di un indicatore, ad esempio iMomentum[CandelaNotizia] o comunque in un determinato tempo.
Poi vorrei sapere come fare per indicare una determinata candela , in questo caso quella della notizia in maniera fissa, ovvero non dire CLose[1] quindi la candela appena chiusa che varia col variare del tempo ma ad esempio Close[CandelaNotizia] e la stessa cosa non solo indicando un determinato tempo di una determinata candela ma anche indicando un determinato tempo di un indicatore, ad esempio iMomentum[CandelaNotizia] o comunque in un determinato tempo.
Re: Entrare a mercato automaticamente sulle NEWS
Ciao Luca,
le ore da te prefissate potrebbero essere ad esempio dei parametri esterni di tipo datetime e nel codice potresti avere un controllo che permetta di eseguire le tue logiche solo all'interno di quell'intervallo di date.
Per capire qual è invece la candela di un determinato istante puoi utilizzare la funzione ibarshift(). Con questa ottieni il numero di candela a cui fare riferimento e puoi utilizzare questo valore come shift dell iMomentum().
le ore da te prefissate potrebbero essere ad esempio dei parametri esterni di tipo datetime e nel codice potresti avere un controllo che permetta di eseguire le tue logiche solo all'interno di quell'intervallo di date.
Per capire qual è invece la candela di un determinato istante puoi utilizzare la funzione ibarshift(). Con questa ottieni il numero di candela a cui fare riferimento e puoi utilizzare questo valore come shift dell iMomentum().
Re: Entrare a mercato automaticamente sulle NEWS
Grazie Carlo,
creo questa variabile esterna facendo in modo ogni volta di indicare la candela notizia esternamente
extern datetime OrarioNotizia = D'23:00';
ibarshift nella ontick
CN = iBarShift(Symbol(),PERIOD_CURRENT,OrarioNotizia,true);
poi a seguito faccio una cosa del genere:
Open[CN] - Close[CN]
ma mi da l'errore in tutti gli shift CN dicendo:
'CN' - integer expression expected
creo questa variabile esterna facendo in modo ogni volta di indicare la candela notizia esternamente
extern datetime OrarioNotizia = D'23:00';
ibarshift nella ontick
CN = iBarShift(Symbol(),PERIOD_CURRENT,OrarioNotizia,true);
poi a seguito faccio una cosa del genere:
Open[CN] - Close[CN]
ma mi da l'errore in tutti gli shift CN dicendo:
'CN' - integer expression expected
Re: Entrare a mercato automaticamente sulle NEWS
Prova a dare false come ultimo parametro della iBarShift in questo modo ti restituirà la candela più vicina e non -1 in caso non coincida esattamente l'orario.
Fammi sapere se questo risolve.
Fammi sapere se questo risolve.
Re: Entrare a mercato automaticamente sulle NEWS
Si hai ragione, su questo fattore ho risolto anche se l'expert fa capricci, ovvero non mi apre gli ordini a mercato.
grazie mille
grazie mille
Re: Entrare a mercato automaticamente sulle NEWS
if (
(High[CPN] - Low[CPN]) <= (Open[CN] - Close[CN]) &&
((Close[CN] - Low[CN]) <= (Open[CN] - Close[CN])*0.5) &&
((High[CN] - Open[CN]) <= (Open[CN] - Close[CN])*0.5) )
{OrderSend.......
facendo in questo modo non mi apre la ordersend. sai dirmi il perchè?
(High[CPN] - Low[CPN]) <= (Open[CN] - Close[CN]) &&
((Close[CN] - Low[CN]) <= (Open[CN] - Close[CN])*0.5) &&
((High[CN] - Open[CN]) <= (Open[CN] - Close[CN])*0.5) )
{OrderSend.......
facendo in questo modo non mi apre la ordersend. sai dirmi il perchè?
Re: Entrare a mercato automaticamente sulle NEWS
Ciao Luca,
per questi casi in cui non si riesce a capire il motivo per cui non si entra all'interno di una condizione è quello di inserire sopra la condizione un Print con il valore delle variabili.
Una volta che avrai stampato il valore di queste variabili a run-time capirai sicuramente il motivo per cui non si entra in condizione.
A livello logico non vedo errori che possano pregiudicare l'ingresso nell'if quindi è necessario verificare come sono valorizzate le variabili.
per questi casi in cui non si riesce a capire il motivo per cui non si entra all'interno di una condizione è quello di inserire sopra la condizione un Print con il valore delle variabili.
Una volta che avrai stampato il valore di queste variabili a run-time capirai sicuramente il motivo per cui non si entra in condizione.
A livello logico non vedo errori che possano pregiudicare l'ingresso nell'if quindi è necessario verificare come sono valorizzate le variabili.
Re: Entrare a mercato automaticamente sulle NEWS
probabilmente ho trovato il problema ed è il ciclo for, ovvero io voglio che dopo 3 candele dalla candela notizia mi cambi una variabile, me la cambi nel senso che me la esamina dalla terza candela in poi fino a quando non trova la mia condizione e mi apre l'ordine.
io ho fatto in questo modo:
ho dato i valori alla variabili:
//candela notizia
int CN=iBarShift(Symbol(),PERIOD_CURRENT,OrarioNotizia,false);
//candela prima della notizia
int CPN= CN+1;
//candela di entrata
int C_Esaminata = CN-3;
poi ho fatto il ciclo for, probabilmente sbagliato, in modo che la candela esaminata (C_Esaminata) vada avanti da 3 fino a quando non trova la sua condizione:
for(int i = CN-3; i > C_Esaminata; i--)
{............
io ho fatto in questo modo:
ho dato i valori alla variabili:
//candela notizia
int CN=iBarShift(Symbol(),PERIOD_CURRENT,OrarioNotizia,false);
//candela prima della notizia
int CPN= CN+1;
//candela di entrata
int C_Esaminata = CN-3;
poi ho fatto il ciclo for, probabilmente sbagliato, in modo che la candela esaminata (C_Esaminata) vada avanti da 3 fino a quando non trova la sua condizione:
for(int i = CN-3; i > C_Esaminata; i--)
{............
Re: Entrare a mercato automaticamente sulle NEWS
Si il ciclo for non mi piace. Poniamo ad esempio che la candela della news sia la candela 5, avremo:
CN = 5
CPN = 6
C_Esaminata = 2
Con il for gli stai dicendo:
for(int i = 2; i > 2; i--)
Che tradotto in linguaggio umano significa: per i che vale 2 e info a quando i resta maggiore di 2 allora entra nel ciclo. La condizione non sarà mai verificata pertanto non si entra mai nel ciclo.
Probabilmente il ciclo va impostato in questo modo:
for(int i = C_Esaminata; i >= CN; i++)
CN = 5
CPN = 6
C_Esaminata = 2
Con il for gli stai dicendo:
for(int i = 2; i > 2; i--)
Che tradotto in linguaggio umano significa: per i che vale 2 e info a quando i resta maggiore di 2 allora entra nel ciclo. La condizione non sarà mai verificata pertanto non si entra mai nel ciclo.
Probabilmente il ciclo va impostato in questo modo:
for(int i = C_Esaminata; i >= CN; i++)
Re: Entrare a mercato automaticamente sulle NEWS
niente non va... la candela esaminata che dovrebbe cambiare valore col ciclo for non cambia mai resta sempre la terza candela dopo la notizia, io avevo fatto i-- perche come sai bene andando avanti nel tempo le candele sono -1 -2 -3 .. ecc ecc
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite