If-then-else, for loop, blocchi di istruzioni {}

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • Marco Bosco
    Senior Member

    • Sep 2012
    • 419

    #16
    Originariamente Scritto da Smash
    Ti chiedo scusa nel caso in cui non avessi capito bene:
    mi dici di utilizzare un qualcosa del tipo MAX(HIGH, n) ???


    Riferendomi all\'esempio che avevo postato in precedenza, ti faccio un esempio numerico:

    30 30
    40 40
    60 60
    70 70
    50 70
    60 60
    50 60 <----- servirebbe Max a 2 o 3 periodi (se fosse a 4 periodi restituirebbe 70 !!!)
    40 60 <----- servirebbe Max a 3 o 4 periodi (se fosse a 5 periodi restituirebbe 70, a 2 darebbe 50 !!!)
    30 60 <----- servirebbe Max a 4 o 5 periodi (se fosse a 6 periodi restituirebbe 70, a 3 darebbe 50 !!!)
    40 40
    50 50
    60 60

    A sinistra ho riportato un ipotetico vettore degli HIGH, mentre a destra ho riportato i valori del vettore che dovrebbe calcolare la funzione che volevo costruire io.

    Allora ti chiedo:
    a quanti periodi lo devo settare il Max?

    ciao Smash,
    per capire meglio cosa succede puoi usare il comando PRINT che ti permette di fare DEBUG e crea proprio i vettori come li hai scritti tu in modo che tu possa esaminarli e vedere cosa succede.

    Ti scrivo i passi che ho fatto io:


    1)Aprire BT
    2)Aprire L\'editor
    3)dal menu New fare nuovo indicatore
    4)inserire il codice

    Codice:
    #Crea un vettore di nome PLOT1
    set PLOT1 = max(HIGH,2)  
    #Crea un vettore di nome PLOT1
    set PLOT2 = max(HIGH,20)  
    
    #Stampa in debug i valori del vettore HIGH
    PRINT(HIGH) 
     #Stampa in debug i valori del vettore PLOT1            
    PRINT(PLOT1) 
    #Stampa in debug i valori del vettore PLOT2           
    PRINT(PLOT2)
    5)Salva lo script premendo save (io l\'ho chiamato semplicmeente new2)

    6)Premi il bottone debug (si apre la finestra debug)
    Click image for larger version

Name:	uno.jpg
Views:	1
Size:	24.3 KB
ID:	148801

    7)Poi tornare su BT lasciando aperta la finestra dell\'editor ..e aprire un grafico (io ho aperto quello Daily sullo stoxx)
    8)Inserire l\'indicatore new2

    Click image for larger version

Name:	tre.jpg
Views:	1
Size:	45.9 KB
ID:	148803

    9)Asegnare 2 colori diversi

    A me appare così:

    Click image for larger version

Name:	due.jpg
Views:	1
Size:	84.1 KB
ID:	148802


    10)tornare alla finestra Debug ... puoi vedere che appaiono i dati in colonne proprio come le hai scritti tu.
    Da qui puoi analizzare i risultati e vedere se sono di tuo gradimento. La stessa cosa la puoi fare combinando infinitamente tutte le funzioni e stampandole in debug per vedere se ottieni quello che vuoi.

    Click image for larger version

