Mean reverting strategy

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #235320 quote
    Marcfarm
    Participant
    New

    Buongiorno volevo codificare uno screener che dato un paniere di asset con carattere mean reverting mi vada a selezionare come primo step i 6 più forti per valore percentuale a 12 mesi e in seconda battuta i 3 più deboli per variazione percentuale nell’ultimo mese.

    #235325 quote
    Marcfarm
    Participant
    New

    Naturalmente mi deve restituire solamente i 3 più deboli all’interno di uno scenario di forza di lungo periodo

    #235330 quote
    robertogozzi
    Moderator
    Master

    Cosa intendi con la frase “con carattere mean reverting“?  Puoi fare un esempio?

    Perché possono essere mean reverting quando si verifica un certo pattern fuori dalle Bande di Bollinger, o altro…

    #235333 quote
    Marcfarm
    Participant
    New

    Sono io che l’ho chiamata mean reverting perché va a cercare la debolezza in un contesto di forza di più lungo periodo. E’ una strategia di investing, non di trading, opera sui settori dell’Sp500, ogni fine mese va a cercare i 3 settori più deboli in un contesto rialzista e si posiziona su questi per il mese seguente. Quindi lo screener dovrebbe cercare i 6 più forti per valore percentuale a 12 mesi e poi restituirmi i 3 più deboli per variazione percentuale nell’ultimo mese. Non ci sono indicatori di analisi tecnica,  ma solo il valore percentuale a 12 mesi prima e a 1 mese poi. Spero di essere stato chiaro.    Grazie

    #235336 quote
    Marcfarm
    Participant
    New

    Quindi prima cerca i 6 settori che sono cresciuti di più a 12 mesi, di questi 6 cerca i 3 settori che sono cresciuti meno nell’ultimo mese

    #235350 quote
    Iván González
    Moderator
    Master

    Puoi usare questo screener:

    roc12M = roc[252](close)
    roc1M = roc[21](close)
    
    screener(roc12M as "%12M", roc1M as "%1M")

    Prima ordini l'elenco per %12 e poi per %1M

    robertogozzi thanked this post
    #235352 quote
    Iván González
    Moderator
    Master

    Nell'immagine puoi vedere cosa intendo

    robertogozzi thanked this post
    2024-07-17_09-09.png 2024-07-17_09-09.png
    #235412 quote
    Marcfarm
    Participant
    New

    Perfetto grazie

    #235797 quote
    Marcfarm
    Participant
    New

    Grazie un’ultima cosa:

    quando definisco i vari ROC su diversi orizzonti temporali (12, 6, 3 e 1 mese) è meglio utilizzare il timeframe mensile in questo modo:

    Timeframe(Monthly)
    roc12 = ROC[12](close)
    roc6  = ROC[6](close)
    roc3  = ROC[3](close)
    roc1 = ROC[1](close)
    oppure il giornaliero come sotto?
    Timeframe(Daily)
    roc12 = ROC[252](close)
    roc6  = ROC[126](close)
    roc3  = ROC[63](close)
    roc1 = ROC[21](close)
    #235802 quote
    robertogozzi
    Moderator
    Master

    Se desideri comunque usare come riferimento i dati mensili, meglio usare 1 mese che 21 giorni, perché non sempre 21 giorni corrispondono ad 1 mese.

    Se decidessi di usarli entrambi (anche per verificare le differenze), devi usare nomi diversi per i vari timeframe, ad esempio basta che tu aggiunga una lettera ai nomi del Daily (es.: Roc12d, invece di Roc12).

    Iván González thanked this post
    #237897 quote
    Marcfarm
    Participant
    New

    Le ripongo la domanda di cui sopra ma con l’utilizzo di prorealtime end of day (quindi senza i dati in tempo reale). Siccome con i dati di fine giornata si è indietro di una barra, quando in uno screener definisco i vari ROC su diversi orizzonti temporali (12, 6, 3 e 1 mese) è meglio utilizzare il timeframe mensile in questo modo:

    Timeframe(Monthly)
    roc12 = ROC[12](close)
    roc6  = ROC[6](close)
    roc3  = ROC[3](close)
    roc1 = ROC[1](close)
    oppure il giornaliero come sotto?
    Timeframe(Daily)
    roc12 = ROC[252](close)
    roc6= ROC[126](close)
    roc3= ROC[63](close)
    roc1 = ROC[21](close)
    Mi verrebbe da pensare che senza i dati in tempo reale, se lo screener non considera l’ultima barra, sarebbe meglio utilizzare il timeframe giornaliero, è corretto? Altrimenti c’è una soluzione migliore?
    #237926 quote
    robertogozzi
    Moderator
    Master

    E’ valida la risposta data nel post https://www.prorealcode.com/topic/mean-reverting-strategy-2/#post-235802, in quanro il timeframe mensile è più preciso dei singoli timeframe giornalieri per calcolare i dati mensili.

    #237927 quote
    Marcfarm
    Participant
    New

    Grazie,  quindi utilizzando il timeframe mensile end of day e operando su borsa italiana quando posso ritenere chiusa la candela mensile per far girare lo screener? Dopo le 18 o la mezzanotte dell’ultimo giorno di apertura della borsa del mese, oppure dopo le 18 o la mezzanotte dell’ultimo giorno del mese?

    #237933 quote
    robertogozzi
    Moderator
    Master

    Devi provare, oppure chiedere a ProrealTime, so che i dati non vengono aggiornati immediatamente alla chiusura della candela, credo qualche ora dopo (forse l’indomani mattina).

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

Mean reverting strategy


ProScreener: Scansione Mercati & Screener

New Reply
Author
author-avatar
Marcfarm @marcfarm Participant
Summary

This topic contains 13 replies,
has 3 voices, and was last updated by robertogozzi
1 year, 5 months ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 07/16/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...