Discussione: Multi TimeFrame nello stesso Script. E' possibile ?
-
10-10-13, 21:57 #1
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
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
-
11-10-13, 11:38 #2
Salve,
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
-
11-10-13, 16:13 #3
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
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
# 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
-
11-10-13, 16:45 #4
- Data Registrazione
- Dec 2009
- Messaggi
- 813
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++.
Ultima modifica di CIVT; 11-10-13 alle 16:58
-
11-10-13, 16:57 #5
Salve 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 FrancarioUltima modifica di Francario Massimiliano; 11-10-13 alle 17:00
-
11-10-13, 17:41 #6
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
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
-
12-10-13, 14:12 #7
- Data Registrazione
- Jan 2008
- Messaggi
- 1,004
-
12-10-13, 14:28 #8
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
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
-
12-10-13, 15:50 #9
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:
IF (@condition , @TRuePart , @FalsePart)
ed a :
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:
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:
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 BoscoUltima modifica di Marco Bosco; 12-10-13 alle 16: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)
-
12-10-13, 21:00 #10
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.