Name:	quattro.jpg
Views:	1
Size:	140.4 KB
ID:	148804

    ciao,
    Marco
    I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile. (Albert Einstein)

    Comment

    • Marco Bosco
      Senior Member

      • Sep 2012
      • 419

      #17
      Originariamente Scritto da maxmax68
      Ciao ragazzi,
      scusate se mi intrometto, ma a mio parere il punto fondamentale è il seguente:
      A parte i già utilizzatori di Fiuto e BeeTrader probabilmente già abituati a ragionare in modo vettoriale, quasi tutti gli altri, i nuovi utenti, arrivano da piattaforme che vengono programmate con linguaggi "tradizionali" tipo EasyLanguage, EFS, Java o C++, etc ...
      Siamo tutti da anni abituati a ragionare che per ogni barra del grafico vengono passate tutte le linee del programma, e poi si passa alla barra successiva.
      Completamente un altro mondo.
      Ora arriva questa modalità vettoriale che implica un completo sovvertimento del modo di ragionare e degli schemi di programmazione, che francamente mi , e credo ci, ha totalmente spiazzato.
      Spero che il team di beeTrader sia abbastanza saggio e lungimirante dal comprendere questa difficoltà dei nuovi utenti, e che fornisca un supporto alla programmazione adeguato, possibilmente innondando il forum di esempi anche complessi di programmazione da analizzare e comprendere.
      Meglio evitare risposte del tipo: provaci da solo che impari meglio.
      Altrimenti il rischio è che gli utenti si scoraggino e tornino alla loro vecchia piattaforma.
      Cordialmente
      Massimo
      Ciao maxmax68,
      hai perfettamente ragione!
      Tieni anche conto che il SW, e quindi il nuovo linguaggio, non ha nemmeno una settimana di vita...

      Lasciamogli il tempo di presentarsi!

      Per le ragioni che hai detto conoscendo le persone di PlayOptions, e come avrai modo di conoscerle e farti sorprendere anche tu, credo proprio che saranno già al lavoro per fare quello che hai chiesto.

      ciao,
      Marco
      I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile. (Albert Einstein)

      Comment

      • maxmax68
        Senior Member

        • Sep 2013
        • 186

        #18
        Originariamente Scritto da MRTMSS
        mi permetto solo di scriverti perchè vedo che sei un nuovo utente di questa community, e sinceramente in più di 2 anni che la frequento nessuno mi ha mai risposto con frasi banali come quella che hai citato tu.
        Stai pure tranquillo che qui la professionalità è di casa e di qualsiasi cosa tu abbia bisogno chiedi e sarai sicuro che il massimo che si può fare lo faranno.
        Ti parlo per esperienza personale.

        Buongiorno MRTMSS,
        di grazia qual\'é la parte banale?
        La mia voleva essere semplicemente una critica costruttiva.
        Le critiche distruttive o gli insulti, quelli si che li trovo banali, oltre che inutili !!!
        Cordialmente
        Massimo

        Comment

        • Francario Massimiliano
          Administrator
          • Jul 2008
          • 1033

          #19
          Salve,
          nella prossima release di beeTrader saranno aggiunte alcune funzionalità al linguaggio EasyScript.

          - Nuova funzione CHANGEIF(CONDITION, VECTOR)
          Se la CONDITION è vera, resistituisce il valore di VECTOR, altrimenti restituisce il valore restituito per la barra precedente.

          - Nuova variabile DATE
          Data della barra, espressa nella forma numerica YYYYMMDD.

          Nuova variabile TIME
          Orario della barra, espresso nella forma numerica HHMM.
          Per orari inferiori a 10:00, la forma numerica diventa HMM.
          Per orari inferiori a 01:00, la forma numerica diventa MM.
          Per orari inferiori a 00:10, la forma numerica diventa M.

          Max Francario
          Manuale di beeTrader
          Manuale di Fiuto Beta

          Comment

          • Cagalli Tiziano
            Senior Member
            • Dec 2007
            • 11252

            #20
            Originariamente Scritto da maxmax68
            Ciao ragazzi,
            scusate se mi intrometto, ma a mio parere il punto fondamentale è il seguente:
            A parte i già utilizzatori di Fiuto e BeeTrader probabilmente già abituati a ragionare in modo vettoriale, quasi tutti gli altri, i nuovi utenti, arrivano da piattaforme che vengono programmate con linguaggi "tradizionali" tipo EasyLanguage, EFS, Java o C++, etc ...
            Siamo tutti da anni abituati a ragionare che per ogni barra del grafico vengono passate tutte le linee del programma, e poi si passa alla barra successiva.
            Completamente un altro mondo.
            Ora arriva questa modalità vettoriale che implica un completo sovvertimento del modo di ragionare e degli schemi di programmazione, che francamente mi , e credo ci, ha totalmente spiazzato.
            Spero che il team di beeTrader sia abbastanza saggio e lungimirante dal comprendere questa difficoltà dei nuovi utenti, e che fornisca un supporto alla programmazione adeguato, possibilmente innondando il forum di esempi anche complessi di programmazione da analizzare e comprendere.
            Meglio evitare risposte del tipo: provaci da solo che impari meglio.
            Altrimenti il rischio è che gli utenti si scoraggino e tornino alla loro vecchia piattaforma.
            Cordialmente
            Massimo
            Caro Massimo, ti ringrazio per le lezioni di marketing ma per la mia ditta è impossibile innondare il forum di esempi.

            Che il linguaggio sia totalmente diverso è proprio il motivo per cui deve essere apprezzato beeTrader e ti spiego:
            io sono un trdader e non un programmatore, le mie esigenze, che dovrebbero combaciare con le tue, sono di avere un prodotto che dia la possibilità di scrivere ciò che io faccio manualmente.

            Se questo l\'avessi trovato in altri software non avrei investito tante risorse per costruirne uno mio.

            Il cambiamento è epocale, lo stai scrivendo tu e concordo.

            La mia frase "prova e impara" voleva essere costruttiva e non inutile come scrivi tu.
            Io penso, a sessant\'anni, che costruire ed imparare assieme sia meglio.

            Sei bravo a programmare, capisci il linguaggio, hai delle idee, bene, allora sei il benvenuto a darci una mano a far crescere gli altri utenti con meno esperienza.
            ..se corri dietro a due lepri, non ne prendi nemmeno una.

            Comment

            • Cagalli Tiziano
              Senior Member
              • Dec 2007
              • 11252

              #21
              Originariamente Scritto da maxmax68
              Buongiorno MRTMSS,
              di grazia qual\'é la parte banale?
              La mia voleva essere semplicemente una critica costruttiva.
              Le critiche distruttive o gli insulti, quelli si che li trovo banali, oltre che inutili !!!
              Cordialmente
              Massimo
              Massimo, nessuno ti ha insultato e ne mai lo farà!
              La parte banale a cui si riferisce il Trader MRTMSS è la frase mia
              Meglio evitare risposte del tipo: provaci da solo che impari meglio.
              che tu citi come inutile.
              ..se corri dietro a due lepri, non ne prendi nemmeno una.

              Comment

              • Smash
                Senior Member

                • Feb 2012
                • 351

                #22
                Originariamente Scritto da Marco Bosco
                ciao Smash,
                per capire meglio cosa succede puoi usare il comando PRINT che ti permette di fare DEBUG e crea proprio i vettori come li hai scritti tu in modo che tu possa esaminarli e vedere cosa succede.

                Ti scrivo i passi che ho fatto io:


                1)Aprire BT
                2)Aprire L\'editor
                3)dal menu New fare nuovo indicatore
                4)inserire il codice

                Codice:
                #Crea un vettore di nome PLOT1
                set PLOT1 = max(HIGH,2)  
                #Crea un vettore di nome PLOT1
                set PLOT2 = max(HIGH,20)  
                
                #Stampa in debug i valori del vettore HIGH
                PRINT(HIGH) 
                 #Stampa in debug i valori del vettore PLOT1            
                PRINT(PLOT1) 
                #Stampa in debug i valori del vettore PLOT2           
                PRINT(PLOT2)
                5)Salva lo script premendo save (io l\'ho chiamato semplicmeente new2)

                6)Premi il bottone debug (si apre la finestra debug)
                [ATTACH=CONFIG]12183[/ATTACH]

                7)Poi tornare su BT lasciando aperta la finestra dell\'editor ..e aprire un grafico (io ho aperto quello Daily sullo stoxx)
                8)Inserire l\'indicatore new2

                [ATTACH=CONFIG]12185[/ATTACH]

                9)Asegnare 2 colori diversi

                A me appare così:

                [ATTACH=CONFIG]12184[/ATTACH]


                10)tornare alla finestra Debug ... puoi vedere che appaiono i dati in colonne proprio come le hai scritti tu.
                Da qui puoi analizzare i risultati e vedere se sono di tuo gradimento. La stessa cosa la puoi fare combinando infinitamente tutte le funzioni e stampandole in debug per vedere se ottieni quello che vuoi.

                [ATTACH=CONFIG]12186[/ATTACH]

                ciao,
                Marco

                Grazie Marco!

                La finestra di Debug è uno strumento di vitale importanza per chi vuole programmare seriamente!

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #23
                  Originariamente Scritto da Francario Massimiliano
                  Salve,
                  nella prossima release di beeTrader saranno aggiunte alcune funzionalità al linguaggio EasyScript.

                  - Nuova funzione CHANGEIF(CONDITION, VECTOR)
                  Se la CONDITION è vera, resistituisce il valore di VECTOR, altrimenti restituisce il valore restituito per la barra precedente.

                  - Nuova variabile DATE
                  Data della barra, espressa nella forma numerica YYYYMMDD.

                  Nuova variabile TIME
                  Orario della barra, espresso nella forma numerica HHMM.
                  Per orari inferiori a 10:00, la forma numerica diventa HMM.
                  Per orari inferiori a 01:00, la forma numerica diventa MM.
                  Per orari inferiori a 00:10, la forma numerica diventa M.

                  Max Francario

                  In pratica ci sarà la soluzione al mio problema...
                  Grazie!

                  Comment

                  • Marco Bosco
                    Senior Member

                    • Sep 2012
                    • 419

                    #24
                    Originariamente Scritto da Smash
                    Grazie Marco!

                    La finestra di Debug è uno strumento di vitale importanza per chi vuole programmare seriamente!
                    Prego Marco,
                    e concordo appieno!!
                    I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. L’insieme dei due costituisce una forza incalcolabile. (Albert Einstein)

                    Comment

                    • maxmax68
                      Senior Member

                      • Sep 2013
                      • 186

                      #25
                      Originariamente Scritto da Cagalli Tiziano
                      Caro Massimo, ti ringrazio per le lezioni di marketing ma per la mia ditta è impossibile innondare il forum di esempi.

                      Che il linguaggio sia totalmente diverso è proprio il motivo per cui deve essere apprezzato beeTrader e ti spiego:
                      io sono un trdader e non un programmatore, le mie esigenze, che dovrebbero combaciare con le tue, sono di avere un prodotto che dia la possibilità di scrivere ciò che io faccio manualmente.

                      Se questo l\'avessi trovato in altri software non avrei investito tante risorse per costruirne uno mio.

                      Il cambiamento è epocale, lo stai scrivendo tu e concordo.

                      La mia frase "prova e impara" voleva essere costruttiva e non inutile come scrivi tu.
                      Io penso, a sessant\'anni, che costruire ed imparare assieme sia meglio.

                      Sei bravo a programmare, capisci il linguaggio, hai delle idee, bene, allora sei il benvenuto a darci una mano a far crescere gli altri utenti con meno esperienza.
                      Caro Tiziano,
                      qui lei è il padrone di casa,
                      ma per cortesia non mi metta in bocca cose che non ho detto. Rilegga meglio il mio post.
                      Non mi permetto di dare lezioni a nessuno,
                      semplicemente cerco di apportare idee e consigli costruttivi.
                      Tornando al semplice indicatore che avevo richiesto,
                      vorrei capire se attualmente con EasyScript sia possibile realizzarlo.
                      Dalla post di Max Francario poco più sopra, pare che attualmente la risposta sia no (mancanza istruzione changeif).
                      Inoltre visto che a Milano aveva preso degli impegni precisi in merito alla stesura di programmi fino a 50 righe, mi aspetto che onori gli impegni.
                      Grazie per l\'attenzione.
                      Saluti
                      Massimo Rizzi

                      Comment

                      • Cagalli Tiziano
                        Senior Member
                        • Dec 2007
                        • 11252

                        #26
                        Originariamente Scritto da maxmax68
                        Caro Tiziano,
                        qui lei è il padrone di casa,
                        ma per cortesia non mi metta in bocca cose che non ho detto. Rilegga meglio il mio post.
                        Non mi permetto di dare lezioni a nessuno,
                        semplicemente cerco di apportare idee e consigli costruttivi.
                        Tornando al semplice indicatore che avevo richiesto,
                        vorrei capire se attualmente con EasyScript sia possibile realizzarlo.
                        Dalla post di Max Francario poco più sopra, pare che attualmente la risposta sia no (mancanza istruzione changeif).
                        Inoltre visto che a Milano aveva preso degli impegni precisi in merito alla stesura di programmi fino a 50 righe, mi aspetto che onori gli impegni.
                        Grazie per l\'attenzione.
                        Saluti
                        Massimo Rizzi
                        Caro Massimo Rizzi, non è questione di essere o no il padrone di casa ma semplicemente di essere o meno di buona educazione.
                        Probabilmente hai letto le miei risposte come critiche mentre invece devi leggerle come proposte e parole costruttive...io non metto parole in bocca a nessuno, perchè dovrei farlo?

                        Il CHANGEIF che scrivi non esserci, è invece pronto e funzionante (vedi immagine).

                        Per le 50 righe di codice che ho promesso di tradurre perchè ne dubiti?

                        Tu posta i codici e dopo, se non verranno tradotti, potrai dubitarne, non prima, non è leale!

                        Ora ti prego di abbassare i toni e di considerare che 4 persone del mio staff ed io ci siamo impegnati a rispondere alle tue richieste, ad ogni cosa che hai chiesto, con spirito costruttivo, con entusiamo e tutta la nostra professionalità.

                        Cordialmente,
                        Tiziano
                        File Allegati
                        ..se corri dietro a due lepri, non ne prendi nemmeno una.

                        Comment

                        • maxmax68
                          Senior Member

                          • Sep 2013
                          • 186

                          #27
                          Caro Tiziano,
                          La ringrazio per avermi cortesemente dato del maleducato.
                          Sicuramente questo è il modo migliore per smorzare una polemica.
                          Riguardo alla funzione changeif, le faccio presente che trattasi di nuova funzione
                          non riportata nel vostro manuale (v1.2, ma forse ne è uscita una nuova versione)
                          e che Max Francario dice nel suo post sarà inserita nella prossima release.
                          Detto questo, come vostra prossima risposta gradirei il codice dell\'indicatore richiesto.
                          Ai fini del forum credo sia più utile delle parole.
                          Quello che allo stato attuale sono in grado di programmare, poco, ve l\'ho già postato nel forum.
                          Se volete posso fornire la versione in EasyLanguage.
                          Saluti.
                          Massimo

                          Comment

                          • Cagalli Tiziano
                            Senior Member
                            • Dec 2007
                            • 11252

                            #28
                            Originariamente Scritto da maxmax68
                            Caro Tiziano,
                            La ringrazio per avermi cortesemente dato del maleducato.
                            Sicuramente questo è il modo migliore per smorzare una polemica.
                            Mai fatto, ci mancherebbe.

                            Riguardo alla funzione changeif, le faccio presente che trattasi di nuova funzione
                            non riportata nel vostro manuale (v1.2, ma forse ne è uscita una nuova versione)
                            e che Max Francario dice nel suo post sarà inserita nella prossima release.
                            Ti faccio presente che trattasi di funzione costruita per te, non la trovi ora ma sarà nella prossima release!
                            Ti ho messo un\' immagine!

                            Detto questo, come vostra prossima risposta gradirei il codice dell\'indicatore richiesto.
                            Ai fini del forum credo sia più utile delle parole.
                            Quello che allo stato attuale sono in grado di programmare, poco, ve l\'ho già postato nel forum.
                            Se volete posso fornire la versione in EasyLanguage.
                            Saluti.
                            Massimo
                            Posta il codice in EasyLanguage e noi lo tradurremo a beneficio di tutti.
                            ..se corri dietro a due lepri, non ne prendi nemmeno una.

                            Comment

                            • maxmax68
                              Senior Member

                              • Sep 2013
                              • 186

                              #29
                              Questo plotta i due trailing stop High e Low.
                              Ottenuti questi poi potremo eventualmente passare alla strategia.
                              Saluti
                              Massimo


                              // Trailing Stop basato su Pivot Point
                              // by Massimo Rizzi
                              //
                              Inputs:
                              vLeft (10), // Numero di barre a sinistra del pivot
                              vRight (10); // Numero di barre a destra del pivot

                              Vars:
                              vTrailingStopLow(0), // Il nostro indicatore Trailing Stop Low
                              vTrailingStopHigh(0); // Il valore precedente del Trailing High

                              If currentbar=1 then vTrailingStopLow=Low; // Inizializza valore indicatore

                              // Condizione per individuare il pivot point Low
                              // Il Low del pivot deve essere <= ai Low delle vLeft barre a sinistra
                              // e minore del Low delle vRight barre a destra

                              Condition1 = Low[vRight]<=Lowest(Low, vLeft)[vRight+1]
                              and Low[vRight]<Lowest(Low, vRight);

                              // Condizione per individuare il pivot point High
                              // L\' High del pivot deve essere >= all\'High delle vLeft barre a sinistra
                              // e maggiore degli High delle vRight barre a destra

                              Condition2 = High[vRight]>=Highest(High, vLeft)[vRight+1]
                              and High[vRight]>Highest(High, vRight);


                              if condition1 then vTrailingStopLow=Low[vRight];
                              if condition2 then vTrailingStopHigh=High[vRight];


                              plot1(vTrailingStopLow);
                              plot2(vTrailingStopHigh);



                              Click image for larger version

