Rappresentazione grafica distibuzione valori (MODA)

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #212234 quote
    effegi
    Participant
    Senior

    Salve. Per chi può essere interessato, condivido questo semplice codice per analizzare in modo grafico la distribuzione dei valori di qualche variabile di interesse, cosa che trovo utile quando si ricerca parametri di settings per indicatori o trading systems.
    Non sono un matematico, ma cercavo qualcosa di equivalente alla MODA che potesse aiutare a fare statistiche in modo veloce, dando immediatamente idea della frequenza con cui si presentano determinati valori. Può servire solo per valori NORMALIZZATI e poco per valori assoluti (valori positivi>0)
    Ho escluso dal calcolo la candela 0 in quanto ancora in formazione. Per andare oltre le 500 candele modificare CalculateOnLastBars.
    Inserire la variabile di interesse come VIA nel timeframe desiderato (per es, la distribuzione della differenza fra close e la sua media a 50 periodi, il valore dello stocastico, ecc)

    Esempio #1: distribuzione range barra giornaliera in % rispetto all’ATR14 daily, nelle ultime 200 candele, nel range 0-200%, diviso a step del 25%
    Esempio #2: distribuzione range barra giornaliera in % rispetto all’ATR14 daily, nelle ultime 400 candele, nel range 0-200%, diviso a step del 5%
    Esempio #3: distrubuzione del valore di RSI14 su barre 15M, nelle ultime 300 candele, nel range 0-100, diviso a step di 10

    PS: Ho provato a pubblicare l’indicatore in libreria, ma non funzionano i pulsanti per aggiungere il file itf e gli screenshot

     

    //T.F. 27-03-2023 - MODA Indicator
    //Sharing on ProRealCode
    DEFPARAM CalculateOnLastBars = 500
    DEFPARAM DRAWONLASTBARONLY = true
    
    //Parameters:
    //CDB=200  //Candle Back
    //NOB=20   //Number Of Bands
    //BW=10    //Band Width
    //VZOOM=5  //Vertical Zoom - for graphics only
    
    //Variable in Analysis - 1
    rangeD=range
    AtrD=AverageTrueRange[14](close)
    rangeP=rangeD/atrD*100
    
    //Variable in Analysis - 2
    myrsi=RSI[14](close)[1]
    
    
    //MODA
    VIA=Rangep //Variable in analysis - 1
    rem VIA=myrsi //Variable in analysis - 2
    
    offset=Highest[30](high)+200*pipsize //for graphics only
    MaxCOVINB=0 //for graphics only
    
    if dayofweek=currentdayofweek then //to reduce calculation time
    for i=1 to NOB do
    COVINB=0 //Count Of Values in Band
    for z=1 to CDB do
    if VIA[z]>=(BW*(i-1)) and VIA[z]<(BW*i) then
    COVINB=COVINB+1
    endif
    next
    bwx=BW*i //for graphics only
    drawpoint(barindex-i,COVINB*pipsize*VZOOM+offset,2) coloured(0,0,200)  //Y point
    drawtext("#COVINB#",barindex-i,COVINB*pipsize*VZOOM+30*pipsize+offset) //Y value
    drawtext("#BWx#>",barindex-i,offset-30*pipsize) //X scale
    If COVINB>MaxCOVINB THEN //for graphics only
    MaxCOVINB=COVINB
    ENDIF
    next
    drawrectangle (barindex,offset,barindex-NOB-1,MaxCOVINB*pipsize*VZOOM+50*pipsize+offset) coloured(0,0,200)
    drawtext ("MODA - #NOB#Bands - #BW#Bandwidth - On last #CDB#Candles", barindex-round(NOB/2)-1,MaxCOVINB*pipsize*VZOOM+70*pipsize+offset)
    //Value Table for OCR - Optional
    for i=1 to CDB do
    xx=round(via[i],1)
    drawtext ("C#i#= #xx#", barindex,low-i*20*pipsize-10*pipsize)
    next
    endif
    
    return
    
    EX1-RangeDax-200CDB-15NOB-25BW.jpg EX1-RangeDax-200CDB-15NOB-25BW.jpg EX2-RangeDax-400CDB-40NOB-5BW.jpg EX2-RangeDax-400CDB-40NOB-5BW.jpg EX3-RSI-Dax-15m-300CDB-10NOB-10BW.jpg EX3-RSI-Dax-15m-300CDB-10NOB-10BW.jpg TF-IN_Moda_V0.itf
    #212241 quote
    robertogozzi
    Moderator
    Master

    Non essendo un matematico neppure io, puoi spiegarmi cosa significa MODA?

    In ogni caso, grazie per avere condiviso la tua idea.

    #212257 quote
    effegi
    Participant
    Senior

    Mi perdonino i veri matematici per la spiegazione semplicistica: la MODA dovrebbe dare l’idea di quale (o quali)  siano stati i valori più frequenti in una serie di dati. Quello che interessava a me era una rappresentazione grafica in stile “volume profile” per analizzare in modo automatico quanto frequenti siano stati alcuni valori in un set di variabili analizzando un pezzo più o meno lungo di storia passata – la “probabilità”, con tutti i limiti del caso.

    https://it.wikipedia.org/wiki/Moda_(statistica)

    In modo grafico, veloce e senza usare excel, cambiando solo i parametri dell’indicatore e il pezzo di codice che calcola la variabile da analizzare.

    Nell’esempio 1 di cui sopra, analizzare le ultime 200 candele daily DAX e capire quante stiano nell’intervallo fra 0-25% rispetto all’ATR14, quanto fra 25-50%, ecc

    Nell’esempio 2, uguale: analizzare le ultime 400 candele daily DAX e verificare la frequenza con cui capitano nell’intervallo fra 0-5%, 5-10%, 10-15% ecc rispetto all’ATR14

    Nell’esempio 3,  analizzare le ultime 300 candele 15M DAX e verificare la frequenza con cui l’RSI14 capiti nell’intervallo fra 0-10, 10-20, 20-30, ecc. (l’RSI14 del dax 15M, nelle ultime 300 candele 15M, solo una volta è stato>70 e 19 volte <30. Nelle rimanenti 280 candele è rimasto nella fascia 30-70)

    Sostituendo nella variabile VIA qualsiasi cosa di intenda analizzare nel tempo (un oscillatore, un indicatore, un pezzo di calcolo in un codice personalizzato), si può vedere la rappresentazione grafica di quanto sono stati frequenti i valori di interesse.

    Ad esempio: quali valori di close-sma50 nelle ultime XX candele nel timeframe YY sono stati più frequenti, quante volte sia stato superato il valore ZZ, eccetera.

    Buona serata 🙂

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

Rappresentazione grafica distibuzione valori (MODA)


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
effegi @effegi Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by effegi
2 years, 11 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 03/27/2023
Status: Active
Attachments: 4 files
Logo Logo
Loading...