Salve, Buongiorno. Vorrei chiedervi come replicare questa situazione su un Ts del secondo attraversamento di Ross
Vi spiego la situazione che dovrebbe avvenire nel corso di un trend long o short.
- Precedentemente alla Congestione in cui ci troviamo, deve esserci stato un chiaro trend;
2. I prezzi devono muoversi all’interno di un range ben definito e per questo possiamo inserire una media di lungo periodo per identificare il trend primario.
- Deve esserci una rottura della congestione in direzione opposta al trend precedente
- La rottura in direzione opposta al trend deve essere seguita dalla “prima rottura” in direzione del trend
- La prima rottura del trend deve essere seguita da un ritorno verso o all’interno della congestione.
Effettuati questi passaggi, il trend è pronto a riprendere il suo percorso originario e possiamo quindi sviluppare un ottimo trade di tipo trend following.
Allego immagine 1 quando avviene questa condizione
Spero di essere stato chiaro come immagini da allegato.
Innanzitutto devi specificare su quale strumento e su quale timeframe intendi utilizzarla.
In riferimento ai tuoi punti:
- come deve essere definito un range, entro quante candele ed entro quanti pips, ad esempio è un range se il prezzo si muove entro 25 pips in 40 candele oppure in altro modo?
- il trend precedente come lo determini, con una o più medie e di quale tipo (esponenziale, semplice, ….) ed a quanti periodi?
- dopo la seconda rottura ed il ritracciamento, quando entreresti in posizione SHORT (mi riferisco all’esempio della tua foto)? Alla rottura del minimo del secondo attraversamento?
Roberto
Ciao Roberto buongiorno, è una strategia che intendo utilizzare sugli indici azionaro come dax e nasdaq, su time frame da m30 in su.
Ti rispondo punto per punto in modo da esser chiaro:
- Il range, lo definiamo entro max e minimi di N candele
- il trend principale lo determino con supertrend ottimizzato al range oppure quando il prezzo è superiore a una media mobile di lungo periodo.
- 3. entrerei short alla rottura del minimo del primo attraversamento
Spero di essere stato chiaro.
Ti ringrazio per la tua disponibilita’
Ciao Roberto buonasera. Ti allego file dove ci sono ulteriori esempi e spiegazione ben definiti in modo che si ancora piu’ comprensibile.
Provo a riallegare i file in quanto non so perchè nel precedente post non me li ha allegati
Sto provando a scriverla, mi occorrerà un pò di tempo. Purtroppo nel fine settimana non potrò lavorarci.
Roberto grazie tante per la sua disponibilità.
Le ho postato quei file in modo che ha una piu’ chiara visione della strategia.
Le auguro un buon fine settimana
Ho provato a riscriverla, ma l’ho testata davvero poco (sul DAX ad 1 ora)
Fai qualche prova e fammi sapere.
DEFPARAM CumulateOrders = False
DEFPARAM PreLoadBars = 0
// inizializzazione delle variabili
ONCE nLots = 1 //Numero di lotti
ONCE TrendUP = 0
ONCE TrendDOWN = 0
ONCE PrimaRottura = 0
ONCE SecondaRottura = 0
ONCE Massimo = 0
ONCE Minimo = 0
ONCE Ritorno = 0
ONCE RangeFlag = 1
ONCE RangeBars = 10 //10 numero di candele entro le quali definire un RANGE
ONCE RangePips = 75 //20 numero di Pips massimo all'interno del RANGE
ONCE PeriodiMedia = RangeBars + 1 //PeriodiMedia serve a verificare il trend PRIMA del range
//************************************************************************
// Dopo la Seconda rottura (o Primo Attraversamento), salvo i massimo/minimi per poi entrare a mercato
IF SecondaRottura = 0 THEN
AttraversamentoHI = 0
AttraversamentoLO = 0
ELSE
AttraversamentoHI = max(AttraversamentoHI,high)
AttraversamentoLO = min(AttraversamentoLO,low)
ENDIF
//************************************************************************
IF OnMarket THEN
RangeFlag = 1 //Ripartire daccapo ad operazione iniziata
TrendUP = 0
TrendDOWN = 0
PrimaRottura = 0
SecondaRottura = 0
Ritorno = 0
Massimo = 0
Minimo = 0
ENDIF
//************************************************************************
// determinare di essere all'interno di un RANGE
IF PrimaRottura = 0 THEN
hh = highest[RangeBars](high) //determinare il prezzo più alto entro RANGEBARS candele
ll = lowest[RangeBars](low) //determinare il prezzo più basso entro RANGEBARS candele
RangeFlag = (hh - ll) <= (RangePips * pipsize)//Non c'è range se nell'intervallo specificato si sono mossi oltre RANGEPIPS pips
ELSE
RangeFlag = 0
ENDIF
//************************************************************************//
// Segnalare eventuale ROTTURA contro-Trend
IF RangeFlag THEN
Massimo = hh
Minimo = ll
ELSIF PrimaRottura = 0 THEN
IF RangeFlag[1] THEN //Se adesso nion c'è range, ma prima si, c'è stata rottura
IF TrendUP THEN
IF close > Massimo THEN
RangeFlag = 1 //Ripartire daccapo se prima rottura nella stessa direzione del Trend
TrendUP = 0
TrendDOWN = 0
PrimaRottura = 0
SecondaRottura = 0
Ritorno = 0
Massimo = 0
Minimo = 0
ELSE
PrimaRottura = 1 //Se prima rottura contro-trend, allora settarla
ENDIF
ENDIF
IF TrendDOWN THEN
IF close < Minimo THEN
RangeFlag = 1 //Ripartire daccapo se prima rottura nella stessa direzione del Trend
TrendUP = 0
TrendDOWN = 0
PrimaRottura = 0
SecondaRottura = 0
Ritorno = 0
Massimo = 0
Minimo = 0
ELSE
PrimaRottura = 1 //Se prima rottura contro-trend, allora settarla
ENDIF
ENDIF
ENDIF
ENDIF
//************************************************************************
// Segnalare eventuiale PRIMA rottura a favore di Trend
IF PrimaRottura <> 0 AND SecondaRottura = 0 THEN
IF close > Massimo THEN
IF TrendUP THEN
SecondaRottura = 1
ELSE
RangeFlag = 1 //Ripartire daccapo se seconda rottura Contro Trend
TrendUP = 0
TrendDOWN = 0
PrimaRottura = 0
SecondaRottura = 0
Ritorno = 0
Massimo = 0
Minimo = 0
ENDIF
ELSIF close < Minimo THEN
IF TrendDOWN THEN
SecondaRottura = 1
ELSE
RangeFlag = 1 //Ripartire daccapo se seconda rottura Contro Trend
TrendUP = 0
TrendDOWN = 0
PrimaRottura = 0
SecondaRottura = 0
Ritorno = 0
Massimo = 0
Minimo = 0
ENDIF
ENDIF
ENDIF
//************************************************************************
// Attendere RIENTRO
IF SecondaRottura THEN
IF TrendUP THEN
IF close < Massimo THEN
Ritorno = 1 //Segnalare il riorno entro il RANGE da cui il prezzo era uscito
ENDIF
ENDIF
IF TrendDOWN THEN
IF close > Minimo THEN
Ritorno = 1 //Segnalare il riorno entro il RANGE da cui il prezzo era uscito
ENDIF
ENDIF
ENDIF
//************************************************************************
IF PrimaRottura = 0 THEN
MediaMobile = Average[200,0] //200 periodi della media per definire il trend prima del RANGE
//0 = Media Mobile Semplice (tabella https://www.prorealcode.com/documentation/average/)
IF (TrendUP + TrendDOWN) = 0 THEN
IF RangeFlag THEN
IF close[PeriodiMedia] > MediaMobile[PeriodiMedia] THEN //Trend RIALZISTA se prezzo chiusura sopra la Media Mobile
TrendUP = 1
TrendDown = 0
ELSIF close[PeriodiMedia] < MediaMobile[PeriodiMedia] THEN //Trend RIBASSISTA se prezzo chiusura sotto la Media Mobile
TrendUP = 0
TrendDown = 1
ENDIF
ENDIF
ENDIF
ENDIF
//************************************************************************
// LONG
IF Ritorno AND TrendUP THEN
BUY nLots CONTRACTS AT AttraversamentoHI STOP
ENDIF
// SHORT
IF Ritorno AND TrendDOWN THEN
SELLSHORT nLots CONTRACTS AT AttraversamentoLO STOP
ENDIF
// Stop Loss & Target Profit
SET STOP pLOSS 6 //10 pips di Stop Loss
SET TARGET pPROFIT 400 //50 pips di Target Profit
//
GRAPH hh
GRAPH ll
GRAPH Massimo
GRAPH Minimo
GRAPH PrimaRottura
Caio Buongiorno Roberto. Ho provato la strategia ma purtoppo mi si blocca alla prima operazione. Fa solamente un operazione.
Provato su dax e time frame da 5 a 6o minuti.
otresti verificare?
Grazie
Può succedere, ad esempio, se hai indicato un capitale iniziale esiguo, per cui appena va al di sotto si ferma. Verificalo.
Verifica anche, se hai fatto il copia e incolla, di avere copiato tutto correttamente.
Come vedi dallo screenshot allegato, DAX 60 minuti, a me, da inizio anno esegue 5 operazioni.
Ad ogni modo riesci a farmi uno screenshot (immagine della videata) da postare?
Ciao Roberto ho ricopiato tutto il codice e controllato di averlo copiato bene ed è tutto apposto. ho inserito 100.000 euro di capitale iniziale, ma mi fa solo due operazioni e mi si ferma. ti posto uno screen. Testato su dax h1
Mi spiace Foffo84, ma non riesco a trovare una soluzione funzionante come tu vorresti.
Il problema è che cambiano alcuni valori in entrata secondo il numero di barre precaricate, inoltre per determinare un range visivo è semplice, basta guardare il grafico e si riesce ad individuarlo facilmente, mentre per una strategia il discorso cambia, un software non può vedere, quindi si usano i parametri del numero di candele e del numero di pips di intervallo in quel determinato numero di candele. Solo che ad ogni candela se ne aggiunge un’altra e va via la più vecchia.
Mi riesce difficile questo aspetto.
Risolto questo aspetto ce ne sarebbero comunque altri quattro:
- quante candele si devono attenedre, al massimo, prima che avvenga la rottura contro tendenza? (questo forse è il più facile, si può attendere finché il range dura, prima o poi dovrà finire)
- quante candele si devono attendere, al massimo, dopo la rottura di cui sopra, prima che avvenga il Primo Attraversamento?
- quante candele si devono attendere, al massimo, dopo il Primo Attraversamento, che il prezzo rientri nel range?
- quante candele si devono attendere, al massimo, dopo il rientro, che il prezzo superi di nuovo il Primo Attraversamento per iniziare un’operazione Long/Short?
Insomma, non mi sembra per niente facile. Mi spiace davvero non riuscire ad aiutarti.