Pagina 13 di 16 Prima ... 31112131415 ... Ultima
Risultati da 121 a 130 di 158

Discussione: Scripts di esempio

  1. #121

    Data Registrazione
    Apr 2013
    Messaggi
    13
    Per iniziare vi ringrazio moltissimo per ler risposte. Purtroppo stavo effettivamente vericando anche io che i valori degli indicatori non erano recuperabili direttamente dallo script. Contemporaneamente stavo provando anche la soluzione di calcolarne qualcuno direttamente all'interno dello script, ma ho trovato anche qui un piccolo problema che non capisco se sia risolvibile. Cone prova ho calcolato la regressione lineare tramite l'apposita funzione. I valori sembrano essere calcolati correttamente, ma con una differenza (che sembrerebbe abbastanza significativa) rispetto agli stessi valori riportati dagli indicatori. La differenza sta nella precisione dei dati double. Gli indicatori restituiscono numeri con 3 cifre decimali, mentre io con gli script riesco ad ottenere sempre valori con solo 2 cifre decimali. Potreste darmi i vostri pareri e/o conferme su questo aspetto?

    Per quanto riguarda il workaround indicatomi da Massimiliano, effettivamente è un pò arzigogolato, ma niente di trascendentale... lo proverò a breve (adesso sto finendo qualche prova con i soli workflow) e se in tal modo riesco ad ottenere i valori degli indicatori, penso che potrò ritenermi comunque molto soddisfatto.

    Dalle prove che sto facendo emerge che già i workflow consentono di strutturare una buona ottimizzazione di analisi e operatività, ma se riuscirò a protare gli stessi valori negli script si aprirà un nuovo mondo con possibilità infinite e favolose.

    Complimenti ancora per tutto il vostro lavoro.

    P.S. giusto per curiosità, prevedete di poter implementare in futuro ciò che servirà per usare gli indicatori direttamente negli script?

    Renato.

  2. #122

    Data Registrazione
    Aug 2008
    Località
    Edolo (BS)
    Messaggi
    693
    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    Salve Renato,

    non è possibile aggiungere indicatori direttamente dallo script.
    Al momento, esiste comunque un modo per poter ottenere i valori degli indicatori all'interno dello script, anche se un pò complicato. Ecco come fare:

    - Aprire la finestra Workflows, quindi aggiungere un nuovo Workflow, non impostare nulla nella sezione Azione e passare subito alla sezione Condizione;

    - Modificare la condizione del nuovo workflow, andando a scegliere come primo operatore un indicatore di analisi tecnica;

    - Selezionare il sottostante desiderato, aggiungere il timeframe su cui calcolare gli indicatori, aggiungere gli indicatori voluti. Suggerisco di assegnare un nome ad ogni valore di uscita degli indicatori, in modo da poterne recuperare più facilmente i valori: ad esempio, se aggiungo una media mobile esponenziale sul Close a 20 periodi, posso assegnare un nome tipo "EMA_20". I nomi delle uscite degli indicatori devono essere univoci, se il nome scelto esiste già all'interno dello stesso timeframe, il software andrà automaticamente ad aggiungere un numero progressivo alla fine del nome per distinguere le varie uscite;

    - A questo punto, gli indicatori sono già inseriti e calcolati in tempo reale dal software;

    - Annullare la costruzione del nuovo Workflow;

    - Andare nello Script, ed utilizzare il metodo AssertHistory del sottostante su cui sono stati applicati gli indicatori, passando come parametro il timeframe desiderato. Il metodo AssertHistory restituisce un oggetto di tipo THistoryDataContext;

    - Usare il metodo GetSerieByName sull'oggetto di tipo THistoryDataContext appena ottenuto, passando come parametro il nome del valore di uscita dell'indicatore desiderato: riprendendo l'esempio di prima, avrei dovuto usare "EMA_20" come nome della serie da recuperare. Questo metodo restituisce un oggetto di tipo TDataVector;

    - Usare le proprietà ed i metodi dell'oggetto TDataVector appena ottenuto per accedere ai valori dell'indicatore. Le proprietà più utili sono Last e LastClosed, per ottenere il valore della barra corrente ancora in "costruzione", ed il valore della penultima barra, ossia l'ultimo valore "finalizzato" dell'indicatore.

    Spero di essere stato d'aiuto

    Max Francario
    Grazie Max!
    Ho appena provato e...funziona! (ovviamente...)

  3. #123

    Data Registrazione
    Apr 2013
    Messaggi
    13

    Post

    rieccomi... e devo ancora chiedere il vostro aiuto...
    Ho provato a seguire le indicazioni, ma evidentemente sbaglio qualcosa. L'unica differenza che c'è nel mio test è che non ho annullato la creazione del workflow, ma l'ho tenuto attivo con una condizione che contiene gli indicatori che vorrei leggere nello script. Il punto è che non riesco ad accedere agli indicatori. Leggendo l'elenco delle serie contenute nell'oggetto HistoryDataContext che ho creato non trovo i miei indicatori.
    Qui di sotto vi riporto le poche righe dello script che sto iniziando a fare. Come dicevo, lo showMessage della ListaSerie mi riposrta solo i valori : CLOSE,HIGH,LOW,OPEN,OPENINTEREST,TIMESTAMP,VOLUME e non ci ritrovo l'indicatore che ho aggiunto io che si chiama LR (una semplice regressione lineare).
    Riuscite a darmi qualche dritta?
    Vi ringrazio in anticipo!
    Renato.

    '************************************************* **********
    Dim BRS_SS as TUnderlying
    Dim BRS_HDC_5M as THistoryDataContext
    Dim BRS_LR_5M as TDataVector
    Dim ListaSerie as TStringList
    '------------------------------------------------------
    BRS_SS = CurrentStrategy.GetMainUnderlying
    BRS_HDC_5M = BRS_SS.AssertHistory(RTH_5MIN)
    ListaSerie = New TStringList
    BRS_HDC_5M.GetSeriesNames(ListaSerie)
    ShowMessage(ListaSerie.GetText)
    ListaSerie.Free
    '************************************************* **********

  4. #124

    Data Registrazione
    Feb 2012
    Località
    Pisa
    Messaggi
    351
    Citazione Originariamente Scritto da nevada Visualizza Messaggio
    rieccomi... e devo ancora chiedere il vostro aiuto...
    Ho provato a seguire le indicazioni, ma evidentemente sbaglio qualcosa. L'unica differenza che c'è nel mio test è che non ho annullato la creazione del workflow, ma l'ho tenuto attivo con una condizione che contiene gli indicatori che vorrei leggere nello script. Il punto è che non riesco ad accedere agli indicatori. Leggendo l'elenco delle serie contenute nell'oggetto HistoryDataContext che ho creato non trovo i miei indicatori.
    Qui di sotto vi riporto le poche righe dello script che sto iniziando a fare. Come dicevo, lo showMessage della ListaSerie mi riposrta solo i valori : CLOSE,HIGH,LOW,OPEN,OPENINTEREST,TIMESTAMP,VOLUME e non ci ritrovo l'indicatore che ho aggiunto io che si chiama LR (una semplice regressione lineare).
    Riuscite a darmi qualche dritta?
    Vi ringrazio in anticipo!
    Renato.

    '************************************************* **********
    Dim BRS_SS as TUnderlying
    Dim BRS_HDC_5M as THistoryDataContext
    Dim BRS_LR_5M as TDataVector
    Dim ListaSerie as TStringList
    '------------------------------------------------------
    BRS_SS = CurrentStrategy.GetMainUnderlying
    BRS_HDC_5M = BRS_SS.AssertHistory(RTH_5MIN)
    ListaSerie = New TStringList
    BRS_HDC_5M.GetSeriesNames(ListaSerie)
    ShowMessage(ListaSerie.GetText)
    ListaSerie.Free
    '************************************************* **********



    In questo esempio l'indicatore creato da WorkFlow su time frame 15 minuti si chiama "RegLine":


    Dim myUnderlying as TUnderlying
    Dim myHistoryDataContext as THistoryDataContext
                    
    Dim myDataVector as TDataVector                    
                      
    Dim str as String 
    Dim nBarsAgo as Integer
                                          
    myUnderlying = CurrentStrategy.GetMainUnderlying      
    myHistoryDataContext = myUnderlying.AssertHistory(RTH_15MIN)
    
    
    
    
    'Ottenimento dei dati storici dell'indicatore richiesto
    myDataVector = myHistoryDataContext.GetSerieByName("RegLine")     
                                                            
    'Richiesta di mostrare i valori dell'ultima barra o candela
    str = "Ultima barra non chiusa se a mercati aperti:"
    str = str & Chr(13) & Chr(10)
    str = str & "Valore:   " & myDataVector.Last        
    ShowMessage(str)  
    
    
    'Richiesta di mostrare i valori della penultima barra o candela 
    str = "Ultima barra sicuramente chiusa:"  
    str = str & Chr(13) & Chr(10)                                                      
    str = str & "Valore:   " & myDataVector.LastClosed                       
    ShowMessage(str)        
                                                                                      
    nBarsAgo = 2                                  
    'Richiesta di mostrare i valori di n barre fa       
    str = "Dati di " & nBarsAgo & " barre fa:"  
    str = str & Chr(13) & Chr(10)
    str = str & "Valore:   " & myDataVector.Value[myDataVector.Size-1-nBarsAgo]
    ShowMessage(str)

  5. #125

    Data Registrazione
    Apr 2013
    Messaggi
    13
    Smash, grazie per la risposta. vedo che le istruzioni dei nostri 2 script sono praticamente identiche (a parte ovviamente i nomi delle variabili).
    Il problema è che se nel mio script cerco di caricare il vettore con la GetSerieByName passando come parametro ("LR") che è il nome del mio indicatore non ottengo nulla. E considerando ciò che viene restituito dalla funzione GetSeriesName mi viene da pensare che non lo carica perchè semplicemente non lo vede. E' come se sbagliassi qualcosa nella fase di creazione degli indicatori con il workflow che poi dovrebbero essere visti dallo script.
    Per verifica ora provo a mettere un indicatore che si chiama RegLine e provo paro paro il tuo script...

    edito : ho fatto la prova creando una nuova strategia con l'indicatore RegLine a 15min. e usando il tuo codice... stesso risultato del mio... non carica nessun vettore di dati :-(
    Ultima modifica di nevada; 30-04-13 alle 15:37

  6. #126

    Data Registrazione
    Aug 2008
    Località
    Edolo (BS)
    Messaggi
    693
    Citazione Originariamente Scritto da nevada Visualizza Messaggio
    Smash, grazie per la risposta. vedo che le istruzioni dei nostri 2 script sono praticamente identiche (a parte ovviamente i nomi delle variabili).
    Il problema è che se nel mio script cerco di caricare il vettore con la GetSerieByName passando come parametro ("LR") che è il nome del mio indicatore non ottengo nulla. E considerando ciò che viene restituito dalla funzione GetSeriesName mi viene da pensare che non lo carica perchè semplicemente non lo vede. E' come se sbagliassi qualcosa nella fase di creazione degli indicatori con il workflow che poi dovrebbero essere visti dallo script.
    Per verifica ora provo a mettere un indicatore che si chiama RegLine e provo paro paro il tuo script...

    Hai provato a mettere il nome dell'indicatore tra virgolette?
    E' una stringa...

    BRS_HDC_5M.GetSerieByName("NomeIndicatore")

    se poi metti questo:

    MostraMessaggio(BRS_HDC_5)

    e fai girare lo script dovrebbe uscirti una finestra col valore dell'indicatore
    Ultima modifica di chrisbasetta; 30-04-13 alle 15:39

  7. #127

    Data Registrazione
    Apr 2013
    Messaggi
    13
    Ciao ChrisBasetta. si, l'istruzione che uso per il caricamento è BRS_HDC_5M.GetSerieByName("LR"), non da errori di esecuzione ma non carica nulla.
    Per mia fortuna almeno la parte di sintassi di programmazione non è un problema... lavoro nel campo informatico da più di 20 anni ;-)

  8. #128

    Data Registrazione
    Feb 2012
    Località
    Pisa
    Messaggi
    351
    Citazione Originariamente Scritto da nevada Visualizza Messaggio
    Smash, grazie per la risposta. vedo che le istruzioni dei nostri 2 script sono praticamente identiche (a parte ovviamente i nomi delle variabili).
    Il problema è che se nel mio script cerco di caricare il vettore con la GetSerieByName passando come parametro ("LR") che è il nome del mio indicatore non ottengo nulla. E considerando ciò che viene restituito dalla funzione GetSeriesName mi viene da pensare che non lo carica perchè semplicemente non lo vede. E' come se sbagliassi qualcosa nella fase di creazione degli indicatori con il workflow che poi dovrebbero essere visti dallo script.
    Per verifica ora provo a mettere un indicatore che si chiama RegLine e provo paro paro il tuo script...

    edito : ho fatto la prova creando una nuova strategia con l'indicatore RegLine a 15min. e usando il tuo codice... stesso risultato del mio... non carica nessun vettore di dati :-(

    Ciao,

    il codice che ho postato come esempio in precedenza a me funzionava!

    Ho anche avuto modo di vedere che quando l'indicatore non viene trovato, di fatto come valore vengono restituiti sempre degli zeri (nel senso che non vengono generati dei messaggi di errore!).


    A questo punto le cause di errore potrebbero essere:

    - avere sbagliato il time-frame

    - avere sbagliato il nome dell'indicatore

    - non avere individuato il sottostante corretto
    (nel senso che il mio codice di prima si riferiva ad un "MainUnderlying", quando invece nello strategy builder di Fiuto talvolta ci possono essere più di un sottostante, e magari l'indicatore da WorkFlow era stato creato su un altro sottostante diverso dal "Main"...)

  9. #129

    Data Registrazione
    Apr 2013
    Messaggi
    13
    BINGO!
    Grazie Smash, e grazie anche agli altri!
    Avrò anche esperienza in informatica, ma si è palesata la mia incompetenza del mondo trading...
    Il probelma era il terzo che hai indicato. Leggevo il mainunderlying che non era quello a cui erano riferiti gli indicatori. Ho letto quindi quello giusto con il metodo GetUnderlyingByIndex e ora tutto funziona.

    spero di poter ricambiare presto il vostro aiuto :-)

  10. #130

    Data Registrazione
    Apr 2013
    Messaggi
    13
    Un saluto a tutti... ed eccomi di nuovo. Mi scuso se posso sembrare un pò noioso, sempre qui a chiedere aiuto, ma sto cercando di capire le potenzialità degli script e mi sono reso conto di esseremi arruginito più di quanto pensavo sull lato programmazione.
    Diciamo che ovviamente potrò arrivare a trovarmi le soluzioni anche da solo, ma naturalmente se per caso qualcuno ha già affrontato i vari problemi e mi da una manina, potrò concentrarmi di più e meglio sul lato trading, che dovrebbe effettivamente essere il mio primo "dovere"...
    Vabbè, veniamo al punto. Mi trovo ora a cercare un modo di crearmi qualcosa che mi consenta di visualizzare il risultato di alcuni calcoli fatti nello script in tempo reale (e magari darmi anche degli avvisi sonori).
    L'ideale sarebbe una finestra sempre attiva in cui poter inserire delle forme (o pulsanti) a cui variare i colori. Qualcosa che però una volta creata sia visibile, modificabile da script e non richieda interventi utente. Al limite anche una finestra in cui poter solo scrivere dei testi come fosse quella del comando ShowMessage, che però ha l'inconviente di fermare lo script in attesa della pressione di un pulsante. Per intenderci, finestre tipo quelle dei TTS Meter, anche se non mi serve siano così elaborate come tipo di indicatori.
    Anche la possibilità di eseguire dei file sonori da script sarebbe cosa utile.
    Io sono riuscito solo a trovare delle istruzioni di questo tipo :
    '*******************************
    USES
    Classes, Graphics, Controls, Forms, Dialogs, Unit2
    DIM MainForm AS TForm
    MainForm = TForm.Create(Application)
    MainForm.Show
    '*******************************
    che ho visto che creano una finestra "application" che potrebbe andare bene come base, però poi non trovo nulla su cosa sia possibile inserirci dentro ne come su come farlo...
    Io per ora sto scrivendo in basic, ma se sarà necessario passerò anche al pascal style.

    Spero di aver indicato al meglio su cosa chiedo i vostri pareri e supporti, e resto in attesa di eventuali consigli che potrete darmi. Nel caso non ce ne siano, se scoprirò qualcosa saro io stesso a darvi tutte le indicazioni che potrò riguardo questa tematica.

    Ciao e buona giornata.

    Renato.

    p.s. aggiungo altra piccola domanda : sapete se è possibile disegnare delle linee sulle finestre dove ci sono i grafici del sottostante e degli indicatori? (sempre da script ovviamente)

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.