Screener per azioni come sottostante di opzioni
Forums › ProRealTime forum Italiano › Supporto ProScreener › Screener per azioni come sottostante di opzioni
- This topic has 25 replies, 2 voices, and was last updated 3 years ago by Robpa0464.
-
-
09/27/2021 at 9:06 AM #178527
Buongiorno,
al fine di selezionare delle azioni come sottostante di opzioni, avrei bisogno dei seguenti 6 screener:
- rialzisti (con volatilità bassa):
- media mobile a 200 giorni inclinata positivamente, con prezzi stabilmente al di sopra della media 200, meglio se con massimi e minimi crescenti;
- media mobile a 20 giorni positivamente inclinata, che poi è stata violata dai prezzi dall’alto verso il basso segnando uno swing ribassista, ma dal quale i prezzi stanno per ripartire al rialzo;
- volatilità storica a 20 giorni sui minimi e che stia ripartendo a salire, meglio se taglia dal basso verso l’alto la volatilità a 100 giorni;
- volatilità storica a 100 giorni in discesa o piatta, pronta ad essere tagliata da quella a 20 giorni;
- volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente bassa, meglio ancora se più bassa di quella storica a 20 giorni.
2) ribassisti (con volatilità bassa):
- media mobile a 200 giorni inclinata negativamente, con prezzi stabilmente al di sotto della media 200, meglio se con massimi e minimi decrescenti;
- media mobile a 20 giorni negativamente inclinata, che poi è stata violata dai prezzi dal basso verso l’alto segnando uno swing rialzista, ma dal quale i prezzi stanno per ripartire al ribasso;
- volatilità storica a 20 giorni sui minimi e che stia ripartendo a salire, meglio se taglia dal basso verso l’alto la volatilità a 100 giorni;
- volatilità storica a 100 giorni in discesa o piatta, pronta ad essere tagliata da quella a 20 giorni;
- volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente bassa, meglio ancora se più bassa di quella storica a 20 giorni.
3) non rialzisti (con volatilità alta):
- media mobile a 200 giorni inclinata negativamente, con prezzi stabilmente al di sotto della media 200, meglio se con massimi e minimi decrescenti;
- media mobile a 20 giorni negativamente inclinata, che poi è stata violata dai prezzi dal basso verso l’alto segnando uno swing rialzista, ma dal quale i prezzi stanno per ripartire al ribasso;
- volatilità storica a 20 giorni sui massimi e che e che stia piegando verso il basso, meglio se taglia dall’alto verso il basso la volatilità a 100 giorni;
- volatilità storica a 100 giorni in salita o piatta, pronta ad essere tagliata da quella a 20 giorni;
- volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente alta, meglio ancora se più alta di quella storica a 20 giorni.
4) non ribassisti (con volatilità alta):
- media mobile a 200 giorni inclinata positivamente, con prezzi stabilmente al di sopra della media 200, meglio se con massimi e minimi crescenti;
- media mobile a 20 giorni positivamente inclinata, che poi è stata violata dai prezzi dall’alto verso il basso segnando uno swing ribassista, ma dal quale i prezzi stanno per ripartire al rialzo;
- volatilità storica a 20 giorni sui massimi e che stia piegando verso il basso, meglio se taglia dall’alto verso il basso la volatilità a 100 giorni;
- volatilità storica a 100 giorni in salita o piatta, pronta ad essere tagliata da quella a 20 giorni;
- volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente alta, meglio ancora se più alta di quella storica a 20 giorni.
5) neutrali in acquisto (con volatilità bassa):
- media mobile a 200 giorni piatta, non particolarmente inclinata in un senso piuttosto che in un altro, con prezzi che si presentano alternativamente al di sopra e al di sotto della media, formando massimi e minimi alternati né crescenti né decrescenti;
- media mobile a 20 giorni che può assumere qualsiasi inclinazione e posizione rispetto ai prezzi;
- volatilità storica a 20 giorni sui minimi e che stia ripartendo a salire, meglio se taglia dal basso verso l’alto la volatilità a 100 giorni;
- volatilità storica a 100 giorni in discesa o piatta, pronta ad essere tagliata da quella a 20 giorni;
- volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente bassa, meglio ancora se più bassa di quella storica a 20 giorni.
6) neutrali in vendita (con volatilità alta):
- media mobile a 200 giorni piatta, non particolarmente inclinata in un senso piuttosto che in un altro, con prezzi che si presentano alternativamente al di sopra e al di sotto della media, formando massimi e minimi alternati né crescenti né decrescenti;
- media mobile a 20 giorni che può assumere qualsiasi inclinazione e posizione rispetto ai prezzi;
- volatilità storica a 20 giorni sui massimi e che stia piegando verso il basso, meglio se taglia dall’alto verso il basso la volatilità a 100 giorni;
- volatilità storica a 100 giorni in salita o piatta, pronta ad essere tagliata da quella a 20 giorni;
- volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente alta, meglio ancora se più alta di quella storica a 20 giorni.
Ringrazio tanto.
Roberto Palma
09/27/2021 at 9:23 AM #178532Riguardo al secondo punto del primo screener, cosa significa “ma dal quale i prezzi stanno per ripartire al rialzo”?
O meglio, come definisci un “prezzo che sta per ripartire”?
09/27/2021 at 9:44 AM #17853809/28/2021 at 9:05 AM #178630Sono molti, te li farò in modo scaglionato.
09/28/2021 at 9:42 AM #178632ok
Quanto all’analisi del prezzo, lo screener 1 e 4 sono uguali così come rispettivamente il 2 e il 3 e il 5 e il 6.
Quanto alla volatilità il 1 e 2 e 5 f(volatilità bassa) sono uguali così come il 3, il 4 e il 6 (volatilità alta).
Ti ringrazio
09/30/2021 at 4:46 PM #178819Questo è il primo:
1. rialzisti (con volatilità bassa)12345678910111213141516171819202122// 1. rialzisti (con volatilità bassa)//N = 10 //10 periodi per considerare STABILE la posizione del prezzo sopra Sma200P = 20 //20 periodi per verificare lo swing basso di ripartenzaLB = 5 //5 periodi di osservazione (look back) per verifica del'incrocio ribassista prima della ripartenzaBull = close > openBear = close < openSma200 = average[200,0](close)L1 = summation[N](Sma200 > Sma200[1]) = N //prezzo stabilmente sopra la Sma200 per N periodiSma20 = average[20,0](close)L2 = Sma20 > Sma20[1] //Sma200 inclinata positivamenteCross = close CROSSES UNDER Sma20Swing = (min(low,low[1]) = lowest[P](low)) AND Bear[1] AND BullL3 = Swing AND summation[LB](Cross)HV100 = HistoricVolatility[100](close)HV20 = HistoricVolatility[20](close)CV100 = CALL "Volatility Chaikin"[100, 1, 10, 0]L4 = (HV20 = lowest[20](HV20)) //Volatilità storica a 20 periodi sul minimo degli ultimi 20 giorniL5 = (HV100 <= HV100[1]) //Volatilità storica a 100 periodi in discesa o piattaL6 = CV100 < HV20 //Volatilità CHAIKIN (a 100 periodi) < a quella storica a 20 periodiCond = L1 AND L2 AND L3 AND L4 AND L5 AND L6SCREENER[Cond]La volatilità implicita non c’è su ProRealTime (almeno non l’ho notata). L’ho sostituita con la Volatilità Chaikin, ma non so se può essere ugualmente valida. Se conosci un indicatore tu fammi avere un link al codice.
Per il resto ho saltato ogni tua indicazione “meglio se…“, in quanto non si può rappresentare con il codice. L’unica è se tu mi dai un valore numerico, ad esempio quando dici “pronta ad essere tagliata…“, in modo da poterla codificare.
Verifica che vada bene, altrimenti dimmi le modifiche da fare (se fattibili).
Quando questo andrà bene passerò agli altri, per non farli tutti e poi scoprire che vanno tutti corretti o cambiati.
09/30/2021 at 4:57 PM #17882110/01/2021 at 7:10 PM #178920Ciao Roberto,
quanto alla volatilità implicita pare non ci sia in Prorealtime (trattandosi di volatilità prezzata dal mercato nei premi delle opzioni quotate e rilevabile nelle piattaforme dedicate alle opzioni), pertanto non consideriamo più l’ultimo punto di ogni screener.
L’esame della volatilità implicita la farò successivamente quando esaminerò le opzioni relative alle azioni candidate dallo screener…
Quindi puoi eliminare, credo, i righi 17 e 20.
Quanto all’analisi della volatilità storica a 20 giorni, puoi considerare “meglio se taglia dal basso verso l’alto la volatilità a 100 giorni” con l’incrocio della “HV20 crosses over HV100” , come condizione alternativa (credo OR anzichè AND) alla condizione volatilità storica a 20 giorni sui minimi. Infatti come condizione alternativa, credo, aggiunga nuovi candidati anzichè creare un filtro ulteriore.
Quanto all’analisi del prezzo, la selezione può essere migliorata aggiungendo al ritracciamento del prezzo con la sfondamento della EMA 20 una ripartenza del prezzo verso l’alto anzichè con una semplice candela “bull” (così mi pare di aver capito…), con un pattern di inversione rialzista espresso come l’Engulfing bullish, l’hammer rialzista e il swing point low (ponendoli nello screener con la congiunzione OR).
Ho trovato su un articolo i seguenti codici (non so se sono giusti..):
engulfing rialzista=
C1 = range[0]>=range[1] AND close[1]<open[1] AND close[0]>open[0] AND open[0]<=close[1] AND close [0]>=open[1]
hammer rialzista=
C1 = close[1]<open[1] AND open[0]>low[0]+(range*0.66) AND close[0]>low[0] + (range*0.66) AND range[0]>abs(open-close)*4 AND low[0]<low[1]
swing point low + one white soldier (rialzista)
C1 = close[2]>open[2] AND high[2]<high[1] AND high[0]<high[1] AND close[0]<open[0] AND close[0]<low[1] AND low[2]<low[1] AND low[0]<low[1] AND low[0]<low[2] AND close[0]<open[2] AND close[0]<=high[0]-(range[1]*0.50)
Resto in attesa e spero di essere stato propositivo…
10/01/2021 at 7:18 PM #178923Scusami mi sono dimenticato …
In un trend di fondo rialzista chiaramente la EMA 20 deve essere più alta della Media mobile a 200, con i prezzi di solito anche al di sopra della Ema 20 tranne chiaramente nel caso del ritracciamento su evidenziato.
Così eliminiamo i casi di azioni con prezzi al di sotto della media mobile più lenta…
10/03/2021 at 7:08 PM #178978Potremmo inoltre considerare sempre nell’analisi del prezzo anche la condizione di esistenza di un trend rialzista con l’ADX >=20 e con +DI superiore al –DI .
Infine mi sono accorto che hai codificato la SMA 20; cortesemente se puoi considerare invece la EMA 20.
Scusami per queste aggiunte, ma sono frutto di approfondimenti al fine di migliorare il risultato della selezione.
10/05/2021 at 8:59 AM #179055Riepilogo le condizioni (solo del n. 1):
- media mobile a 200 giorni inclinata positivamente, con prezzi stabilmente al di sopra della media 200, meglio se con massimi e minimi crescenti;
- media mobile a 20 giorni positivamente inclinata, che poi è stata violata dai prezzi dall’alto verso il basso segnando uno swing ribassista, ma dal quale i prezzi stanno per ripartire al rialzo;
- volatilità storica a 20 giorni sui minimi e che stia ripartendo a salire, meglio se taglia dal basso verso l’alto la volatilità a 100 giorni;
volatilità storica a 100 giorni in discesa o piatta, pronta ad essere tagliata da quella a 20 giorni;
volatilità implicita (sulle opzioni ATM della scadenza in arrivo) relativamente bassa, meglio ancora se più bassa di quella storica a 20 giorni; - Quindi puoi eliminare, credo, i righi 17 e 20
- Quanto all’analisi della volatilità storica a 20 giorni, puoi considerare “meglio se taglia dal basso verso l’alto la volatilità a 100 giorni” con l’incrocio della “HV20 crosses over HV100” , come condizione alternativa (credo OR anzichè AND) alla condizione volatilità storica a 20 giorni sui minimi
- Ho trovato su un articolo i seguenti codici (non so se sono giusti..):
a) engulfing rialzista = range[0]>=range[1] AND close[1]<open[1] AND close[0]>open[0] AND open[0]<=close[1] AND close [0]>=open[1]
b) hammer rialzista = close[1]<open[1] AND open[0]>low[0]+(range*0.66) AND close[0]>low[0] + (range*0.66) AND range[0]>abs(open-close)*4 AND low[0]<low[1]
c) swing point low + one white soldier (rialzista) = close[2]>open[2] AND high[2]<high[1] AND high[0]<high[1] AND close[0]<open[0] AND close[0]<low[1] AND low[2]<low[1] AND low[0]<low[1] AND low[0]<low[2] AND close[0]<open[2] AND close[0]<=high[0]-(range[1]*0.50) - In un trend di fondo rialzista chiaramente la EMA 20 deve essere più alta della Media mobile a 200, con i prezzi di solito anche al di sopra della Ema 20 tranne chiaramente nel caso del ritracciamento su evidenziato
- Potremmo inoltre considerare sempre nell’analisi del prezzo anche la condizione di esistenza di un trend rialzista con l’ADX >=20 e con +DI superiore al –DI
- Infine mi sono accorto che hai codificato la SMA 20; cortesemente se puoi considerare invece la EMA 20.
Per quanto riguartda l’engulfing si dovrebbero considerare solo i CORPI delle candele, non anche le ombre, certamente così può essere più restrittivo.
Cosa intendi con “tranne chiaramente nel caso del ritracciamento su evidenziato“? Non ho trovato l’accenno al ritracciamento.
Ho modificato la regola della Sma200 perché avevo messo la condizione che fosse stabilmente cresecente, ma non avevo messo la verifica deio prezzi nel primo codice.
1. rialzisti123456789101112131415161718192021222324252627282930// 1. rialzisti (con volatilità bassa)//N = 5 //5 periodi per considerare STABILE la posizione del prezzo sopra Sma200P = 10 //10 periodi per verificare lo swing basso di ripartenzaLB = 5 //5 periodi di osservazione (look back) per verifica del'incrocio ribassista prima della ripartenzaBull = close > openBear = close < openSma200 = average[200,0](close)L1 = summation[N]((Sma200 > Sma200[1]) AND (close > Sma200)) = N //Sma200 inclinata positivamente prezzo stabilmente sopra di essa per N periodiEma20 = average[20,1](close)L2 = summation[N]((Ema20 > Ema20[1]) AND (close > Ema20)) = N //Ema20 inclinata positivamente prezzo stabilmente sopra di essa per N periodiCross = close CROSSES UNDER Ema20Swing = (min(low,low[1]) = lowest[P](low)) AND Bear[1] AND BullL3 = Swing AND summation[LB](Cross)HV100 = HistoricVolatility[100](close)HV20 = HistoricVolatility[20](close)L4 = (HV20 = lowest[20](HV20)) //Volatilità storica a 20 periodi sul minimo degli ultimi 20 giorniL5 = (HV100 <= HV100[1]) //Volatilità storica a 100 periodi in discesa o piattaL6 = HV20 CROSSES OVER HV100L7 = Adx[14] >= 20L8 = DIplus[14] > DIminus[14]//Engulf = range[0]>=range[1] AND close[1]<open[1] AND close[0]>open[0] AND open[0]<=close[1] AND close [0]>=open[1]//Hammer =close[1]<open[1] AND open[0]>low[0]+(range*0.66) AND close[0]>low[0] + (range*0.66) AND range[0]>abs(open-close)*4 AND low[0]<low[1]//SwingL = close[2]>open[2] AND high[2]<high[1] AND high[0]<high[1] AND close[0]<open[0] AND close[0]<low[1] AND low[2]<low[1] AND low[0]<low[1] AND low[0]<low[2] AND close[0]<open[2] AND close[0]<=high[0]-(range[1]*0.50)//Cond = L1 AND L2 AND L3 AND (L4 OR L6) AND L5 AND L7 AND L8 AND Engulf AND Hammer AND SwingLSCREENER[Cond]10/05/2021 at 9:01 AM #179056Anzi, il tuo rigo sul ritracciamento l’ho vito, ma non ho capito cosa intendi.
10/05/2021 at 12:41 PM #179067Per ritracciamento del prezzo intendo dire il pullback sulla EMA 20 (ossia la violazione delle EMA 20 del prezzo dall’alto verso il basso con successiva ripartenza).
provo a testare lo screener.
Inoltre per conferma (non sono un programmatore…): i pattern di inversione codificati (engulfing, hammer e swing point low) non dovrebbero essere alternativi ed indicare la ripartenza del trend rialzista dopo il pullback??
10/05/2021 at 12:59 PM #17907010/05/2021 at 2:40 PM #179087Ho messo i tuoi codici senza verificarli, penso vadano vene a parte l’engulfing. Se non vanno bene puoi variarli.
Il swing della rioga 13 si ha quando una candela inverte un’altra, in questo caso una rialzista dopo una ribassista, in corrispondenza di un minimo degli ultimi N periodi.
Come deve essere applicato il ritracciamento?
Forse è opportuna una chiarificazione dei vari passaggi. Tieni presente che il codice lavorasulla candela CORRENTE, quindi occorre verificare ciò che è accaduto PRIMA o durante. Quindi occorre stabilire quando una certa cosa deve essere accaduta, rispetto ad adesso.
-
AuthorPosts
Find exclusive trading pro-tools on