Multi TimeFrame nello stesso Script. E' possibile ?

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • maxmax68
    Senior Member

    • Sep 2013
    • 186

    #1

    Multi TimeFrame nello stesso Script. E' possibile ?

    Buonasera a tutti,
    in ogni chart al momento è possibile caricare una sola serie di dati, giusto ?
    Quindi se aperta una chart con timeframe di un minuto volessi conoscere, per esempio, il prezzo di chiusura del giorno prima come dovrei fare ?
    Esiste una funzione già disponibile ?
    Se come credo la risposta è no, per eventuali release future, vi chiederei di iniziare a pensare a qualcosa.
    Spesso infatti nei trading system si fa uso di calcoli operati su diversi timeframe dello stesso simbolo.
    Saluti
    Massimo
  • Francario Massimiliano
    Administrator
    • Jul 2008
    • 1033

    #2
    Salve,
    Originariamente Scritto da maxmax68
    Buonasera a tutti,
    in ogni chart al momento è possibile caricare una sola serie di dati, giusto ?
    Quindi se aperta una chart con timeframe di un minuto volessi conoscere, per esempio, il prezzo di chiusura del giorno prima come dovrei fare ?
    Esiste una funzione già disponibile ?
    Se come credo la risposta è no, per eventuali release future, vi chiederei di iniziare a pensare a qualcosa.
    Spesso infatti nei trading system si fa uso di calcoli operati su diversi timeframe dello stesso simbolo.
    Saluti
    Massimo
    Al momento attuale non è possibile creare script che lavorino su più timeframe contemporaneamente.
    E\' già presente nella nostra task list la possibilità di aggiungere più strumenti contemporaneamente sullo stesso grafico, anche con timeframe diversi, e di conseguenza di poter utilizzare questi strumenti anche sullo script.

    Max Francario
    Manuale di beeTrader
    Manuale di Fiuto Beta

    Comment

    • maxmax68
      Senior Member

      • Sep 2013
      • 186

      #3
      Salve Max, ok.
      Nel frattempo forse ci si può arrangiare così.
      Certo sarebbe meglio se fosse possibile creare dei vettori che non vengono aggiornati ad ogni barra,
      ma solo all\'avverarsi della condizione, perché questo permetterebbe con il ref 1, 2, 3, etc
      di andare in questo caso a ripescare il valore del close del giorno prima, o l\'altro ieri, etc ....
      Visto che Lei è il programmatore di beeTrader, ne approfitto per una domanda che ho in testa dal primo giorno
      che ho cominciato ad usare EasyScript.
      Perché avete scelto la modalità vettoriale ?
      Che tipo di vantaggio apporta rispetto ai linguaggi tradizionali ?
      Da profano quale sono mi sembra che questa modalità comporti numerose limitazioni, più che vantaggi.
      Sicuramente mi sbaglio e Lei saprà spiegarmi il perché.
      Saluti
      Massimo
      Codice:
      # Assign the indicator values to the PLOTx variables like in the following example:
      # SET PLOT1 = SimpleMovingAverage(CLOSE, 14)
      SET A=REF(CLOSE, 1)
      SET B=DATE
      SET C=REF(DATE, 1)
      SET D=CHANGEIF(B != C, A)
      SET PLOT1=D

      Comment

      • CIVT
        Senior Member
        • Dec 2009
        • 813

        #4
        Originariamente Scritto da maxmax68
        Che tipo di vantaggio apporta rispetto ai linguaggi tradizionali ?
        Da profano quale sono mi sembra che questa modalità comporti numerose limitazioni, più che vantaggi.
        Io invece da utonto quale sono trovo che questo linguaggio sia MOLTO ma MOLTO piu\' intuitivo e semplice da utilizzare per un trader con limitate capacità di programmazione, credo quindi che la scelta del linguaggio vettoriale sia stata dettata in primis da questo motivo, Playoptions ha sempre tentato di rendere semplice e alla portata di tutti qualcosa che nasce complicato per definizione come ad esempio il trading in opzioni! L\'esempio del manuale a mio avviso vuole sottolineare proprio questo aspetto che differenzia il linguaggio easyscript da tutti gli altri linguaggi di programmazione:

        A titolo di esempio, per calcolare una Simple Moving Average sulla base del prezzo medio di un titolo a 30 periodi, in un linguaggio di programmazione tradizionale come BASIC sarebbe necessario scrivere un programma simile a questo:

        For bar = 30 to max
        Average = 0
        For n = bar - 30 to bar
        median = (CLOSE + OPEN) / 2
        Average = Average + median
        Next
        MedianAverage(bar) = Average / 30
        Next bar

        Con EasyScript® si può ottenere lo stesso risultato scrivendo:

        SET MedianAverage = SimpleMovingAverage ((CLOSE + OPEN) / 2, 30)

        Ed ora MedianAverage è un nuovo vettore che contiene la Simple Moving Average a 30 periodi del prezzo medio dello strumento in ogni punto.
        Non è raro trovare esempi di programmazione vettoriale costituiti da una singola linea di codice che richiedono più di un paio di pagine di BASIC, Java o C++.
        Last edited by CIVT; 11-10-13, 15:58.

        Comment

        • Francario Massimiliano
          Administrator
          • Jul 2008
          • 1033

          #5
          Salve Massimo,
          Originariamente Scritto da maxmax68
          Salve Max, ok.
          Nel frattempo forse ci si può arrangiare così.
          Certo sarebbe meglio se fosse possibile creare dei vettori che non vengono aggiornati ad ogni barra,
          ma solo all\'avverarsi della condizione, perché questo permetterebbe con il ref 1, 2, 3, etc
          di andare in questo caso a ripescare il valore del close del giorno prima, o l\'altro ieri, etc ....
          Visto che Lei è il programmatore di beeTrader, ne approfitto per una domanda che ho in testa dal primo giorno
          che ho cominciato ad usare EasyScript.
          Perché avete scelto la modalità vettoriale ?
          Che tipo di vantaggio apporta rispetto ai linguaggi tradizionali ?
          Da profano quale sono mi sembra che questa modalità comporti numerose limitazioni, più che vantaggi.
          Sicuramente mi sbaglio e Lei saprà spiegarmi il perché.
          Saluti
          Massimo
          come avrà notato, da questa release è presente la funzione CHANGEIF che fa esattamente quanto aveva richiesto.
          Per venire incontro alle vostre necessità, inoltre, stiamo facendo in modo che dove adesso si è obbligati ad usare un valore numerico, sia possibile utilizzare un vettore, in modo da fornire una maggiore flessibilità al linguaggio.

          Relativamente alla scelta del linguaggio di tipo vettoriale, come già altri hanno fatto notare, la facilità di apprendimento per gli utenti alle prime armi è inarrivabile rispetto ad un linguaggio tradizionale.
          Ovviamente c\'è anche il rovescio della medaglia, e cioè una generale "staticità" del linguaggio.
          Proprio per questo, sempre nella nostra task list per il futuro, in questo caso a medio termine, c\'è un "pallino" bello grosso ed evidenziato, che recita: "Implementare linguaggio di scripting tramite .NET". Questo significa che, quando sarà implementato questo sistema, gli utenti potranno implementare funzioni, indicatori, segnali e quant\'altro in un qualsiasi linguaggio supportato dal framework .NET, a patto di rispettare una specifica interfaccia. Avremo quindi a disposizione due sistemi: da una parte EasyScript per gli utenti "non programmatori", e dall\'altra .NET per gli utenti "programmatori".

          Max Francario
          Last edited by Francario Massimiliano; 11-10-13, 16:00.
          Manuale di beeTrader
          Manuale di Fiuto Beta

          Comment

          • maxmax68
            Senior Member

            • Sep 2013
            • 186

            #6
            Originariamente Scritto da CIVT
            Io invece da utonto quale sono trovo che questo linguaggio sia MOLTO ma MOLTO piu\' intuitivo e semplice da utilizzare per un trader con limitate capacità di programmazione, credo quindi che la scelta del linguaggio vettoriale sia stata dettata in primis da questo motivo, Playoptions ha sempre tentato di rendere semplice e alla portata di tutti qualcosa che nasce complicato per definizione come ad esempio il trading in opzioni! L\'esempio del manuale a mio avviso vuole sottolineare proprio questo aspetto che differenzia il linguaggio easyscript da tutti gli altri linguaggi di programmazione:
            Ragazzi non scherziamo !!!

            In EasyLanguage è semplicemente:
            MedianAverage = Average(Close,9);
            in EFS :
            MedianAverage = sma(close,9);
            L\'età della pietra è finita da un pezzo.

            Il linguaggio C Sharp, quello si che è complicato.
            Nonostante ci tenti da qualche anno non sono ancora riuscito ad apprenderlo.
            Saluti
            Massimo

            Comment

            • bergamin
              Senior Member
              • Jan 2008
              • 1011

              #7
              Originariamente Scritto da maxmax68
              Ragazzi non scherziamo !!!

              In EasyLanguage è semplicemente:
              MedianAverage = Average(Close,9);
              in EFS :
              MedianAverage = sma(close,9);
              L\'età della pietra è finita da un pezzo.

              Il linguaggio C Sharp, quello si che è complicato.
              Nonostante ci tenti da qualche anno non sono ancora riuscito ad apprenderlo.
              Saluti
              Massimo
              Tanto per capire, questo come si scrive nei due linguaggi?

              Set MHL = SMA ((high+low)/2), 9

              grazie,
              Bergamin

              ps: dato che tu scrivi che l\'età della pietra è finita, il linguaggio C Sharp perchè lo studi da anni (e continui a farlo), che vantaggi ha?

              Comment

              • maxmax68
                Senior Member

                • Sep 2013
                • 186

                #8
                Buongiorno a tutti,
                vorrei chiarire la mia posizione nei confronti di beeTrader, visto che qualcuno mi ha accusato di essere un "guastatore".
                -
                Io spero che beeTrader abbia tantissimo successo, e, a questo prezzo, sicuramente lo sottoscriverò terminato il periodo di prova !!!
                E\' un prodotto italiano con team di supporto in lingua italiana che sicuramente non guasta.
                Opera con Webank, e permette gli ordini marginati sull\'azionario italiano che per esempio Multicharts non permette di fare.
                Quindi ribadisco, io tifo per beeTrader, e spero di poterlo usare per molti anni a venire.
                -
                Detto questo, però, obiettivamente il programma allo stato attuale presenta moltissimi limiti.
                E credo che la funzione del forum sia anche quella di portare all\'attenzione dello staff questi eventuali limiti, in modo che possano essere risolti nelle release successive, come per esempio è stato nel caso del tanto famigerato CHANGEIF.
                -
                Personalmente credo che la facilità d\'uso e d\'apprendimento la si poteva ottenere lo stesso,
                anche rimanendo nel solco delle piattaforme tradizionali che valutano tutte le istruzioni sequenzialmente barra per barra.
                Al contrario la scelta del vettoriale con conseguente "staticità", mi sembra costringa la beeTrader
                a delle limitazioni - è un peccato che ci siano - così senza alcun vantaggio per l\'utente finale.
                Dov\'è il vantaggio ???
                -
                Sto cercando di costruire, non di demolire, quindi leggete bene prima di saltarmi addosso con le vostre risposte piccate !!!
                Assolutamente non può esistere un linguaggio senza IF-THEN-ELSE con blocchi di più istruzioni da eseguire al verificarsi delle condizioni.
                Un IF-THEN-ELSE con blocchi di più istruzioni permette veramente di costruire quasi qualsiasi cosa.
                IF o CHANGEIF su una singola istruzione/riga invece non è abbastanza flessibile.
                Idem dicasi per il FOR loop.
                Inoltre mancano gli Arrays. Fondamentali !!!
                Tornando all\'esempio del close dei giorni precedenti, un paio di post più su, con gli array sarebbe stato possibile memorizzare il singolo close di ogni giorno e poi recuperarlo come valore.
                Invece ora in beeTrader possiamo solo creare un vettore che ad ogni barra scrive un valore, non solo al verificarsi della condizione. Rendendo quindi impossibile o quasi recuperare valori più vecchi di quello di ieri.
                -
                Per ora basta, alle prossime.
                Cordialmente
                Massimo

                Comment

                • Marco Bosco
                  Senior Member

                  • Sep 2012
                  • 419

                  #9
                  Originariamente Scritto da maxmax68
                  Buongiorno a tutti,
                  vorrei chiarire la mia posizione nei confronti di beeTrader, visto che qualcuno mi ha accusato di essere un "guastatore".
                  -
                  Io spero che beeTrader abbia tantissimo successo, e, a questo prezzo, sicuramente lo sottoscriverò terminato il periodo di prova !!!
                  E\' un prodotto italiano con team di supporto in lingua italiana che sicuramente non guasta.
                  Opera con Webank, e permette gli ordini marginati sull\'azionario italiano che per esempio Multicharts non permette di fare.
                  Quindi ribadisco, io tifo per beeTrader, e spero di poterlo usare per molti anni a venire.
                  -
                  Detto questo, però, obiettivamente il programma allo stato attuale presenta moltissimi limiti.
                  E credo che la funzione del forum sia anche quella di portare all\'attenzione dello staff questi eventuali limiti, in modo che possano essere risolti nelle release successive, come per esempio è stato nel caso del tanto famigerato CHANGEIF.
                  -
                  Personalmente credo che la facilità d\'uso e d\'apprendimento la si poteva ottenere lo stesso,
                  anche rimanendo nel solco delle piattaforme tradizionali che valutano tutte le istruzioni sequenzialmente barra per barra.
                  Al contrario la scelta del vettoriale con conseguente "staticità", mi sembra costringa la beeTrader
                  a delle limitazioni - è un peccato che ci siano - così senza alcun vantaggio per l\'utente finale.
                  Dov\'è il vantaggio ???
                  -
                  Sto cercando di costruire, non di demolire, quindi leggete bene prima di saltarmi addosso con le vostre risposte piccate !!!
                  Assolutamente non può esistere un linguaggio senza IF-THEN-ELSE con blocchi di più istruzioni da eseguire al verificarsi delle condizioni.
                  Un IF-THEN-ELSE con blocchi di più istruzioni permette veramente di costruire quasi qualsiasi cosa.
                  IF o CHANGEIF su una singola istruzione/riga invece non è abbastanza flessibile.
                  Idem dicasi per il FOR loop.
                  Inoltre mancano gli Arrays. Fondamentali !!!
                  Tornando all\'esempio del close dei giorni precedenti, un paio di post più su, con gli array sarebbe stato possibile memorizzare il singolo close di ogni giorno e poi recuperarlo come valore.
                  Invece ora in beeTrader possiamo solo creare un vettore che ad ogni barra scrive un valore, non solo al verificarsi della condizione. Rendendo quindi impossibile o quasi recuperare valori più vecchi di quello di ieri.
                  -
                  Per ora basta, alle prossime.
                  Cordialmente
                  Massimo

                  Buongiorno Massimo,
                  tutte le opinioni costruttive sono un contributo.

                  I limiti che vengono percepiti dai nuovi utilizzatori di EasyScript sono probabilmente dovuti allo sforzo della mente di doversi adattare ad un nuovo modo di ragionare, che probabilmente per anni ha ragionato in altro modo.
                  E sicuramente ci saranno anche delle cose da migliorare e verranno migliorate e come hai potuto apprezzare con mano, la snellezza di Playoptions ti ha permesso di richiedere una necessità e di ottenerla (CHANGEIF) nel giro di 2 giorni

                  Un\'altro limite che la nostra mente costruisce è quello dei blocchi multi-riga dei linguaggi imperativi (linguaggi che vengono eseguiti riga per riga).

                  Il comando IF e il costrutto IF - THEN - ELSE sono modi diversi di avere la stessa cosa. La funzione IF può essere arbitrariamente complessa.

                  Pensa ad:

                  Codice:
                     IF (@condition , @TRuePart , @FalsePart)
                  ed a :

                  Codice:
                      IF Condition  Then
                          True Part
                      ELSE
                          FalsePart
                      END IF

                  Al programmatore interessano solo le istruzioni condition , truepart e false part ,....il resto le parole IF , END IF, THEN , ELSE , le parentesi.... sono SOLO RUMORE ... che vuole il compilatore/parser per accontentare il programmatore.


                  La tua @condition può essere tranquillamente espansa su quante righe si vuole e complessa a piacere.

                  Di seguito un esempio:

                  Codice:
                  set A = 3 + 5 + CLOSE
                  set B = A * ABS(OPEN)
                  SET C = B * ARCSIN(ARCTAN(ARCSIN(ARCTAN(B))))
                  set D = A + B
                  SET E = if ( D  , OPEN , CLOSE )
                  
                  
                  set F = if(E, C, OPEN)
                  Inoltre è possibile creare quante funzioni si vogliano e richiamarle per esempio dentro lo script.

                  Immaginiamo di aver creato una funzione chiamata MyFunc composta da centinaia di righe di codice.

                  E\' possibile scrivere il seguente script:

                  Codice:
                  SET A = MyFunct
                  SET B = IF(A, OPEN, CLOSE)

                  Per quanto riguarda invece la pianificazione dell\'aggiunta del linguaggio C Sharp a BeeTrader ( vorrei far notare che la compatibilità sarà verso .Net e quindi non solo su C# , ma su un qualsiasi linguaggio .Net compatibili....ciòè praticamente tutti ...compreso il visual basic ) non è difficile , ma è vero che anch\'esso è un modo diverso di ragionare. E\' un modo di ragionare imperativo (riga per riga) e quindi probabilmente più vicino al tuo attuale stile.

                  Con questo upgrade magari sara possibile ragionare anche una barra alla volta e magari NON soppianterà EasyScript ma lo affiancherà!!! Lasciando il trader libero di fare davvero qualsiasi cosa e con ogni cosa.

                  Detto tutto questo , voglio dirti che non devono spaventarti tutti questi nomi e queste cose!
                  E posso prometterti che saranno tutte molto semplici.

                  Come EasyScript !, e tra un mese o due di utilizzo ti sembrerà probabilmente del tutto normale e semplice.

                  buona giornata,
                  Marco Bosco
                  Last edited by Marco Bosco; 12-10-13, 15:11.
                  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

                  • Cagalli Tiziano
                    Senior Member
                    • Dec 2007
                    • 11252

                    #10
                    Originariamente Scritto da maxmax68
                    Buongiorno a tutti,
                    vorrei chiarire la mia posizione nei confronti di beeTrader, ...
                    -
                    Per ora basta, alle prossime.
                    Cordialmente
                    Massimo
                    Ciao Massimo, grazie per quello che hai scritto e condivido in pieno molte delle tue affermazioni. Non condivido il post nel quale ti hanno dato del guastatore e, dopo aver telefonato al mio caro amico che lo aveva scritto, l\'ho cancellato.

                    Quindi riprendiamo le nostre discussioni costruttive sul prodotto in essere.

                    Lascio spazio ai dettagli al team dei programmatori che lo hanno sviluppato e che ne sanno certamente più di me, io sono solo un trader, ma sono anche l\'ideatore del progetto e vorrei, scusandomi se non sarò brevissimi, mettere al corrente te e altri utenti del pensiero che mi ha portato a questo prodotto.

                    Premetto che noi, come Playoptions, abbiamo già un linguaggio di scripting piuttosto complesso che riesce a soddisfare le condizioni di trading system sulle opzioni che, a differenza del sottostante, non hanno solo il last ma altri 121 parametri che le valorizzano.

                    Questo per dire che sarebbe stato semplicissimo ed economicamente vantaggioso, "staccare" il grafico del sottostante e applicare lo script che già abbiamo. (Se vui fare una prova puoi chiedere un periodo gratuito e vedrai di persona che non troverai nessun vincolo nella scrittura di tutto ciò che vorrai programmare anche solo sul sottostante).

                    Il mio progetto però è diverso ed ha spiazzato anche i miei cari programmatori:

                    dare a tutti gli utenti la possibilità di scrivere ciò che quotidinamente fanno e perciò provarlo in modo scientifico.
                    Vedere e valutare i punti di miglioramento e quindi crescere come trader.
                    In pratica ho cercato di ridurre al minimo le "parole" necessarie per scrivere un proprio trading system, sapendo che gli utenti già smaliziati o programmatori, avrebbero trovato qualche debolezza nel linguaggio.

                    Quello che voglio fare è la stessa cosa che ho fatto con Fiuto Beta: 8000 utilizzatori riescono a graficare le opzioni e hanno preso coscenza che per far bene questo mestiere ci vogliono alcune conoscenze.
                    Da Fiuto Beta, programma che regalo ma che è completo e ne supera diversi altri a pagamento, si può accedere a Fiuto Pro.
                    Ovvero al passo successivo con le conoscenze del passo precedente.
                    Si riesce ad affrontare le difficoltà con maggior forza e soprattutto si hanno delle conoscenze basi per poter far funzionare e adoperare le tante cose che offre un prodotto adatto agli istituzionali.

                    Analogamente, con beeTrader l\'utente imparerà i suoi limiti, vedrà come migliorare le sue prestazioni, scambierà opinioni con altri trader e con noi che questo lavoro, programmare tading system, lo facciamo da 4 lustri. Quindi si evolverà e di conseguenza ricercherà sofisticazioni che troverà nella versione di scrpt più avanzata...ma dopo però.

                    Ora manca ancora la cultura del far trading in modo professionale e gli altri software ti offrono possibilità quasi infinite ma, proprio perchè quasi infinite, difficili da affrontare. E si abbandona!

                    E un esempio concreto di come funziona il progetto, lo posso citare proprio grazie a te: hai scritto di una certa funzione, hai catturato l\'attenzione degli utenti che, appena l\'abbiamo resa disponibile, l\'hanno usata, l\'anno capita e ti hanno ringraziato (utente CIVT).

                    Tra un paio d\'anni mi piacerebbe sentire ogni trader parlare di "sistemi" e smettere con il discrezionale che purtroppo coinvolge l\'emotività e spesso toglie la lucidità.

                    Ho messo sul mercato beeTrader ad un prezzo veramente sotto costo perchè vorrei che si espandesse e creare una generazione di trader tecnici, come è successo con le opzioni.

                    E\' un software che si autoalimenterà di conoscenze e, quando ci verranno chieste nuove funzioni, le discuteremo, le renderemo disponibili e le useremo.

                    Questo è il progetto, questa è la sfida.
                    ..se corri dietro a due lepri, non ne prendi nemmeno una.

                    Comment

                    • maxmax68
                      Senior Member

                      • Sep 2013
                      • 186

                      #11
                      Grazie Tiziano e Marco per la vostra cortese risposta e scusate il ritardo.
                      Tiziano, credo che il tuo sia un progetto di grande lungimiranza,
                      ma ti prego di valutare con i tuoi collaboratori la possibilità
                      di convertire l\'EasyScript vettoriale in un EasyScript normale
                      ugualmente semplice ma molto più flessibile per tutti i motivi già citati.
                      Non mi resta che aspettare con pazienza i futuri sviluppi e miglioramenti di beeTrader.
                      Saluti
                      Massimo

                      Comment

                      • maxmax68
                        Senior Member

                        • Sep 2013
                        • 186

                        #12
                        Originariamente Scritto da Marco Bosco
                        Buongiorno Massimo,
                        tutte le opinioni costruttive sono un contributo.

                        I limiti che vengono percepiti dai nuovi utilizzatori di EasyScript sono probabilmente dovuti allo sforzo della mente di doversi adattare ad un nuovo modo di ragionare, che probabilmente per anni ha ragionato in altro modo.
                        E sicuramente ci saranno anche delle cose da migliorare e verranno migliorate e come hai potuto apprezzare con mano, la snellezza di Playoptions ti ha permesso di richiedere una necessità e di ottenerla (CHANGEIF) nel giro di 2 giorni

                        Un\'altro limite che la nostra mente costruisce è quello dei blocchi multi-riga dei linguaggi imperativi (linguaggi che vengono eseguiti riga per riga).

                        Il comando IF e il costrutto IF - THEN - ELSE sono modi diversi di avere la stessa cosa. La funzione IF può essere arbitrariamente complessa.

                        Pensa ad:

                        Codice:
                           IF (@condition , @TRuePart , @FalsePart)
                        ed a :

                        Codice:
                            IF Condition  Then
                                True Part
                            ELSE
                                FalsePart
                            END IF

                        Al programmatore interessano solo le istruzioni condition , truepart e false part ,....il resto le parole IF , END IF, THEN , ELSE , le parentesi.... sono SOLO RUMORE ... che vuole il compilatore/parser per accontentare il programmatore.


                        La tua @condition può essere tranquillamente espansa su quante righe si vuole e complessa a piacere.

                        Di seguito un esempio:

                        Codice:
                        set A = 3 + 5 + CLOSE
                        set B = A * ABS(OPEN)
                        SET C = B * ARCSIN(ARCTAN(ARCSIN(ARCTAN(B))))
                        set D = A + B
                        SET E = if ( D  , OPEN , CLOSE )
                        
                        
                        set F = if(E, C, OPEN)
                        Inoltre è possibile creare quante funzioni si vogliano e richiamarle per esempio dentro lo script.

                        Immaginiamo di aver creato una funzione chiamata MyFunc composta da centinaia di righe di codice.

                        E\' possibile scrivere il seguente script:

                        Codice:
                        SET A = MyFunct
                        SET B = IF(A, OPEN, CLOSE)

                        Per quanto riguarda invece la pianificazione dell\'aggiunta del linguaggio C Sharp a BeeTrader ( vorrei far notare che la compatibilità sarà verso .Net e quindi non solo su C# , ma su un qualsiasi linguaggio .Net compatibili....ciòè praticamente tutti ...compreso il visual basic ) non è difficile , ma è vero che anch\'esso è un modo diverso di ragionare. E\' un modo di ragionare imperativo (riga per riga) e quindi probabilmente più vicino al tuo attuale stile.

                        Con questo upgrade magari sara possibile ragionare anche una barra alla volta e magari NON soppianterà EasyScript ma lo affiancherà!!! Lasciando il trader libero di fare davvero qualsiasi cosa e con ogni cosa.

                        Detto tutto questo , voglio dirti che non devono spaventarti tutti questi nomi e queste cose!
                        E posso prometterti che saranno tutte molto semplici.

                        Come EasyScript !, e tra un mese o due di utilizzo ti sembrerà probabilmente del tutto normale e semplice.

                        buona giornata,
                        Marco Bosco
                        Ciao Marco,
                        ho bisogno del tuo aiuto per apportare una piccola modifica all\'indicatore Pivot.
                        In EasyLanguage ho modificato l\'indicatore in modo da essere flessibile tramite input.
                        Questa nuova versione permette infatti tramite input di scegliere se plottare il pivot high o low.
                        Inoltre permette anche di scegliere il prezzo da plottare, che può essere una cosa semplice
                        come (High+Low)/2 oppure una cosa più complessa come Average(Close,10) o Low-3*ATR(14).
                        Vorrei realizzare lo stesso in EasyScript, credi sia possibile.
                        Naturalmente la richiesta di aiuto è aperta a chiunque voglia contribuire.
                        Grazie
                        Massimo


                        // Indicatore Pivot Flessibile
                        // by Massimo Rizzi
                        //
                        Inputs:
                        vPrice((High+Low)/2), // Prezzo usato per calcolare il pivot. Es. Average(close,10), etc ...
                        vLeft (10), // Numero di barre a sinistra del pivot
                        vRight (10), // Numero di barre a destra del pivot
                        vDir (0); // 0 - per Pivot Low, 1 - per Pivot High
                        Vars:
                        vPivot(0); // Il nostro indicatore

                        Once vPivot=low; // Inizializza vPivot
                        // Condizione per individuare il pivot point Low
                        // Il vPrice del pivot deve essere <= ai vPrice delle vLeft barre a sinistra
                        // e minore del vPrice delle vRight barre a destra
                        Condition1 = vDir=0 and (vPrice[vRight]<=Lowest(vPrice, vLeft)[vRight+1]
                        and vPrice[vRight]<Lowest(vPrice, vRight));

                        // Condizione per individuare il pivot point High
                        // L\' vPrice del pivot deve essere >= all\'vPrice delle vLeft barre a sinistra
                        // e maggiore degli vPrice delle vRight barre a destra
                        Condition2 = vDir=1 AND (vPrice[vRight]>=Highest(vPrice, vLeft)[vRight+1]
                        and vPrice[vRight]>Highest(vPrice, vRight));

                        if Condition1 then vPivot=vPrice[vRight]
                        else if Condition2 then vPivot=vPrice[vRight];

                        plot1(vPivot);

                        Comment

                        • Francario Massimiliano
                          Administrator
                          • Jul 2008
                          • 1033

                          #13
                          Salve Massimo,
                          Originariamente Scritto da maxmax68
                          Ciao Marco,
                          ho bisogno del tuo aiuto per apportare una piccola modifica all\'indicatore Pivot.
                          In EasyLanguage ho modificato l\'indicatore in modo da essere flessibile tramite input.
                          Questa nuova versione permette infatti tramite input di scegliere se plottare il pivot high o low.
                          Inoltre permette anche di scegliere il prezzo da plottare, che può essere una cosa semplice
                          come (High+Low)/2 oppure una cosa più complessa come Average(Close,10) o Low-3*ATR(14).
                          Vorrei realizzare lo stesso in EasyScript, credi sia possibile.
                          Naturalmente la richiesta di aiuto è aperta a chiunque voglia contribuire.
                          Grazie
                          Massimo
                          l\'indicatore sarà realizzabile dalla prossima release 0.8.10.15 di beeTrader, perchè è necessario fare in modo di poter valutare delle espressioni al posto dei valori numerici attuali per il parametro PERIODS della funzione REF.
                          Ecco comunque il codice da utilizzare:

                          Codice:
                          # Indicatore Pivot Flessibile
                          Inputs: @vPrice(CLOSE), @vLeft(10), @vRight(10), @vDir(0)
                          
                          # Condizione per individuare il pivot point Low
                          # Il vPrice del pivot deve essere <= ai vPrice delle vLeft barre a sinistra
                          # e minore del vPrice delle vRight barre a destra
                          SET Condition1 = (@vDir = 0) AND (REF(@vPrice, @vRight) <= REF(MIN(@vPrice, @vLeft), @vRight + 1) AND REF(@vPrice, @vRight) < MIN(@vPrice, @vRight))
                          
                          # Condizione per individuare il pivot point High
                          # L\' vPrice del pivot deve essere >= all\'vPrice delle vLeft barre a sinistra
                          # e maggiore degli vPrice delle vRight barre a destra
                          SET Condition2 = (@vDir = 1) AND (REF(@vPrice, @vRight) >= REF(MAX(@vPrice, @vLeft), @vRight + 1) AND REF(@vPrice, @vRight) > MAX(@vPrice, @vRight))
                          
                          SET Condition = Condition1 OR Condition2
                          SET PLOT1 = CHANGEIF(Condition, REF(@vPrice, @vRight))
                          Max Francario
                          Manuale di beeTrader
                          Manuale di Fiuto Beta

                          Comment

                          • maxmax68
                            Senior Member

                            • Sep 2013
                            • 186

                            #14
                            Grazie Massimiliano per il codice, più tardi provo a giocarci un po\'.
                            Saluti
                            Massimo

                            Comment

                            • BMM
                              Senior Member

                              • Jan 2011
                              • 1306

                              #15
                              Originariamente Scritto da maxmax68
                              Assolutamente non può esistere un linguaggio senza IF-THEN-ELSE con blocchi di più istruzioni da eseguire al verificarsi delle condizioni.
                              Un IF-THEN-ELSE con blocchi di più istruzioni permette veramente di costruire quasi qualsiasi cosa.
                              Originariamente Scritto da Marco Bosco
                              Al programmatore interessano solo le istruzioni condition , truepart e false part ,....il resto le parole IF , END IF, THEN , ELSE , le parentesi.... sono SOLO RUMORE ... che vuole il compilatore/parser per accontentare il programmatore.
                              Ciao Marco,

                              credo che maxmax86 abbia ragione nella sua richiesta, qui sotto ti posto uno stralcio di codice scritto con altro linguaggio vettoriale, che ha anche la funzione IFvettoriale, che mi sembra essere quella a cui ti stavi riferendo

                              In quel linguaggio esistono comunque circostanze in cui sia necessario ricorrere ad un più lento calcolo barra per barra, ad esempio nel caso sia necessario memorizzare il prezzo di ingresso del trade ed usarlo per far dei conti per un traling stop customizzato a piacimento

                              Click image for larger version

Name:	Cattura.PNG
Views:	1
Size:	39.7 KB
ID:	148976

                              pensi che sia possibile fare qualcosa del genere con il solo IFvettoriale?
                              Last edited by BMM; 19-10-13, 17:29.

                              Comment

                              Working...