Name:	MultiCharts2.jpg
Views:	1
Size:	145.9 KB
ID:	148830

                              Comment

                              • Cagalli Tiziano
                                Senior Member
                                • Dec 2007
                                • 11252

                                #30
                                Originariamente Scritto da maxmax68
                                Questo plotta i due trailing stop High e Low.
                                Ottenuti questi poi potremo eventualmente passare alla strategia.
                                Saluti
                                Massimo


                                // Trailing Stop basato su Pivot Point
                                Ecco il codice tradotto:

                                Codice:
                                #
                                #
                                # Trailing Stop basato su Pivot Point
                                Inputs: @vLeft(10), @vRight(10)
                                
                                # Condizione per individuare il pivot point Low
                                # Il Low del pivot deve essere <= ai Low delle vLeft barre a sinistra
                                # e minore del Low delle vRight barre a destra
                                SET Condition1 = REF(Low, @vRight) <= REF(LowestLowValue(@vLeft), @vRight + 1) and REF(Low, @vRight) < LowestLowValue(@vRight)
                                
                                # Condizione per individuare il pivot point High
                                # L\' High del pivot deve essere >= all\'High delle vLeft barre a sinistra
                                # e maggiore degli High delle vRight barre a destra
                                SET Condition2 = REF(High, @vRight) >= REF(HighestHighValue(@vLeft), @vRight + 1) and REF(High, @vRight) > HighestHighValue(@vRight)
                                
                                SET PLOT1 = CHANGEIF(Condition1, REF(Low, @vRight))
                                SET PLOT2 = CHANGEIF(Condition2, REF(High, @vRight))
                                
                                #
                                ed ecco il risultato, logicamente identico:
                                File Allegati
                                Last edited by Cagalli Tiziano; 09-10-13, 15:49.
                                ..se corri dietro a due lepri, non ne prendi nemmeno una.

                                Comment

                                Working...