sma200 sopra e sotto prezzo

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #81815 quote
    MuadDib90
    Participant
    New

    Salve a tutti! Sto programmando da poco e ho scritto questo semplice codice a scopo didattico.

    sma200 = AVERAGE[200]
    myClose = Close
    
    //ritorna 1 se il prezzo è sopra la SMA200, -1 se sotto
    IF myClose > sma200 THEN
    filtro = 1
    ELSIF myClose < sma200 THEN
    filtro = -1
    ENDIF
    
    SCREENER[filtro](filtro AS "Trend")

     

    Il mio problema è che non riesco a capire come mai lo screener mi da solo i prezzi che stanno sopra la SMA200 e non quelli che stanno sotto.
    Grazie 🙂

    Screenshot_20181003_074834.png Screenshot_20181003_074834.png
    #81817 quote
    robertogozzi
    Moderator
    Master

    Perché ProScreener ha un limite di 50 risultati in demo e 100 in reale e sono troppi.

    Questo tuo screener non li filtra, li suddivide solo in due gruppi, quindi vedi solo i primi 50.

    Invece di usare > e < usa CROSSES OVER e CROSSES UNDER e vedrai che la lista si accorcia,

    #81878 quote
    MuadDib90
    Participant
    New

    Ho provato a fare come dici tu, ma il risultato non cambia.

    sma200 = AVERAGE[200]
    myClose = Close
    
    //ritorna 1 se il prezzo è sopra la SMA200, -1 se sotto
    IF myClose CROSSES OVER sma200 THEN
    filtro = 1
    ELSIF myClose CROSSES UNDER sma200 THEN
    filtro = -1
    ENDIF
    
    SCREENER[filtro](filtro AS "Trend")
    
    #81912 quote
    Nicolas
    Keymaster
    Master

    Semplicemente perché ci sono troppi strumenti sopra lo SMA200 per quelli qui sotto da restituire con il limite di 50 strumenti della finestra di ProScreener. È possibile modificare / invertire i criteri di ordinamento nelle impostazioni di ProScreener.

    MuadDib90 thanked this post
    #81924 quote
    robertogozzi
    Moderator
    Master

    Come vedi dallo screenshot devi, almeno per le prove, selezionare un numero minore di strumenti, io l’ho fatto solo sulle valute e funziona (non restituisce però il -1, prova a mettere 2 al suo posto).

    Tra l’altro nella lista di ProScreener, in basso, vedi quanti elementi sono disponibili e quanti ne sono stati visualizzati, in modo da renderti conto se il tuo filtro “filtra” o meno. Se ti restituisce troppi valori significa che NON filtra a sufficienza!

    MuadDib90 thanked this post
    x-1.jpg x-1.jpg
    #82215 quote
    MuadDib90
    Participant
    New

    Grazie, se mi modifico il codice come avete detto funziona.

    sma200 = AVERAGE[200]
    myClose = Close
    
    //ritorna 1 se il prezzo è sopra la SMA200, 2 se sotto
    IF myClose CROSSES OVER sma200 THEN
    filtro = 1
    ELSIF myClose CROSSES UNDER sma200 THEN
    filtro = 2
    ENDIF
    
    SCREENER[filtro](filtro AS "Trend")
    

    Anche se non riesco a capire come mai questo strano comportamento.

    Screenshot_20181008_073503.png Screenshot_20181008_073503.png
    #82246 quote
    robertogozzi
    Moderator
    Master

    E’, come già detto, un limite di PRT che, per gli screener ha stabilito un massimo di 50 (per il demo) e 100 (per il reale) di strumenti restituiti.

    In realtà è un limite molto ampio. Una volta che tu hai 100 elementi visualizzati che rispondono alle tue richiesta, non è che APRI un’operazione semplicemente su quella condizione, ma dovrai andare a vedere il grafico per verificare l’andamento del prezzo e la formazione di particolari pattern di candele, oppure verificare divergenze, rotture o meno di supporti e resistenze o trendline. Insomma, lo screener ti serve per evidenziare qualcosa, ma poi hai una bella analisi da fare prima di aprire un eventuale posizione.

    Pensa a doverlo fare 100 volte, per ogni strumento restituito dallo Screener, impiegheresti forse anche più di un giornio e nel frattempo i dati dei primi strumenti analizzati sarebbero cambiati!

    Insomma, che senso ha avere, ad esempio, un limite di 500 strumenti elencati che NON riesci poi ad analizzare?

    Piuttosto devi fare uno screener molto selettivo che ti restituisca pochi elementi (5-10 al massimo) che ti consentano poi un’analisi accurata per un’eventuale entrata in posizione ed è questo, in fondo, lo scopo di ogni trader!

    MuadDib90 thanked this post
    #82252 quote
    MuadDib90
    Participant
    New

    Si capisco il limite di risultati in demo.
    Quello che non capisco è l’ordine dei risultati che ottengo cambiando semplicemente i valori che la variabile filtro può assumere a seconda dei casi.
    Hai ragione il codice così è inutile, serve solo a me a scopo didattico.

    #85274 quote
    nobody87
    Participant
    New

    Ciao sarebbe possibile avere il codice modificato che riporta i prezzi sopra / sotto la media a chiusura candela, nei seguenti

    time frame: 4 ore, 1 ora, 15 minuti, 3 minuti ?

     

    Infinitamente grazie!

    #85297 quote
    robertogozzi
    Moderator
    Master

    Ecco lo screener che verifica com’è la media su ognuno dei 4 TF nello stesso momento (puoi sostituire > o > con CROSS OVER/UNDER o qualunque altra condizione tu voglia):

    //   TF      4h   1h   15m   3m
    // sopra     1    1     1     1
    // sotto     2    2     2     2
    // uguale    9    9     9     9   (improbabile, ma va considerato comunque e non può
    //                                 essere zero)
    //
    // Restituirà:
    //     1111  se il prezzo sarà sopra la media in TUTTI i time frame
    //     2222  se il prezzo sarà sotto la media in TUTTI i time frame
    //     1112  se il prezzo sarà sotto la media sul 3 minuti, ma sopra negli altri
    //    oppure qualunque altra combinazione.
    //
    //    9 serve solo per fare in modo che, nel caso pressochè impossibile, che la media sia
    //      uguale al prezzo in un determinato TF, questo non venga saltato
    TIMEFRAME(4 hours)
    sma2004 = AVERAGE[200,0](close)
    Filtro4 = 9000
    IF close > sma2004 THEN
       filtro4 = 1000
    ELSIF close < sma2004 THEN
       filtro4 = 2000
    ENDIF
    //
    TIMEFRAME(1 hours)
    sma2001 = AVERAGE[200,0](close)
    Filtro1 = 900
    IF close > sma2001 THEN
       filtro1 = 100
    ELSIF close < sma2001 THEN
       filtro1 = 200
    ENDIF
    //
    TIMEFRAME(15 minutes)
    sma20015 = AVERAGE[200,0](close)
    Filtro15 = 90
    IF close > sma20015 THEN
       filtro15 = 10
    ELSIF close < sma20015 THEN
       filtro15 = 20
    ENDIF
    //
    TIMEFRAME(3 minutes)
    sma2003 = AVERAGE[200,0](close)
    Filtro3 = 9
    IF close > sma2003 THEN
       filtro3 = 1
    ELSIF close < sma2003 THEN
       filtro3 = 2
    ENDIF
    TIMEFRAME(default)
    filtro = filtro4 + filtro1 + filtro15 + filtro3
    IF filtro = 9999 THEN
       filtro = 0
    ENDIF
    SCREENER[filtro](filtro AS "TF 1/2")

    Ho dovuto usare il formato a 4 cifre perché ProScreener consente UN solo valore da usare come criterio.

    x-10.jpg x-10.jpg Il-Mio-ProScreener-SMA200.itf
    #85322 quote
    nobody87
    Participant
    New

    Grazie mille Roberto,

    è anche possibile applicare lo screener solo a certi mercati ? ad esempio solo valute, solo indici, solo azioni( solo Americane, solo Europee) ?

    Grazie ancora!

    #85325 quote
    robertogozzi
    Moderator
    Master

    Si, quando visualizzi uno Screener devi selezionarlo e scegliere un time frame di default, dopodiché puoi selezionare una lista predefinita (scegliendo gli  strumenti che preferisci) oppure puoi crearti varie liste personalizzate.

    x-11.jpg x-11.jpg
Viewing 12 posts - 1 through 12 (of 12 total)
  • You must be logged in to reply to this topic.

sma200 sopra e sotto prezzo


ProScreener: Scansione Mercati & Screener

New Reply
Author
author-avatar
MuadDib90 @muaddib90 Participant
Summary

This topic contains 11 replies,
has 4 voices, and was last updated by robertogozzi
7 years, 3 months ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 10/03/2018
Status: Active
Attachments: 6 files
Logo Logo
Loading...