bahlParticipant
Average
Credevo di aver capito che un ordine di acquisto stop posizionato ad un certo livello di prezzo significasse che se la barra dei prezzi raggiunge, partendo dal basso, quel livello scatta l’acquisto. Ovvero che per posizionare un ordine di acquisto stop il livello di entrata dovesse essere superiore a quello del momento in cui si inserisce l’ordine. Viceversa con una vendita stop il livello di prezzo fissato deve essere raggiunto dall’alto.
Come corollario quindi mi aspettavo che un ordine di aquisto stop su una meedia potesse verificarsi solo quando il prezzo raggiungeva la media dal basso. Una volta superata, l’ordine non è piu attuale fino a che il prezzo non ridiscenda sotto la media per eventualmente risuperarla.
Avevo capito male però, come noto da un semplice sistema che continua ad andarmi in acquisto anche superata la media.
Ma allora “buy at … stop” significa “compra se il prezzo è superiore a…”, e non “compra se il prezzo supera…? Dove per “supera” si intende che prima il prezzo è inferiore, poi raggiunge il livello, dopo ancora è superiore.
Per sapere se l’ordine pendente deve essere STOP o LIMIT occorre confrontare il prezzo corrente con quello previsto per l’entrata:
- se il prezzo d’entrata è migliorativo occorre usare LIMIT
- se il prezzo d’entrata è peggiorativo occorre usare STOP
Se vuoi comprare ad un prezzo più alto, oppure vendere ad uno più basso, rispetto all’attuale, devi usare STOP, altrimenti LIMIT.
Uno stop buy dovrebbe essere : compra a quel prezzo arrivando da sotto, ma visto che probabilmente non sarò eseguito perché ci sono altri ordini piazzati prima di me a quel prezzo, eseguimi at market al meglio appena possibile. Subendo così lo slippege
Questo sui future, nei CFD essendo un mercato sintetico non ci dovrebbe essere slippage.
bahlParticipant
Average
Io sono a 80 e voglio comprare ad un prezzo più alto, facciamo 100, ma voglio anche che superati i 100, non compri più.metto uno buy stop a 100, il prezzo raggiunge 100 e scatta il buy, lo oltrepassa , e continua a scattarmi buy, perche sono oltre i cento, che però ora sarebbero migliorativi, un prezzo piu basso di quello a cui mi trovo, e invece lìordine buy stop at 100 continua a scattare ad ogni candela che chiude sopra i 100. questo non me lo aspettavo.
C’è anche sui CFD, in misura minore forse, ma c’è.
La regola generale dei pendenti dovrebbe essere:
- per gli ordini STOP viene garantita l’esecuzione, non il prezzo; quindi entri comunque, a quel prezzo oppure uno peggiore. In realtà se il prezzo viene toccato ed entra, magari con uno slippage favorevole, potrebbe entrare anche con un prezzo migliore
- per gli ordini LIMIT viene garantito il prezzo, non l’esecuzione; quindi o entra a quel prezzo o non entra; in realtà solitamente fanno entrare se il prezzo toccato non è quello richiesto ma è comunque migliore.
Quando piazzi un ordine Buy STOP con il prezzo attuale maggiore lo esegue a mercato, perché è comunque peggiorativo rispetto a quello piazzato.
bahlParticipant
Average
“Quando piazzi un ordine Buy STOP con il prezzo attuale maggiore lo esegue a mercato, perché è comunque peggiorativo rispetto a quello piazzato”. Certo non con tutti i broker. Ero abituato così che, mettendo un ordine di acquisto stop su una media mobile, oltrepassata la media e verificatosi l’acquisto, l’ ordine scattava nuovamente solo quando il prezzo segnato dalla media era di nuovo peggiorativo rispetto al prezzo attuale, Per ottenere lo stesso con ig devo mettere “if close <livello then buy at livelllo stop” .
Cmq l ordine dovrebbe valere solo per la candela successiva al tocco del prezzo stop, e cancellato se non toccato o superato. Poi la routine ricomincia. Forse dipende da come è scritto il codice. Es.: Buy at 100 stop , exit on clouse candel e il mio prezzo e sopra 110 per 30 candele lui compra ad ogni candela. Correggetemi se sbaglio.
Gli ordini pendenti valgono solo per UNA candela, se servono ancora vanno piazzati nuovamente alla candela successiva.
Se entrano a mercato sono immediatamente cancellati e non possono entrare ancora nella stessa candela.
bahlParticipant
Average
per mostrare quello che intendo basta un codice semplicissimo, che allego, e che ho fatto girare a titolo esemplificativo sullo spot gold mini, con tf 10 minuti. Dalle 5,50 alle 8 va in acquisto parecchie volte con i prezzi ampiamente superiori alla media. E’ vero, li gli ingressi sono tutti peggiorativi rispetto al livello indicato dalla media, ma migliorativi rispetto al prezzo battuto al momento/barra del verificarsi delle condizioni di ingresso . Per ottenere che vada in acquisto solo raggiungendo la media dal basso, come se la media fosse una resisitenza, occorre aggiungere “and close <average[21]” alla riga 5.
DEFPARAM CumulateOrders = False
RESISTENZA=AVERAGE[21]
IF NOT ONMARKET THEN
BUY AT RESISTENZA STOP
ENDIF
IF LONGONMARKET THEN
SELL AT MARKET
ENDIF
Sono tutte operazioni corrette!
Quando piazzi l’ordine sotto la media entra in STOP perché il prezzo d’entrata è peggiorativo, quando piazzi l’ordine ed il prezzo è sopra la media entra a mercato perché il prezzo d’entrata è già stato superato ed essendo un ordine STOP deve essere garantita l’esecuzione!
Se vuoi metterli correttamente basta che modifichi le righe 57 così:
IF NOT ONMARKET THEN
IF close < RESISTENZA then
BUY AT RESISTENZA STOP
ELSE
BUY AT RESISTENZA LIMIT
ENDIF
ENDIF