Pagina 1 di 2 12 Ultima
Risultati da 1 a 10 di 11
  1. #1

    Data Registrazione
    Sep 2013
    Località
    Monza
    Messaggi
    186

    Come funziona il vettoriale sull'ultima barra ?

    Salve,
    per cortesia vorrei capire meglio come funziona il vettoriale, in particolare sull'ultima barra.
    Mi è chiaro che prima di passare alla linea di codice successiva ogni linea viene calcolata per tutte
    le barre presenti sul grafico.
    Ma arrivati all'ultima barra, ogni volta che arriva un nuovo tick che succede ?
    Viene calcolato e aggiornato solo l'ultimo valore di ogni vettore ?
    -
    Inoltre, supponendo di aver creato il nostro vettore di periodo dinamico e di poterlo in futuro passare, per esempio,
    alla funzione SuperTrend, come sarebbe utilizzato da quest'ultima ?
    In teoria, stando al funzionamento di cui sopra, alla funzione SuperTrend dovrebbe essere passato solo l'ultimo
    valore del vettore per quanto riguarda le barre storiche, (giusto ?)
    e l'ultimo valore calcolato tick by tick nella fase di realtime.
    Questo dovrebbe portare a dei valori di backtest completamente diversi da quelli realtime
    Il ragionamento è corretto ???
    Sicuramente un motivo in più per creare un playback almeno barra per barra.
    Saluti
    Massimo

  2. #2
    L'avatar di Francario Massimiliano
    Data Registrazione
    Jul 2008
    Messaggi
    1,002
    Salve Massimo,
    Citazione Originariamente Scritto da maxmax68 Visualizza Messaggio
    Salve,
    per cortesia vorrei capire meglio come funziona il vettoriale, in particolare sull'ultima barra.
    Mi è chiaro che prima di passare alla linea di codice successiva ogni linea viene calcolata per tutte
    le barre presenti sul grafico.
    Ma arrivati all'ultima barra, ogni volta che arriva un nuovo tick che succede ?
    Viene calcolato e aggiornato solo l'ultimo valore di ogni vettore ?
    -
    Inoltre, supponendo di aver creato il nostro vettore di periodo dinamico e di poterlo in futuro passare, per esempio,
    alla funzione SuperTrend, come sarebbe utilizzato da quest'ultima ?
    In teoria, stando al funzionamento di cui sopra, alla funzione SuperTrend dovrebbe essere passato solo l'ultimo
    valore del vettore per quanto riguarda le barre storiche, (giusto ?)
    e l'ultimo valore calcolato tick by tick nella fase di realtime.
    Questo dovrebbe portare a dei valori di backtest completamente diversi da quelli realtime
    Il ragionamento è corretto ???
    Sicuramente un motivo in più per creare un playback almeno barra per barra.
    Saluti
    Massimo
    per prima cosa, dalla attuale release 0.8.10.17, tutte le funzioni di analisi tecnica di EasyScript sono in grado di accettare anche vettori o variabili per i parametri relativi a periodi di tempo.

    All'arrivo di un nuovo tick vengono ricalcolati tutti i valori dall'inizio, come se fosse la prima volta che quel calcolo viene eseguito. In termini di implementazione, questo ci consente di avere un unico insieme di funzioni di calcolo, al posto di averne 2, una per il calcolo iniziale ed una per il solo tick real-time. In termini di performance, la differenza è comunque ridotta data la natura del calcolo relativo esclusivamente all'ultima barra, che è inerentemente seriale e richiede comunque di accedere ad un hash-map con i dati calcolati in precedenza.

    Max Francario

  3. #3

    Data Registrazione
    Sep 2013
    Località
    Monza
    Messaggi
    186
    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    per prima cosa, dalla attuale release 0.8.10.17, tutte le funzioni di analisi tecnica di EasyScript sono in grado di accettare anche vettori o variabili per i parametri relativi a periodi di tempo.
    Salve Max,
    ho provato con il seguente esempio, ma purtroppo non funziona.
    Mi scrive:
    Error: "A" is an invalid value for "periods" argument of SUPERTREND.
    Ho sbagliato qualcosa ?
    # FUNZIONE PERIODO_DINAMICO
    
    #
    
    
    
    INPUTS: @MaxPeriodo(60), @MinPeriodo(5), @PeriodoVolatilita(30)
    
      
    
    SET HistVol = SDV(CLOSE , @PeriodoVolatilita , 1, SIMPLE)
    
     
    
    SET YestHistVol = REF(HistVol, 1)
    
     
    
    SET DeltaHistVol1 = (HistVol - REF(HistVol, 1)) / HistVol
    
     
    
    SET DeltaHistVol = MINOF(DeltaHistVol1, 0.1)
    
     
    
    SET vPeriodoDinamico = BARLOOP (20, 1, MULTIPLY, (1 - DeltaHistVol), @MinPeriodo, @MaxPeriodo)
    
     
    
    SET PERIODO_DINAMICO = FLOOR(vPeriodoDinamico)
    # Indicatore SUPERTREND DINAMICO
    
    #
    
    
    
    INPUTS: @MaxPeriodo(60), @MinPeriodo(5), @PeriodoVolatilita(30)
    
     
    
    SET A = PERIODO_DINAMICO(@MaxPeriodo, @MinPeriodo, @PeriodoVolatilita)
    
    SET B = SuperTrend( A , 5)
    
    
    
    SET PLOT1 = B

  4. #4

    Data Registrazione
    Sep 2013
    Località
    Monza
    Messaggi
    186
    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    All'arrivo di un nuovo tick vengono ricalcolati tutti i valori dall'inizio, come se fosse la prima volta che quel calcolo viene eseguito.
    Tenendo buono l'esempio di codice del post precedente, e supponendo che sia corretto, la mia domanda era: -Ad ogni tick cosa succede ?
    Nell'indicatore SET A = PERIODO_DINAMICO(...) calcola il valore del vettore A per tutti i valori di barra,
    e nell'ultima barra calcola il valore per l'ultimo tick.
    Quindi arriviamo alla line successiva di codice dove viene passato il vettore A al SUPERTREND.
    Che valore viene passato ?
    Per la barra 1 il valore 1, per la barra 2 il valore 2, e così via fino all'ultimo tick,
    oppure viene passato solo l'ultimo valore calcolato sull'ultimo tick ?
    E' questo che vorrei capire !!!
    Grazie
    Saluti
    Massimo

  5. #5
    L'avatar di Francario Massimiliano
    Data Registrazione
    Jul 2008
    Messaggi
    1,002
    Salve Massimo,
    Citazione Originariamente Scritto da maxmax68 Visualizza Messaggio
    Salve Max,
    ho provato con il seguente esempio, ma purtroppo non funziona.
    Mi scrive:
    Error: "A" is an invalid value for "periods" argument of SUPERTREND.
    Ho sbagliato qualcosa ?
    a livello di sintassi no.
    Attenzione però che il vettore che viene passato alla funzione SuperTrend deve contenere dei valori validi per il calcolo.
    Nel caso specifico, il parametro Periods deve contenere valori non inferiori a 2 e non maggiori del numero massimo di barre disponibili, altrimenti compare comunque quel messaggio di errore.
    Specialmente durante la verifica di uno script, è possibile incorrere in situazioni non previste, ad esempio ottenere uno zero dove invece ci si aspetta un valore positivo. Infatti in questa fase vengono generate delle serie storiche fittizie alle quali viene applicato lo script al solo scopo di verificarne la correttezza, e queste potrebbero portare lo script alla condizione di errore che ha incontrato.

    Max Francario

  6. #6
    L'avatar di Francario Massimiliano
    Data Registrazione
    Jul 2008
    Messaggi
    1,002
    Salve Massimo,
    Citazione Originariamente Scritto da maxmax68 Visualizza Messaggio
    Tenendo buono l'esempio di codice del post precedente, e supponendo che sia corretto, la mia domanda era: -Ad ogni tick cosa succede ?
    Nell'indicatore SET A = PERIODO_DINAMICO(...) calcola il valore del vettore A per tutti i valori di barra,
    e nell'ultima barra calcola il valore per l'ultimo tick.
    Quindi arriviamo alla line successiva di codice dove viene passato il vettore A al SUPERTREND.
    Che valore viene passato ?
    Per la barra 1 il valore 1, per la barra 2 il valore 2, e così via fino all'ultimo tick,
    oppure viene passato solo l'ultimo valore calcolato sull'ultimo tick ?
    E' questo che vorrei capire !!!
    Grazie
    Saluti
    Massimo
    ogni barra ha il suo valore: per il calcolo della funzione SuperTrend sulla barra 10 viene utilizzato il valore di A per quella stessa barra se c'è, altrimenti viene utilizzato il valore finale di A.
    Per fare un esempio, se scrivo:
    SET A = EMA(CLOSE, 21)
    per le prime 21 barre non esiste un valore valido per il vettore A. Pertanto, se avessi questa riga:
    SET B = SUPERTREND(A, 5)
    per le prime 21 barre, il calcolo del supertrend userebbe il valore finale di A, dalla 22° in poi andrebbe ad usare i valori di A barra per barra.

    Max Francario

  7. #7
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,630
    Citazione Originariamente Scritto da maxmax68 Visualizza Messaggio
    Salve Max,
    ho provato con il seguente esempio, ma purtroppo non funziona.
    Mi scrive:
    Error: "A" is an invalid value for "periods" argument of SUPERTREND.
    Ho sbagliato qualcosa ?

    [/CODE]
    Ciao maxmax68, secondo me hai ridondato troppo la variabile A con l'aggiunta delle parentesi per cui andrebbe scritta semplicemente in questo modo:

    SET A = PERIODO_DINAMICO

    così facendo sembra funzionare e l'indicatore viene correttamente plottato sul grafico

    quindi il codice completo diventa :

    INPUTS: @MaxPeriodo(60), @MinPeriodo(5), @PeriodoVolatilita(30)
     
       
     
    SET HistVol = SDV(CLOSE , @PeriodoVolatilita , 1, SIMPLE)
     
      
     
    SET YestHistVol = REF(HistVol, 1)
     
      
     
    SET DeltaHistVol1 = (HistVol - REF(HistVol, 1)) / HistVol
     
      
     
    SET DeltaHistVol = MINOF(DeltaHistVol1, 0.1)
     
      
     
    SET vPeriodoDinamico = BARLOOP (20, 1, MULTIPLY, (1 - DeltaHistVol), @MinPeriodo, @MaxPeriodo)
     
      
     
    SET PERIODO_DINAMICO = FLOOR(vPeriodoDinamico)
    
    
    SET A = PERIODO_DINAMICO
    
    
    SET B = SuperTrend( A , 5)
     
     
     
    SET PLOT1 = B
    
    
    
    SET PLOTCOLOR1 = IF(PLOT1 > CLOSE, COLOR_LIGHT_RED, COLOR_LIGHT_GREEN)
    Clicca sull'immagine per ingrandirla

