Salve a tutti, è la prima volta che scrivo qui. Ho fatto fare da un programmatore il codice per un expert advisor che dovrebbe funzionare come segue: su frame a 5 min aprire una posizione long non appena viene brekkato il max della candela precedente , viceversa aprire un trade short se fora il minimo della candela precedente sempre su frame 5 minuti…
la realtà è che non funziona in questo modo, ma bensi apre un trade NON appena chiude la candela a 5 min e inizia la nuova candela ( anche se non è stato forato o il massimo o il minimo della candela precedente ) Il programmatore che mi ha creato il codice sostiene che è un bug della prorealtime…. io personalmente non ci credo… trovo assurdo che non si possa fare un expert cosi semplice…
c’è qualcuno che mi puo’ aiutare qui?
grazie mille
Fabrizio
Generalmente si può fare, l’unica cosa che può creare qualche problema è la distanza minima che deve esserci tra il prezzo d’entrata ed il prezzo corrente. E’ un valore richiesto da IG (e che solitamente è indicato sul loro sito, strumento per strumento, che però può variare durante una giornata volatile). Sui 5 minuti può darsi che non ci sia una distanza sufficiente tra la chiusura ed il prezzo d’entrata e questo può creare dei problemi. Non in backtest, che non è gestito dal broker, quindi non è a conoscenza delle distanze richieste e non gli interessano, quanto l’autotrading live (demo o reale che sia).
Un’altra cosa da chiarire è quello che intendi per “candela precedente“. Le strategie vengono sempre eseguite alla chiusura di ogni candela. La candela appena chiusa è quella CORRENTE (non quella nuova che si sta aprendo, in quanto non è accessibile fino alla sua chiusura), per cui parlare di precedente dovrebbe significare che vuoi entrare al break della candela PRECEDENTE a quella che è appena stata chiusa. Ad esempio, se adesso chiude (alle 10:50) la candela aperta alle 10:45, la candela precedente è quella che era stata aperta alle 10:40. Quella in corso è, invece, quella delle 10:50 che però NON è accessibile (a meno di non usare più time franes, ma è un un discorso a parte).
Io credo che tu con PRECEDENTE intenda quella CORRENTE, appena chiusa.
Questo è il codicebase, semplice, che si disinteressa delle distanze:
IF Not LongOnMarket THEN
EntryLong = high + 1*PipSize
BUY AT EntryLong STOP
ENDIF
IF Not ShortOnMarket THEN
EntryShort = low - 1*PipSize
SELLSHORT AT EntryShort STOP
ENDIF
SET TARGET pPROFIT 20
SET STOP pLOSS 20
GraphOnPrice EntryLong coloured(0,0,255,255)
GraphOnPrice EntryShort coloured(255,0,0,255)
grazie mille Roberto per la tua risposta…
esatto: io con “precedente” intendo quella corrente…
il focus su cui mi devo focalizzare è quando dici ” distanza minima che deve esserci tra il prezzo d’entrata ed il prezzo corrente”
in effetti vorrei che il mio expert aprisse la posizione e poi 1 tick di gain la chiude, e 5 tick di stop loss…
ho notato che , ad esempio sul nasdaq100 ( sul cfd no future intendo ) su frame 5 minuti questo expert da risultati molto buoni… ovvio da fare andare solo 1 ora al giorno …non tutto il giorno…
l’orario migliore è dalle 16 alle 17 in quanto è in questo orario che spesso parte il trend di giornata sul nasdaq100
spero di essere stato chiaro..
grazie
ciao
Fabrizio
Ti ho fatto l’aggiunta dell’orario ed ho modificato lo Stop Loss ed il Take Profit (ho anche aggiunto il numero di contratti, com’era prima ne apriva sempre e solo 1):
IF Time >= 160000 AND Time <= 170000 THEN
IF Not LongOnMarket THEN
EntryLong = high + 1*PipSize
BUY 1 CONTRACT AT EntryLong STOP
ENDIF
IF Not ShortOnMarket THEN
EntryShort = low - 1*PipSize
SELLSHORT 1 CONTRACT AT EntryShort STOP
ENDIF
ENDIF
SET TARGET pPROFIT 1
SET STOP pLOSS 5
GraphOnPrice EntryLong coloured(0,0,255,255)
GraphOnPrice EntryShort coloured(255,0,0,255)
Però anche per Stop Loss e Take Profit, devi verificare i minimi richiesti.