Pagina 11 di 16 Prima ... 910111213 ... Ultima
Risultati da 101 a 110 di 158

Discussione: Scripts di esempio

  1. #101
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,630
    Citazione Originariamente Scritto da Ismael Visualizza Messaggio
    Quando ti viene un msg di errore (come quello che hai postato), c'è scritto:
    source position y,x

    dove y = riga dell'errore e x = colonna.
    ho provato a cancellare tutte le unit presenti nello script dopodichè ne ho generata una nuova in basic, ho fatto copia incolla e poi run.

    l'errore non compare più ma non so se adesso funziona .

    Apo
    ....non si desidera ciò che è facile ottenere (Ovidio)....

  2. #102
    L'avatar di Cagalli Tiziano
    Data Registrazione
    Dec 2007
    Località
    Rovigo
    Messaggi
    11,164
    I file si possono condividere se si invia in condivisione la strategia su cui è scritto lo script.
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

  3. #103

    Data Registrazione
    Feb 2012
    Località
    Pisa
    Messaggi
    351
    Citazione Originariamente Scritto da chrisbasetta Visualizza Messaggio
    Nuova domanda per Max appena può...

    Nello Script è possibile identificare il Close di una barra di un determinato timeframe?

    Come uso l'istruzione RTH_5MIN ?

    Grazie

    Ciao,
    in attesa di Max ....... intanto ti rispondo io:

    Dim myUnderlying as TUnderlying
    Dim myHistoryDataContext as THistoryDataContext
    Dim myHistoricalData as THistoricalData
    Dim myDataVectorCLOSE as TDataVector
                                          
    myUnderlying = CurrentStrategy.GetMainUnderlying      
    myHistoryDataContext = myUnderlying.AssertHistory(RTH_5MIN)
    
    
    'Ottenimento dei dati storici dei CLOSE
    myHistoricalData = myHistoryDataContext.HistoricalData
    myDataVectorCLOSE = myHistoricalData.VectorClose
    'Metodo alternativo per l'ottenimento dei dati storici dei CLOSE:
    'myDataVectorCLOSE = myHistoryDataContext.GetSerieByName("CLOSE")
    
    
    'Richiesta di mostrare i valori di alcune proprietà
    ShowMessage("Ultimo valore in ordine temporale:     " & myDataVectorCLOSE.Last)
    ShowMessage("Penultimo valore in ordine temporale:     " & myDataVectorCLOSE.LastClosed)
    'A questo punto utilizzando opportunamente le proprietà ed i metodi
    'della classe TDataVector (vedere il Manuale !!!!)
    'è possibile ottenere altre informazioni.
    E questo penso che sia soltanto un assaggio!

  4. #104

    Data Registrazione
    Aug 2008
    Località
    Edolo (BS)
    Messaggi
    693
    Citazione Originariamente Scritto da Ismael Visualizza Messaggio
    Un piccolo contributo alla discussione
    (ho lasciato tutte le dichiarazioni di variabili, anche quelle non necessarie)

    1.aggiungere 5 optioni call e 5 put piu atm alla strategia alle 9:40.
    Ottimo!


    Ne ho ancora da imparare...hehe!
    Grazie Ismael!

  5. #105

    Data Registrazione
    Aug 2008
    Località
    Edolo (BS)
    Messaggi
    693
    Citazione Originariamente Scritto da Smash Visualizza Messaggio
    Ciao,
    in attesa di Max ....... intanto ti rispondo io:

    Dim myUnderlying as TUnderlying
    Dim myHistoryDataContext as THistoryDataContext
    Dim myHistoricalData as THistoricalData
    Dim myDataVectorCLOSE as TDataVector
                                          
    myUnderlying = CurrentStrategy.GetMainUnderlying      
    myHistoryDataContext = myUnderlying.AssertHistory(RTH_5MIN)
    
    
    'Ottenimento dei dati storici dei CLOSE
    myHistoricalData = myHistoryDataContext.HistoricalData
    myDataVectorCLOSE = myHistoricalData.VectorClose
    'Metodo alternativo per l'ottenimento dei dati storici dei CLOSE:
    'myDataVectorCLOSE = myHistoryDataContext.GetSerieByName("CLOSE")
    
    
    'Richiesta di mostrare i valori di alcune proprietà
    ShowMessage("Ultimo valore in ordine temporale:     " & myDataVectorCLOSE.Last)
    ShowMessage("Penultimo valore in ordine temporale:     " & myDataVectorCLOSE.LastClosed)
    'A questo punto utilizzando opportunamente le proprietà ed i metodi
    'della classe TDataVector (vedere il Manuale !!!!)
    'è possibile ottenere altre informazioni.
    E questo penso che sia soltanto un assaggio!
    Grazie Smash! Nel weekend sperimento...

  6. #106

    Data Registrazione
    Feb 2012
    Località
    Pisa
    Messaggi
    351
    Citazione Originariamente Scritto da chrisbasetta Visualizza Messaggio
    Grazie Smash! Nel weekend sperimento...
    Di nulla!

    Puoi sperimentare anche questo:

    dati storici daily, non solo il CLOSE ma tutta la barra



    Dim myUnderlying as TUnderlying
    Dim myHistoryDataContext as THistoryDataContext
    Dim myHistoricalData as THistoricalData
    Dim myDataVectorDATE as TDataVector                    
    Dim myDataVectorOPEN as TDataVector
    Dim myDataVectorHIGH as TDataVector
    Dim myDataVectorLOW as TDataVector
    Dim myDataVectorCLOSE as TDataVector
    Dim myDataVectorVOLUME as TDataVector
    Dim nBarsAgo as Integer
    Dim str as String
                                          
    myUnderlying = CurrentStrategy.GetMainUnderlying      
    myHistoryDataContext = myUnderlying.AssertHistory(RTH_1D)
    
    
    
    
    'Ottenimento dei dati storici
    myHistoricalData = myHistoryDataContext.HistoricalData
    myDataVectorDATE = myHistoricalData.VectorDate
    myDataVectorOPEN = myHistoricalData.VectorOpen
    myDataVectorHIGH = myHistoricalData.VectorHigh
    myDataVectorLOW = myHistoricalData.VectorLow
    myDataVectorCLOSE = myHistoricalData.VectorClose
    myDataVectorVOLUME = myHistoricalData.VectorVolume
    
    
    
    
    
    
    
    
    '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 & "Data:   " & CDate(myDataVectorDATE.Last)
    str = str & Chr(13) & Chr(10)
    str = str & "Apertura:   " & myDataVectorOPEN.Last
    str = str & Chr(13) & Chr(10)
    str = str & "Massimo:   " & myDataVectorHIGH.Last
    str = str & Chr(13) & Chr(10)
    str = str & "Minimo:   " & myDataVectorLOW.Last
    str = str & Chr(13) & Chr(10)
    str = str & "Chiusura:   " & myDataVectorCLOSE.Last
    str = str & Chr(13) & Chr(10)
    str = str & "Volume:   " & myDataVectorVOLUME.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 & "Data:   " & CDate(myDataVectorDATE.LastClosed)
    str = str & Chr(13) & Chr(10)
    str = str & "Apertura:   " & myDataVectorOPEN.LastClosed
    str = str & Chr(13) & Chr(10)
    str = str & "Massimo:   " & myDataVectorHIGH.LastClosed
    str = str & Chr(13) & Chr(10)
    str = str & "Minimo:   " & myDataVectorLOW.LastClosed
    str = str & Chr(13) & Chr(10)
    str = str & "Chiusura:   " & myDataVectorCLOSE.LastClosed
    str = str & Chr(13) & Chr(10)
    str = str & "Volume:   " & myDataVectorVOLUME.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 & "Data:   " & CDate(myDataVectorDATE.Value[myDataVectorDATE.Size-1-nBarsAgo])
    str = str & Chr(13) & Chr(10)
    str = str & "Apertura:   " & myDataVectorOPEN.Value[myDataVectorOPEN.Size-1-nBarsAgo]
    str = str & Chr(13) & Chr(10)
    str = str & "Massimo:   " & myDataVectorHIGH.Value[myDataVectorHIGH.Size-1-nBarsAgo]
    str = str & Chr(13) & Chr(10)
    str = str & "Minimo:   " & myDataVectorLOW.Value[myDataVectorLOW.Size-1-nBarsAgo]
    str = str & Chr(13) & Chr(10)
    str = str & "Chiusura:   " & myDataVectorCLOSE.Value[myDataVectorCLOSE.Size-1-nBarsAgo]
    str = str & Chr(13) & Chr(10)
    str = str & "Volume:   " & myDataVectorVOLUME.Value[myDataVectorVOLUME.Size-1-nBarsAgo]                                      
    ShowMessage(str)
    A mercati aperti il primo messaggio dovrebbe indicare i dati della barra in real time (quella che non si è ancora chiusa).

    Il terzo messaggio: per n=0 coinciderebbe con il primo messaggio; per n=1 coinciderebbe con il secondo messaggio.
    Ultima modifica di Smash; 16-03-13 alle 11:35

  7. #107

    Data Registrazione
    Aug 2008
    Località
    Edolo (BS)
    Messaggi
    693
    Intanto un enorme grazie a Ismael e a Smash perchè con i loro esempi mi hanno permesso di fare un altro piccolo step in avanti :-)

    Ora vorrei chiedere un aiutino a loro...o a chi vorrà suggerire (Max comrpeso ovviamente ) come posso risolvere questo...

    Avrei bisogno di far seseguire all'interno dello Script, una determinata procedura ma solo un TOT numero di volte, supponiamo 2.
    Ho pensato quindi di utilizzare un contatore, ogni volta che quella procedura viene eseguita...
    L'idea sarebbe:

    if (contatore<2) then
    ecc. ecc.


    ...ma succede questo:

    definisco inizialmente il contatore e lo setto a zero
    dim contatore as Integer = 0

    poi definisco la procedura, supponiamo sia questa
    if (sottostante.Last < 10.00) then
    contatore = contatore+1
    end if


    fin qui tutto ok perchè effettivamente il contatore in questo caso diventa 1
    però succede che se tale condizione non è più vera (ad esempio il sottostante torna sopra 10) il contatore si resetta a zero...invece vorrei che rimanesse 1

    Ho anche pensato di utilizzare un file esterno come contatore...ma non sono riuscito.

    Spero di essermi spiegato...

    Magari esiste un modo più semplice per limitare il numero di iterazioni di una specifica procedura...

    Grazie a chi darà una mano!!

  8. #108

    Data Registrazione
    Jan 2011
    Località
    Castiglioncello (LI)
    Messaggi
    240
    A quanto ho capito ti si azzera il valore del contatore ogni volta che parte lo script (ed è così che deve essere). Per ovviare devi usare

    SetPersistentVar(nome variabile,valore)

    che assegna in maniera permanente il valore alla variabile e non ne riinizializza il valore ogni nuova esecuzione dello script.

    spero di esserti stato di aiuto.

    Roberto
    E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

  9. #109

    Data Registrazione
    Aug 2008
    Località
    Edolo (BS)
    Messaggi
    693
    Citazione Originariamente Scritto da Ismael Visualizza Messaggio
    A quanto ho capito ti si azzera il valore del contatore ogni volta che parte lo script (ed è così che deve essere). Per ovviare devi usare

    SetPersistentVar(nome variabile,valore)

    che assegna in maniera permanente il valore alla variabile e non ne riinizializza il valore ogni nuova esecuzione dello script.

    spero di esserti stato di aiuto.

    Roberto
    Ciao Ismael...in realtà ho già tentato anche con SetPersistentVar
    ma una volta settata non riesco più a modificarla...
    nel senso che se diventa 1...poi rimane sempre 1...(e non va a 2 all'esecuzione successiva ad esempio)
    magari ho sbagliato qualcosa nell'istruzione...

  10. #110

    Data Registrazione
    Feb 2012
    Località
    Pisa
    Messaggi
    351
    Citazione Originariamente Scritto da chrisbasetta Visualizza Messaggio
    Ciao Ismael...in realtà ho già tentato anche con SetPersistentVar
    ma una volta settata non riesco più a modificarla...
    nel senso che se diventa 1...poi rimane sempre 1...(e non va a 2 all'esecuzione successiva ad esempio)
    magari ho sbagliato qualcosa nell'istruzione...

    Ciao Chris,

    nemmeno io sono riuscito a fare funzionare la Sub SetPersistentVar ...

    Con il file di testo invece per ora puoi provare con qualcosa di questo tipo:

    1) Ti crei manualmente un file di testo (nell'esempio di seguito si trova nella cartella delle strategie di Fiuto Pro ed ha lo stesso nome della strategia stessa)

    2) Per scrivere su file di testo usi un codice di questo tipo:


    Uses  Classes
    
    
    Dim FileName as String
    Dim FileTesto as TStringList 
    Dim contatore as String 
    Dim contatoreMax as String 
    
    
    FileTesto = New TStringList
    
    
    Filename = GetDocPath + "\PlayOptions.it\FiutoPro\" + CurrentStrategy.Name + ".txt" 
    
    
    FileTesto.LoadFromFile(FileName) 
    
    
                     
    contatoreMax = 2
    
    
    If FileTesto.Text = contatoreMax & Chr(13) & Chr(10) Then
        FileTesto.SetText("0")
        FileTesto.SaveToFile(FileName)   
    Else                                             
        contatore = CInt(FileTesto.Text) + 1
        FileTesto.SetText(contatore)
        FileTesto.SaveToFile(FileName)   
    End If                                              
    
    
    FileTesto.LoadFromFile(FileName)
    ShowMessage(FileTesto.Text)
    
    
    FileTesto.Free

    E' un metodo un po' rudimentale, nel senso che purtroppo il file di testo te lo devi creare a mano. Sicuramente usando le API di Windows è migliorabile automatizzandolo completamente.

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.