Ferro Vecchio
vecchio brontolone
- Registrato
- 7/9/05
- Messaggi
- 51.734
- Punti reazioni
- 911
scusa maestro ma oggi stai assente
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
Un po' di Storico....
129 - 128 - 127 - 126 - 125 - 124 - 123 - 122 - 121 - 120
119 - 118 - 117 - 116 - 115 - 114 - 113 - 112 - 111 - 110
109 - 108 - 107 - 106 - 105 - 104 - 103 - 102 - 101 - 100
99 - 98 - 97 - 96 - 95 - 93 - 92 - 91 - 90
89 - 88 - 87 - 86 - 85 - 84 - 83 - 82 - 81 - 80
79 - 78 - 77 - 76 - 75 - 74 - 73 - 72 - 71 - 70
69 - 68 - 67 - 66 - 65 - 64 - 63 - 62 - 61 - 60
59 - 58 - 57 - 56 - 55 - 54 - 53 - 52 - 51 - 50
49 - 48 - 47 - 46 - 45 - 44 - 43 - 42 - 41 - 40
39 - 38 - 37 - 36 - 35 - 34 - 33 - 32 - 31 - 30
29 - 28 - 27 - 26 - 25 - 24 - 23 - 22 - 21 - 20
19 - 18 - 17 - 16 - 15 - 14 - 13 - 12 - 11 - 10
9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 - 1
Il TS ADX/ADM
L’ADX o Average Directional Index
è un ottimo indicatore di medio periodo però
indica solo la forza del trend e non la sua direzione.
Il valore dell’ADX può essere compreso tra 0 e 100. Tipicamente un trend caratterizzato da un ADX al di sotto del 20 è considerato debole, mentre sopra 25 è da considerarsi forte.
Molto più utili gli indicatori +DI (Positive Directional Indicator) ed il -DI (Negative Directional Indicator), considerando la loro media a 14 giorni: +DI14 in verde e -DI14 in rosso.
I loro incroci deteminano la la direzione del trend.
+DI14 > -DI14+FlatZone = LONG
+DI14 < -DI14-Flatzone = SHORT
FLAT nella fascia -Flatzone+Flatzone dell'incrocio
la Flatzone era -10% +10% nelle vecchie versioni , ora è calcolata anche essa in base a dei backtest periodici
L'ADM o Average Daily Movement è un indicatore Intraday basato sulla volatilità
vengono dati ogni giorno 2 entry (Long o Short) e 3 Take Profit (Long e Short)
Operativamente:
si entra long/short se alla chiusura oraria (alle 10, alle 11, ecc) il valore dell’indice è superiore/inferiore all’entry long/short giornaliero
poi
se non arriva il TP xx entro chiusura
se siamo in trend (vedi ADX) si va in over e il giorno dopo si chiude se entra il segnale di reverse
se siamo controtrend (ADX contrario) si chiude in chiusura mercato
per esempio…
al segnale io entro long con 3 posizioni (3 contratti, ecc…)
la 1° pos va in take profit sul TP1 (alla battuta)
la 2° sul TP2 (alla battuta) una volta fatto il TP1 (candela oraria) si alza lo stop loss sull’entry
la 3° sul TP3 (alla battuta) una volta fatto il TP2 (candela oraria) si alza lo stop loss sul TP1
- se ADX è FLAT o LONG, se non ha raggiunto uno dei target si porta la posizione in over…..
il giorno dopo al raggiungimento del TP1 si vendono tutte le posizioni e si aspettano i segnali nuovi, se invece non arriva l’ex-tp1 ma entra l’entry contraria si chiude tutto e si reversa.
- se ADX è SHORT meglio chiuderla in giornata
Varianti intraday
i livelli sono da considerare come resistenze/supporti
una volta superata una resistenza diventa supporto, e viceversa….
per esempio il 21/04/2015
ha fatto
1 – entry long
2 – entry short (stop loss & reverse)
3 – tp1 short
4 – ex-entry short (nuovo entry long)
5 – ex-entry long (nuovo tp1 long)
Calcolo dei livelli intraday
ADM è la media su N-giorni della volatilità giornaliera (Max-Min) , la media a N giorni…
io ora lo calcolo periodicamente in base a dei backtest e lo trovate in alto a sinistra nel grafico , nelle prime versioni del TS usavo il valore di 30 giorni, che è abbastanza valido
,altri usano altri valori..
i livelli di entrata vengono calcolati in questo modo
i livelli di entrata vengono calcolati in questo modo:
la teoria standard dice di usare un break-out level = 0.382 (Price Break) , io ultimamente lo sto calcolando ogni giorno in base alla volatilità
(chiusura giorno precedente + Price Break*ADM Ndays) ci dà l’Entry Long
(chiusura giorno precedente – Price Break*ADM Ndays) ci dà l’Entry Short
DayC = chiusura giorno precedente
C = prezzo corrente
Entry Long = C>((DayC)+((Price Break)*(ADM Ndays)));
Entry Short = C<((DayC)-((Price Break*(ADM Ndays)));
ho notato che però quando aumenta la volatilità il price break posto a 0,382 genera diversi falsi segnali
pertanto dalla versione 3.0 sto sperimentando questa formula…
Price Break=(0,382+0,382*((ADM 10 days-ADM Ndays)/ADM Ndays))
I target invece vengono così calcolati….
Target 1 Long = (0.45*ADM)+Entry Long;
Target 2 Long = (0.95*ADM)+Entry Long;
Target 3 Long = (1.95*ADM)+Entry Long;
Target 1 Short = Entry Short-(0.45*ADM);
Target 2 Short = Entry Short-(0.95*ADM);
Target 3 Short = Entry Short-(1.95*ADM);
-----------------------------------------------------------------------------------
Probabilità dei vari TP
-----------------------------------------------------------------------------------
Implementazioni su piattaforme Standard:
ADM v. 2. 0 per Amibroker by Murali krishna
http://www.wisestocktrader.com/indicators/4059-ultimate-volatility-trading-system-v-2.txt
ADM per VisualTrader by Strong
Codice:{****************************************************************************** * ADM by Strong. * * Versione 1 fix 1 del 18/04/2014 * * Filtro ingressi ATTIVO * ******************************************************************************} Var: newDay(false), // CAMBIO GIORNO numDay(0), // STORICO GIORNI PER CALCOLO ADM lastRange,lastClose,HistoryRange,HistoryClose, // VALORI END OF DAY num(0),den(0),adm(0),STORICO_ADM(30), // ADM targetLong(0),targetShort(0), // TARGET X USCITA stopLossLong(0),stopLossShort(0), // STOPLOSS flagLong(false),flagShort(false), // SINGOLA OPERAZIONE GIORNALIERA buf, // TEMPORANEA zonaPlotting; // // ************************ CALCOLO INDICATORE ADM ***************************** // newDay=GetValues (days, 1, buf,buf,buf,buf); if newDay then // FLAG PER GESTIRE UNA OPERAZIONE LONG E SHORT AL GIORNO flagLong=true; flagShort=true; lastRange=EOD.R[1]; lastClose=EOD.C[1]; num = num + lastRange*lastClose; den = den + lastClose; // GESTIONE DEL NUMERO DI GIORNI PER IL CALCOLO DELL'INDICATORE if numDay >= STORICO_ADM then historyRange=EOD.R[STORICO_ADM]; historyClose=EOD.C[STORICO_ADM]; num = num - historyRange*historyClose; den = den - historyClose; endif; // CALCOLO ADM adm = num/den; inc(numDay); endif; // // ************************ LONG *********************************************** // if LastBar = false and adm > 0 and flagLong and positionlong = false then // FILTRO SUGLI INGRESSI // if (C>H[1] or B[1]) and W and C > lastclose+ (0.382*adm) then if (C > lastclose + (0.5*adm)) then // if C > C[1]+ (0.382*adm) then colorbar(green); // CancelExitLong("target 0.5"); enterlong(nextBar,atopen); stopLossLong = 0.5 * adm; targetLong = adm * 0.5; flagLong = false; endif; endif; SECTION_EXITLONG: // STOPLOSS DINAMICO //exitlong(NextBar,positionvaluethisbar + targetLong , limit, 3 , "Target 0.5"); // STOPLOSS STATICO // if C < positionvaluethisbar - stopLossLong then //exitlong(nextbar,atopen); //endif; // USCITA A FINE GIORNATA //if t = 1700 then // exitlong(bar,atclose); //endif; END_SECTION // // ************************ SHORT ********************************************** // if LastBar = false and adm > 0 and flagShort < 1 and positionshort = false then // FILTRO SUGLI INGRESSI // if (C < L[1] or W[1]) and B and C < lastclose - (0.382*adm) then if (C < lastclose - (0.5*adm)) then //if C < C[1] - (0.382*adm) then colorbar(red); //CancelExitshort("Target 0.5"); entershort(nextBar,atopen); stopLossShort = 0.5 * adm; targetShort = adm * 0.5; flagSHort=false; endif; endif; SECTION_EXITSHORT: //STOPLOSS DINAMICO // exitshort(NextBar, positionvaluethisbar - targetShort, limit, 3, "Target 0.5"); //STOPLOSS STATICO //if C > positionvaluethisbar + stopLossShort then //exitshort(nextbar,atopen); //endif; // USCITA A FINE GIORNATA //if t = 1700 then // exitshort(bar,atclose); //endif; END_SECTION // // ************************ PLOTTING ******************************************* // // DISEGNA I VALORI DI INGRESSO SUL GRAFICO PRINCIPALE PlotChart(lastclose + adm*0.5 , 0, lime, solid, 1); PlotChart(lastclose - adm*0.5 , 0, red, solid, 1); PlotChart(lastclose + adm*0.5 + adm*0.45 , 0, green, Dot, 1); PlotChart(lastclose - adm*0.5 - adm*0.45 , 0, fuchsia, Dot, 1); PlotChart(lastclose + adm*0.5 + adm*0.95 , 0, green, Dot, 1); PlotChart(lastclose - adm*0.5 - adm*0.95 , 0, fuchsia, Dot, 1); PlotChart(lastclose + adm*0.5 + adm*1.95 , 0, green, Dot, 1); PlotChart(lastclose - adm*0.5 - adm*0.95 , 0, fuchsia, Dot, 1); // CREA AREA DI PLOTTING //zonaPlotting = CreateViewport(200, true, true); // DISEGNA I VALORI DI CALCOLO SULLA AREA DI PLOTTING (FACOLTATIVO) //PlotChart(historyRange, zonaPlotting, blue, solid, 1); //PlotChart(lastRange, zonaPlotting, red, solid, 1);
ADM by Strong. (Modificato da Webb Ellis Settembre 2015)
Codice:{*************************************** *************************************** * ADM by Strong. (Modificato da Webb Ellis Settembre 2015) * * Versione 1 fix 1 del 18/04/2014 * * Filtro ingressi ATTIVO * **************************************** **************************************} Var: newDay(false), // CAMBIO GIORNO numDay(0), numDay10(0), // STORICO GIORNI PER CALCOLO ADM lastRange,lastClose,HistoryRange,History Close,historyrange10,historyclose10, // VALORI END OF DAY num(0),num10(0),den(0),den10(0),adm(0),S TORICO_ADM(26), ADM10(10),DIF(0), PRICEBREAK(0),pricebreak1(0), // ADM targetLong(0),targetShort(0), // TARGET X USCITA stopLossLong(0),stopLossShort(0), // STOPLOSS flagLong(false),flagShort(false), // SINGOLA OPERAZIONE GIORNALIERA buf, // TEMPORANEA zonaPlotting; // // ************************ CALCOLO INDICATORE ADM ***************************** // // AGGIUNGO CALCOLO PRICEBREAK newDay=GetValues (days, 1, buf,buf,buf,buf); if newDay then // FLAG PER GESTIRE UNA OPERAZIONE LONG E SHORT AL GIORNO flagLong=true; flagShort=true; lastRange=EOD.R[1]; lastClose=EOD.C[1]; num = num + lastRange*lastClose; den = den + lastClose; num10 = num10 + lastRange*lastClose; den10 = den10 + lastClose; // GESTIONE DEL NUMERO DI GIORNI PER IL CALCOLO DELL'INDICATORE if numDay >= STORICO_ADM then historyRange=EOD.R[STORICO_ADM]; //adm 26 gg historyClose=EOD.C[STORICO_ADM]; num = num - historyRange*historyClose; den = den - historyClose; endif; // CALCOLO ADM adm = num/den; inc(numDay); // GESTIONE DEL NUMERO DI GIORNI PER IL CALCOLO DELL'INDICATORE da 10gg if numDay10 >= adm10 then historyRange10=EOD.R[adm10]; //adm 10gg historyClose10=EOD.C[adm10]; num10 = num10 - historyRange10*historyClose10; den10 = den10 - historyClose10; endif; // CALCOLO ADM adm10 = num10/den10; inc(numDay10); Pricebreak = 0.266+(0.266*(adm10-adm)/adm); //per long Pricebreak1 = 0.382+(0.382*(adm10-adm)/adm); // per short endif; // // ************************ LONG **************************************** ******* // if LastBar = false and adm > 0 and flagLong and positionlong = false then // FILTRO SUGLI INGRESSI // if (C>H[1] or B[1]) and W and C > lastclose+ (0.382*adm) then //if (C > lastclose + (0.5*adm)) then // if C > C[1]+ (0.382*adm) then if (C > lastclose + (pricebreak*adm)) and (t>0959) // si entra dalle 10 in poi // and (C<lastclose + adm*pricebreak + adm*0.45) //minore del TP1 and C>C[1] then //in crescendo colorbar(green); // CancelExitLong("target 0.5"); enterlong(nextBar,atopen); stopLossLong = 0.5 * adm; targetLong = adm * 0.5; flagLong = false; endif; endif; SECTION_EXITLONG: // STOPLOSS DINAMICO //exitlong(NextBar,positionvaluethisbar + targetLong , limit, 3 , "Target 0.5"); // STOPLOSS STATICO // if C < positionvaluethisbar - stopLossLong then //exitlong(nextbar,atopen); //endif; // USCITA A FINE GIORNATA //if t = 1700 then // exitlong(bar,atclose); // endif; // if C > (lastclose + adm*0.266 + adm*0.95) then //uscita al TP2 // exitlong(bar,atclose); // endif; END_SECTION // // ************************ SHORT **************************************** ****** // if LastBar = false and adm > 0 and flagShort < 1 and positionshort = false then // FILTRO SUGLI INGRESSI // if (C < L[1] or W[1]) and B and C < lastclose - (0.382*adm) then //if (C < lastclose - (0.5*adm)) then //if C < C[1] - (0.382*adm) then if (C < lastclose - (pricebreak1*adm)) and (t>0959) //oltre le 10 //and (C>(lastclose - adm*pricebreak1 - adm*0.45)) //maggiore del tp1 and C<C[1] then // in decrescita colorbar(red); //CancelExitshort("Target 0.5"); entershort(nextBar,atopen); stopLossShort = 0.5 * adm; targetShort = adm * 0.5; flagSHort=false; endif; endif; SECTION_EXITSHORT: //STOPLOSS DINAMICO // exitshort(NextBar, positionvaluethisbar - targetShort, limit, 3, "Target 0.5"); //STOPLOSS STATICO //if C > positionvaluethisbar + stopLossShort then //exitshort(nextbar,atopen); //endif; // USCITA A FINE GIORNATA //if t = 1700 then // exitshort(bar,atclose); //endif; // uscita per TP1 //if C < (lastclose - adm*0.266 - adm*0.95) then //uscita al TP2 // exitshort(bar,atclose); // endif; END_SECTION // // ************************ PLOTTING **************************************** *** // // DISEGNA I VALORI DI INGRESSO SUL GRAFICO PRINCIPALE PlotChart(lastclose + adm*pricebreak, 0, lime, solid, 1); PlotChart(lastclose - adm*pricebreak1, 0, red, solid, 1); PlotChart(lastclose + adm*pricebreak + adm*0.45 , 0, green, Dot, 1); PlotChart(lastclose - adm*pricebreak1 - adm*0.45 , 0, fuchsia, Dot, 1); PlotChart(lastclose + adm*pricebreak + adm*0.95 , 0, green, Dot, 1); PlotChart(lastclose - adm*pricebreak1 - adm*0.95 , 0, fuchsia, Dot, 1); PlotChart(lastclose + adm*pricebreak + adm*1.95 , 0, green, Dot, 1); PlotChart(lastclose - adm*pricebreak1 - adm*1.95 , 0, fuchsia, Dot, 1); // CREA AREA DI PLOTTING //zonaPlotting = CreateViewport(200, true, true); // DISEGNA I VALORI DI CALCOLO SULLA AREA DI PLOTTING (FACOLTATIVO) //PlotChart(historyRange, zonaPlotting, blue, solid, 1); //PlotChart(lastRange, zonaPlotting, red, solid, 1);
ciao ferro, sarebbe il 131 ma va bene lo stesso
ferro domani si scende
perchè ho aperto thread ???
perchè ho aperto thread ???
sp sull'orlo del..
daje na spinta, Nto....
perchè ho aperto thread ???
mercato drogatissimo .... domani giu di 700 punti ...
non esagerare 22200 va bene