Nome: St dinamico.jpg
Visite: 23
Dimensione: 89.2 KB
ID: 12589

    Apo
    Ultima modifica di Apocalips; 06-11-13 alle 14:48
    ....non si desidera ciò che è facile ottenere (Ovidio)....

  8. #8

    Data Registrazione
    Sep 2013
    Località
    Monza
    Messaggi
    186
    ogni barra ha il suo valore: per il calcolo della funzione SuperTrend sulla barra 10 viene utilizzato il valore di A per quella stessa barra se c'è, altrimenti viene utilizzato il valore finale di A.
    Chiarissimo, grazie.
    Ottimo. Stasera provo.

    A proposito di Supertrend ne approfitto per richiederne un completamento.
    Manca la possibilità di modificare il multiplo di atr che viene addizionato o sottratto alla media !!!
    Inoltre sarebbe da correggere @strenght in @strength per gli anglofoni.

    Saluti
    Massimo

  9. #9

    Data Registrazione
    Sep 2013
    Località
    Monza
    Messaggi
    186
    Citazione Originariamente Scritto da Apocalips Visualizza Messaggio
    Ciao maxmax68, secondo me hai ridondato troppo la variabile A con l'aggiunta delle parentesi per cui andrebbe scritta semplicemente in questo modo:

    SET A = PERIODO_DINAMICO

    così facendo sembra funzionare e l'indicatore viene correttamente plottato sul grafico

    quindi il codice completo diventa :

    INPUTS: @MaxPeriodo(60), @MinPeriodo(5), @PeriodoVolatilita(30)
     
       
     
    SET HistVol = SDV(CLOSE , @PeriodoVolatilita , 1, SIMPLE)
     
      
     
    SET YestHistVol = REF(HistVol, 1)
     
      
     
    SET DeltaHistVol1 = (HistVol - REF(HistVol, 1)) / HistVol
     
      
     
    SET DeltaHistVol = MINOF(DeltaHistVol1, 0.1)
     
      
     
    SET vPeriodoDinamico = BARLOOP (20, 1, MULTIPLY, (1 - DeltaHistVol), @MinPeriodo, @MaxPeriodo)
     
      
     
    SET PERIODO_DINAMICO = FLOOR(vPeriodoDinamico)
    
    
    SET A = PERIODO_DINAMICO
    
    
    SET B = SuperTrend( A , 5)
     
     
     
    SET PLOT1 = B
    
    
    
    SET PLOTCOLOR1 = IF(PLOT1 > CLOSE, COLOR_LIGHT_RED, COLOR_LIGHT_GREEN)
    Clicca sull'immagine per ingrandirla

