Discussione: Multi TimeFrame nello stesso Script. E' possibile ?
-
13-10-13, 01:24 #11
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
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
-
13-10-13, 22:45 #12
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
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);
-
14-10-13, 11:42 #13
Salve 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:
# 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
-
14-10-13, 20:30 #14
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Grazie Massimiliano per il codice, più tardi provo a giocarci un po'.
Saluti
Massimo
-
19-10-13, 17:19 #15
- Data Registrazione
- Jan 2011
- Località
- Genova
- Messaggi
- 1,306
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
pensi che sia possibile fare qualcosa del genere con il solo IFvettoriale?Ultima modifica di BMM; 19-10-13 alle 17:29
-
19-10-13, 18:08 #16
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao BMM,
secondo me il problema non sta nel vettoriale o nel non vettoriale (come diceva giustamente Marco).
Anche io come altri in questi giorni sto sperimentando delle limitazioni nell'uso di EasyScript così come è allo stato attuale, ma credo anche che tali limitazioni dipendano dal fatto che le funzioni vettoriali che ci hanno messo a disposizione sono ancora poche.
Sono sicuro che nel campo della programmazione ci sia sempre più di una soluzione a tutto!
Quindi aspettiamo di vedere di volta in volta i miglioramenti che verranno fatti con il rilascio delle nuove release.
-
19-10-13, 19:50 #17
Grazie, stavo per fare un esaurimento nervoso!
Mancano delle funzioni, erano in programma ...ma sono quasi 30 giorni che i tecnici sono bloccati nella risoluzione del problema del rallentamento che non si era mai manifestato
Se servono delle funzioni noi le scriviamo anche subito, vedi quella dei Pivot o del CHANGE IF, e lunedì faremo quella che possa soddisfare le esigenze di entrare a prezzi diversi (+ o - tick) rispetto al momento in cui scatta il segnale.
Perciò, se ci date una mano a chiedere ciò che vi serve, noi lo facciamo subito ma chiedetelo con delle priorità.
Grazie ragazzi, è un piacere lavorare con voi...se corri dietro a due lepri, non ne prendi nemmeno una.
-
19-10-13, 21:08 #18
- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Ciao a tutti,
so che con il mio intervento butterò benzina sul fuoco e da domani sarò bannato dal forum,
ma la frustrazione che mi ha dato programmare con beeTrader in questi giorni
non mi permette di trattenermi !!!
-
Sicuramente Tiziano e la sua squadra sono dei grandi,
lo dimostra la loro storia, quello che hanno realizzato fino a oggi.
Assolutamente e totalmente tanto di cappello.
Ma anche i grandi alle volte possono compiere delle scelte poco azzeccate !!!
-
E, al di la del limite delle troppe poche funzioni-istruzioni disponibili in EasyScript
(che verranno sicuramente ampliate di release in release),
il vero peccato originale di beeTrader è - a mio parere - l'essere vettoriale.
-
Questo è un limite, non un vantaggio, che lo condizionerà per sempre,
ponendo beeTrader in una posizione di eterno svantaggio rispetto a tutte le altre piattaforme
che calcolano barra per barra.
-
Parliamoci fuori dai denti.
Se il progetto è solo creare un giocattolino facile facile per il grande pubblico,
dove il trading system è costituito da un crossover di medie e poco più,
e dove la lungimiranza è quella di creare un parco clienti a cui vendere in futuro
dei trading system prefabbricati, allora beeTrader così com'è può andare benissimo.
-
Viceversa, se l'idea è quella di creare uno strumento facile per il grande pubblico,
ma allo stesso tempo abbastanza flessibile e potente in grado di stare al passo con le altre piattaforme,
allora Tiziano e squadra devono avere il coraggio di trasformare beeTrader da vettoriale a barra per barra !!!
-
Se la modalità barra per barra è stata adottata dalla quasi totalità delle piattaforme ci sarà pure un motivo.
Probabilmente in termini di velocità di calcolo questa modalità è meno efficiente,
ma il fatto di iterare tutte le righe del codice dall'inizio alla fine ad ogni barra, prima di passare alla barra successiva,
apre al programmatore delle possibilità che invece in beeTrader vettoriale sono negate.
E questi limiti evidenti cominciano ad emergere nel forum.
-
La modalità vettoriale, quindi il dover calcolare ogni riga di codice per tutte le barre del grafico
prima di passare alla successiva riga di codice, ha portato alla sparizione dei blocchi di istruzioni
degli IF(condizione)-THEN(blocco di più istruzioni)-ELSE(altro blocco di istruzioni), e peggio ancora,
ha portato anche alla mancata possibilità di inserire più livelli di IF-THEN-ELSE uno dentro l'altro.
Il tutto sostituito da CHANGEIF(condizione, singola istruzione)
oppure IF(condizione, singola istruzione true, singola istruzione false).
Assolutamente insufficiente, oltre che di estrema complicazione.
Altro che semplicità, come propagandato !!!
Per non parlare dei FOR-LOOPS e WHILE-LOOPS di blocchi di istruzioni e non singole operazioni.
-
In attesa di pubblica gogna
porgo cordiali saluti
Massimo
-
19-10-13, 21:33 #19
Ma ci mancherebbe che banniamo per una opinione.
Questa è la tua e quella di altri, la mia è differente come lo è quella di tanti altri.
Quindi vedremo, di certo beeTrader deve piacere al pubblico e non a me e non vuole essere un giocattolino..io prefersico fare cose serie.
Comunque devi anche capire che se vedo che per scrivere un acquisto ad un prezzo inferiore di quando scatta il segnale gli utenti non ci riescono mentre beeTrader da la possibilità di farlo (vedi post relativo appena messo) allora mi pongo una domanda: devo cambiare tutto per poi ritrovarmi con gli stessi utenti che non riusciranno a programmare?
Forse mi conviene tenere degli incontri web e dedicare del tempo alla didattica.
Comunque il lattaio non ha studiato programmazione e io ed altri abbiamo pensato che con beeTrader avesse più facilità.
Come ti ho già scritto il linguaggio professionale e super completo lo abbiamo già fatto in Fiuto Pro...e lo adoperano in una manciata di utenti...
Quindi che fare?
Intanto mi metto in ascolto di tutti i vostri commenti e poi credo che faremo una cosa semplice: entrambi i linguaggi.
Così era il progetto iniziale e così probabilmente faremo.
Grazie per il tempo che ci stai dedicando...se corri dietro a due lepri, non ne prendi nemmeno una.
-
19-10-13, 22:43 #20
- Data Registrazione
- Jan 2011
- Località
- Genova
- Messaggi
- 1,306
no, no, noi, o almeno io, non siamo qui "a lavorare con voi" ma ad imparare da un Grande Maestro come te
Saper programmare non significa niente se non si sa cosa programmare per fare dei soldi. E' un po' come essere insegnanti di tennis o essere in grado di vincere a Wimbledon. E' un attimo diverso
assolutamente no
La programmazione vettoriale è un paio di ordini di grandezza più veloce ed efficiente di quella barra per barra, il fatto che esistano situazioni in cui sia NECESSARIO il calcolo barra per barra è un'altra cosa.
Sempre senza far nomi posso testimoniare che anche quell'altro linguaggio è nato come totalmente vettoriale e poi vi è stata aggiunta la possibiltà di fare cicli for, if-then-else, while e via discorrendo per risolvere alcune esigenze particolari e, diciamo, sofisticate. Evidentemente le due cose possono coesistere ed il come unirle nella creazione di un linguaggio va ben oltre le mie limitate conoscenze informatiche ma, è chiaro, si può fare
IMHO è opportuno che anche Easyscript segua questo percorso, ora è appena nato e per adesso va bene così. Il mio intervento era volto solo ad evidenziare che ha senso mettere nella to-do-list i vari cicli ma con una priorità bassa. Ora ci sono tante cose più urgenti da fare
siete forti