Buongiorno a tutti, vorrei chiedervi un’aiuto per creare un codice che all’incrocio al rialzo di 2 medie mibili compri un contratto come primo ingresso.
All’incrocio successivo al ribasso delle due medie mobili vende 2 contratti per chiudere la posizione precedente e riaprirne una nuova.
Al successivo reincrocio al rialzo delle due medie mobili compra 2 contratti per chiudere la vecchia posizione e riaprire un’altra e così via.
Grazie
Ecco fatto, non l’ho testato molto, provalo e segnalami eventuali discordanze:
MediaVeloce = average[21,0](close)
MediaLenta = average[50,0](close)
IF IncrocioRialzista = 0 THEN
IncrocioRialzista = MediaVeloce CROSSES OVER MediaLenta
IF IncrocioRialzista THEN
IncrocioRibassista = 0
ENDIF
ENDIF
IF IncrocioRibassista = 0 THEN
IncrocioRibassista = MediaVeloce CROSSES UNDER MediaLenta
IF IncrocioRibassista THEN
IncrocioRialzista = 0
ENDIF
ENDIF
// Posizioni LONG
IF IncrocioRialzista AND Not LongOnMarket THEN
IF ShortOnMarket THEN //prima uscire da un eventuale SHORT...
EXITSHORT AT MARKET
ENDIF
BUY 1 CONTRACT AT MARKET //... poi aprire una posizione LONG
ENDIF
// Posizioni SHORT
IF IncrocioRibassista AND Not ShortOnMarket THEN
IF LongOnMarket THEN //prima uscire da un eventuale LONG...
SELL AT MARKET
ENDIF
SELLSHORT 1 CONTRACT AT MARKET //... poi aprire una posizione SHORT
ENDIF
Grazie per il tuo aiuto, proverò a testarlo.
Una piccola domanda : perché usi sempre un solo contratto ? Se ho una posizione aperta in long e voglio rigirarmi short all’incrocio al ribasso delle 2 mm, devo necessariamente vendere due contratti allo scoperto, altrimenti non chiude la vecchia posizione.
Sono questi 2 comandi “EXITSHORT AT MARKET” e “SELL AT MARKET” che chiudono la posizione attiva per poi aprirne una nuova con questi altri due comendi : “BUY 1 CONTRACT AT MARKET” e “SELLSHORT 1 CONTRACT AT MARKET” ?
Grazie.
No, ne acquisto sempre 1.
Solo che PRIMA, alle righe 20-22 e 28-30, chiudo le posizioni contrarie in corso.
SELL non serve a VENDERE, ma semplicemente a chiudere un operazione BUY (long). Se tu, quando non sei a mercato, dai il comando BUY non succede assolutamente niente, viene ignorata perché serve solo a CHIUDERE un long!
Per vendere, invece, occorre l’istruzione SELLSHORT (e conseguentemente EXITSHORT per chiuderla).
Ciao Roberto,
anch’io sono interessato a questo codice….l’ho provato ma non entra ed esce correttamente agli incroci. Indice DAX a 5 minuti. Non riesco a capire…..mi puoi aiutare?
A me funziona correttamente, sul DAX a 5 minuti.
Hai usato le stesse medie, si?
Fammi sapere il giorno e l’ora della candela dove c’è un entrata/uscita errata.
Medie esponenziali….lenta a 21 mentre veloce a 10 periodi.
Vorrei che entrasse/uscisse a mercato all’incrocio esatto.
Entra all’incrocio esatto.
Ciao Roberto, si hai ragione entra all’incrocio esatto! GRAZIE
Una domanda.
Avendo 3 medie invece di 2:
EMA1
EMA2
EMA3
Volendo entrare all’incrocio CROSSES OVER di EMA2 con EMA3 ed uscire (NON stop/reversal) ma all’incrocio CROSSES UNDER di EMA1 con EMA2 qual’è il comando giusto da usare?
Idem per le posizioni short.
Grazie.
Incrocio al rialzo di Ema2 su Ema3:
IF Ema2 CROSSES OVER Ema3 THEN
BUY AT MARKET
ENDIF
Incrocio al ribasso di Ema1 con Ema2:
IF Ema1 CROSSES UNDER Ema2 THEN
SELL AT MARKET
ENDIF
Per gli Short fai l’inverso, Ema2 CROSSES UNDER Ema3 e Ema1 CROSSES OVER Ema2.
ok.
ma non bisogna strutturare il comando tipo cosi? e per l’uscita verificare se ci sono posizioni a mercato? Grazie.
IF IncrocioRialzista = 0 THEN
IncrocioRialzista = M2 CROSSES OVER M3
IF IncrocioRialzista THEN
IncrocioRibassista = 0
ENDIF
ENDIF
Il primo post che ho fatto era per un codice Stop & Reverse.
Certo che puoi fare così!
Come consigli di scrivere il codice? mi sto perdendo…..help me
Eccolo:
Media1 = average[10,0](close)
Media2 = average[30,0](close)
Media3 = average[90,0](close)
IncrocioRialzista = Media2 CROSSES OVER Media3
IncrocioRibassista = Media2 CROSSES UNDER Media3
UscitaDaLong = Media1 CROSSES UNDER Media2
UscitaDaShort = Media1 CROSSES OVER Media2
// Uscita LONG
IF UscitaDaLong AND LongOnMarket THEN
SELL AT MARKET
ENDIF
// Uscita SHORT
IF UscitaDaShort AND ShortOnMarket THEN
EXITSHORT AT MARKET
ENDIF
// Entrata LONG
IF IncrocioRialzista AND Not LongOnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// entrata SHORT
IF IncrocioRibassista AND Not ShortOnMarket THEN
SELLSHORT 1 CONTRACT AT MARKET //... poi aprire una posizione SHORT
ENDIF