Nome: St dinamico.jpg
Visite: 23
Dimensione: 89.2 KB
ID: 12589

    Apo
    Ciao Apo,
    credo che il problema sia quello spiegato da Max Francario :
    Attenzione però che il vettore che viene passato alla funzione SuperTrend deve contenere dei valori validi per il calcolo.
    Nel caso specifico, il parametro Periods deve contenere valori non inferiori a 2 e non maggiori del numero massimo di barre disponibili, altrimenti compare comunque quel messaggio di errore.
    Specialmente durante la verifica di uno script, è possibile incorrere in situazioni non previste, ad esempio ottenere uno zero dove invece ci si aspetta un valore positivo. Infatti in questa fase vengono generate delle serie storiche fittizie alle quali viene applicato lo script al solo scopo di verificarne la correttezza, e queste potrebbero portare lo script alla condizione di errore che ha incontrato.
    Ergo, volendo mantenere la comodità di una funzione esterna da richiamare,
    si pone il problema di verificare ed eventualmente correggere il valore del vettore
    creato dalla funzione esterna, prima di passarlo alla funzione SuperTrend,
    per non incappare nel messaggio d'errore.
    Ho provato a modificare il codice precedente aggiungendo un controllo, e adesso
    sembrerebbe funzionare.
    Saluti
    Massimo
    # Indicatore SUPERTREND DINAMICO
    #
    INPUTS: @MaxPeriodo(60), @MinPeriodo(5), @PeriodoVolatilita(30)
     
    SET A = PERIODO_DINAMICO(@MaxPeriodo, @MinPeriodo, @PeriodoVolatilita)
    SET COND1 = A < @MinPeriodo OR A > @MaxPeriodo OR A = NAN
    SET B = IF(COND1 , @MinPeriodo , A)
    SET PLOT1 = ST (@MinPeriodo , 5)
    SET PLOT2 = ST (@MaxPeriodo , 5)
    SET PLOT3 = ST ( B , 5)

  10. #10

    Data Registrazione
    Sep 2013
    Località
    Monza
    Messaggi
    186
    Citazione Originariamente Scritto da maxmax68 Visualizza Messaggio

    A proposito di Supertrend ne approfitto per richiederne un completamento.
    Manca la possibilità di modificare il multiplo di atr che viene addizionato o sottratto alla media !!!

    Se possibile per la prossima release prendete in considerazione la seguente modifica
    Grazie
    Massimo

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Contattaci

Chiama gli esperti
+39 0425 792923

Chiamaci
Email

Richiedi informazioni via E-MAIL
info@playoptions.it

Scrivici
Nostri Uffici

Vieni a trovarci
45100 Rovigo

Contattaci

Serve Aiuto?

Contattaci per maggiori informazioni.

Denis MorettoSpecialista Finanziario
Contattaci
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.