R05Participant
Veteran
Salve a tutti, sto implementando una strategia che utilizza le bande di Bollinger a 1 deviazione standard e le doji dell’heikin ashi. Il codice è il seguente:
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 090000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 173000
// Condizioni per entrare su posizioni long
DojiSize = 5 //x% percent of body size compared to the complete range of the candlestick
// ---
xClose = (Open+High+Low+Close)/4
if(barindex>2) then
xOpen = (xOpen[1] + xClose[1])/2
endif
indicateur=(abs(xopen - xclose) <= (high - low) * DojiSize/100)
if indicateur then
startbar=barindex
startprice=xclose
endif
indicator1 = Average[20](close)-std[20](close)
c1 = (low < indicator1)
IF indicateur and startbar and startprice and close>xclose[1] THEN
if c1 then
BUY 1 CONTRACT AT MARKET
ENDIF
endif
// Stop e target
SET STOP pLOSS 10
SET TARGET pPROFIT 10
Funziona (per il momento ho messo solo il long per comodità) ma il problema è uno: mi si forma la doji hiekin ashi e alla candela successiva mi fa aprire la posizione ma io vorrei che aprisse la posizione solo se la candela successiva alla doji apre verde, quindi se il prezzo è sopra il close della doji stessa, ma non so come fare. Ho usato il time frame ad 1 minuto sul Nasdaq. Vi allego un esempio.
Mi aiutereste gentilmente?
La riga 18 dovrebbe essere così:
indicateur=abs(xopen - xclose) <= ((xhigh - xlow) * DojiSize/100)
Le righe 27 e 28 dovrebbero essere:
indicator1 = Average[20](xclose)-std[20](xclose)
c1 = (xlow < indicator1)
La riga 30 invece:
IF indicateur and startbar and startprice and xclose>xclose[1] THEN
altrimenti mischi candele HA con candele giapponesi standard.
Non so se cambiando queste righe cambierà qualcosa, non posso replicare le operazioni, ma posso dirti che:
- la prima operazione in alto a sinistra entra dov’è la freccia sulla base delle condizioni verificate la barra precedente (la doji), quindi come fa la barra precedente a sapere dove aprirà la prossima candela?
- lo stesso vale per l’operazione che tu ritieni corretta, si basa sempre sulle condizioni alla chiusura della candela precedente, solo quelle contano, il futuro NON esiste
L’unica soluzione è che tu aspetti una candela dopo la doji per verificare com’è la seconda, in tal caso basta che metti il riferimento alla barra precedente alla riga 30:
indicateur[1]
R05Participant
Veteran
Si Roberto grazie, ti faccio un esempio di quello che volevo intendere e ti allego un grafico: oggi il close del nasdaq future della candela heikin ashi delle 13:13 era a 9009,4 mentre alle 13:14 il prezzo della nuova candela (non heikin ashi), ma il prezzo subito all’apertura della candela era a 9012,1, quindi superiore: questo vuol dire che la candela heikin ashi aveva già un corpo, seppur piccolo, verde (infatti l’apertura della candela heikin ashi delle 13:14 è 9009,2 che fino a 9012,1 era comunque verde) e quindi in direzione della mia operazione long.
No, non funziona così.
Le strategie vengono SEMPRE eseguite alla chiusura di ogni candela, quando ancora non si può sapere come aprirà la successiva, perché NON è ancora aperta. Quando tu la vedi apparire sul grafico, l’ordine è già stato eseguito e non puoi più tornare indietro!
NON guardare le immagini, il tuo occhio umano è una cosa, un computer è un’altra. Stabilisci una regola ben precisa che ProOrder debba eseguire e lascia perdere le foto!
E’ una brutta abitudine umana (intesa nel modo di ragionare di un programmatore) guardare le immagini. Servono invece regole assolutamente precise, in questo il testo scritto surclassa le immagini in modo incredibile!
Se tu stabilisci che la strategia debba entrare SHORT quando ci verificano, ad esempio, 3 candele rialzista consecutive, non deve interessarti com’è la quarta candela! Se, invece, t’interessa anche la quarta (ad esempio vuoi che sia contraria alle 3 precedenti, allora devi aspettare una candela in più e verificare che le tre candele rialziste si siano verificate prima dell’ultima e che l’ultima sia di segno contrario.
Una strategia vede la fine di una candela ed esegue quello che gli è stato detto di eseguire in quel preciso momento. Il resto NON conta niente!
R05Participant
Veteran
Ok grazie Roberto della delucidazione, gentilissimo come sempre. Forse mi sono confuso anche dal fatto che se ad esempio devo entrare long dopo tre candele verdi, posso entrare long subito all’apertura della candela successiva; però, potrei anche mettere anche un ordine stop se il prezzo supera il massimo dell’ultima candela oppure un valore più alto, altrimenti non apre la posizione. Siccome le candele heikin ashi hanno un modo di formarsi diverso dalle candele giapponesi, e dato che l’open della candela giapponese successiva non coincide necessariamente con il close della candela heikin ashi precedente (ma può essere più alto o più basso) pensavo si potesse dire al sistema di aprire la posizione alla candela successiva solo se il prezzo (l’open della candela giapponese per intenderci) sia maggiore del close dell’heikin ashi. Forse nel mio caso debbo dire al sistema di entrare long al close dell’heikin ashi + 4 punti (ad esempio), così sono più sicuro che abbia già fatto un minimo di candela verde. Non so se sei d’accordo.
Non importa se la candela HA viene costruita diversamente, ha inizio nel medesimo istante, quindi DOPO che la strategia è stata eseguita.
L’ordine pendente può essere una soluzione, puoi provare.