TS: BreakOut Dinamico in Easy Language
Collapse
X
-
-
Salve Max,Salve,
nella release di oggi verrà aggiunta una funzione specifica per l\'iterazione barra per barra:
Tutti i parametri, ad eccezione di initialValue, possono essere delle qualsiasi espressioni valide in EasyScript.Codice:BARLOOP ( initialValue, offset, operator, operand, minimumValue, maximumValue )
- Il parametro initialValue rappresenta il valore iniziale da utilizzare nel calcolo: può essere un qualsiasi valore numerico.
- Il parametro offset specifica il numero di barre trascorse a cui voglio riferirmi, deve essere un valore positivo.
- Il parametro operator identifica l\'operatore matematico da utilizzare, tra ADD, SUBSTRCT, MULTIPLY e DIVIDE (vedi funzione LOOP).
- Il parametro operand specifica il secondo operando dell\'operazione matematica da eseguire, e può essere una qualsiasi espressione (valore numerico, risultato di un\'altra funzione, ecc.).
- I parametri minimumValue e maximumValue rappresentano l\'eventuale range minimo e massimo dei valori in uscita dalla funzione. Se non è necessario limitare il valore minimo o massimo del risultato, è possibile utilizzare NAN. NAN è una nuova costante, che reppresenta "Not A Number", cioè un valore non numerico, utile quando quel particolare valore non deve essere utilizzato.
Il seguente esempio di EasyLanguage:
può essere quindi tradotto in:
Restituisce un valore numerico calcolato progressivamente, barra per barra. Il calcolo utilizza 20 come valore iniziale. Il numero 1 rappresenta il valore della barra precedente, che viene moltiplicato per (1 + DeltaHistVol), e limitato entro il range MinLB e MaxLB.Codice:SET EntryLB = BARLOOP(20, 1, MULTIPLY, (1 + DeltaHistVol), MinLB, MaxLB)
Max Francario
sto tentando di usare la nuova funzione per tradurre il codice in EasyScript,
ma mi sono incastrato su un messaggio d\'errore.
Ho scritto il seguente codice:
# Volatilità Thalos
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
....
ma mi segnala Error Division by Zero per la linea
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
e non riesco a trovare il modo di superare l\'intoppo.
Potresti suggerirmi come fare ?
Grazie
Saluti
Massimo
P.S.
Ho provato anche con:
SET DeltaHistVol = IF ( (YestHistVol <> 0) , (HistVol - YestHistVol)/HistVol , 0)
ma segnala sempre errore Division by zeroLast edited by maxmax68; 22-10-13, 01:20.Comment
-
Salve Max,
sto tentando di usare la nuova funzione per tradurre il codice in EasyScript,
ma mi sono incastrato su un messaggio d\'errore.
Ho scritto il seguente codice:
# Volatilità Thalos
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
....
ma mi segnala Error Division by Zero per la linea
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
e non riesco a trovare il modo di superare l\'intoppo.
Potresti suggerirmi come fare ?
Grazie
Saluti
Massimo
P.S.
Ho provato anche con:
SET DeltaHistVol = IF ( (YestHistVol <> 0) , (HistVol - YestHistVol)/HistVol , 0)
ma segnala sempre errore Division by zero
Buongiorno maxmax68,
ho notato che Massimiliano ha risposto ad una domanda analoga che si trova a questo post:
Ciao ragazzi, tra qualche minuto verrà rilasciata la nuova versione di beeTrader. Sono stati sistemati alcuni bugs emersi con la versione precedente ed aggiunte alcune funzionalità e funzioni di EasyScript: - aggiunto Importer/Exporter di script in EasyScript Editor; - migliorato tempo di apertura Report; - risolto bug
buona giornata,
MarcoI 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
-
Si, ho provato anch\'io con l\'artifizio indicato da Max ma non ha funzionato però puoi risolvere in maniera meno elegante con un altro artificio ovvero basta che aggiungi alla definizione della HistVol una piccola ininfluente quantità infinitesimale in modo che il risultato sia sempre diverso da zero e non ci sono problemi poi di divisione al denominatore nella successiva definizione della DeltaHistVol.Salve Max,
sto tentando di usare la nuova funzione per tradurre il codice in EasyScript,
ma mi sono incastrato su un messaggio d\'errore.
Ho scritto il seguente codice:
# Volatilità Thalos
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
....
ma mi segnala Error Division by Zero per la linea
SET DeltaHistVol = (HistVol - YestHistVol)/HistVol
e non riesco a trovare il modo di superare l\'intoppo.
Potresti suggerirmi come fare ?
Grazie
Saluti
Massimo
P.S.
Ho provato anche con:
SET DeltaHistVol = IF ( (YestHistVol <> 0) , (HistVol - YestHistVol)/HistVol , 0)
ma segnala sempre errore Division by zero
la riga diventa quindi
tutto il resto rimane invariatoCodice:SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)+0.0001
ApoLast edited by Apocalips; 22-10-13, 11:16.....non si desidera ciò che è facile ottenere (Ovidio)....
Comment
-
Bella mossa Apo!Si, ho provato anch\'io con l\'artifizio indicato da Max ma non ha funzionato però puoi risolvere in maniera meno elegante con un altro artificio ovvero basta che aggiungi alla definizione della HistVol una piccola ininfluente quantità infinitesimale in modo che il risultato sia sempre diverso da zero e non ci sono problemi poi di divisione al denominatore nella successiva definizione della DeltaHistVol.
la riga diventa quindi
tutto il resto rimane invariatoCodice:SET HistVol= SDV(CLOSE, 30, 1, SIMPLE)+0.0001
Apo..se corri dietro a due lepri, non ne prendi nemmeno una.Comment
-
Salve a tutti,Ciao
Sto\' tentando di portare su BeeTrader questo codice da Easy Language a Easy Script, del TS BreakOut Dinamico, ma non ci riesco nella traduzione, in quanto i parametri sono diversi e mi da\' continuamente errori:
Il Ts si basa su questo concetto:
Esso si basa sulla stima della Volatilita\' calcolata attraverso la deviazione standard a 30 periodi (Modificabile) dal cui valore viene ricavato un Delta successivamente aggiunto o sottratto al valore di un canale dinamico che misura la distanza tra massimi e minimi degli ultimi 20 periodi (EntryLB).
Il segnale di acquisto Long scatta quando i prezzi superano il massimo piu\' alto degli ultimi EntryLB periodi, dove EntryLB e\' il massimo valore tra 20 e l\' eventuale allungamento del canale derivante dall\' incremento della volatilita\'.
Il Segnale di vandita Short scatta invece quando i prezzi scendono al di sottodel minimo piu\' basso degli ultimi EntryLB periodi.
Il "Canale" per le uscite e\' invece piu\' stretto con la variabile EntryLB che viene dimezzata.
Poi c\'e\' il solito Filtro di Tempo.
Codice EasyLanguage:
Inputs: MaxLB(60), MinLB(20);
Vars: HistVol(0), YestHistVol(0), DeltaHistVol(0),
EntryLB(0),
ExitLB(0), YestEntryLB(0);
YestHistVol = HistVol;
HistVol = StdDev(C, 30);
DeltaHistVol = (HistVol - YestHistVol) / Histvol;
if CurrentBar = 1 Then
EntryLB = 20;
YestEntryLB = EntryLB;
EntryLB = YestEntryLB * (1 + DeltaHistVol);
EntryLB = MaxList(EntryLB, MinLB);
EntryLB = MinList(EntryLB, MaxLB);
ExitLB = EntryLB * 0.5;
If time > 1000 and Time < 1700 Then begin
Buy Tomorrow at Highest(High, EntryLB) Stop;
Sell Tomorrow at Lowest(Low, EntryLB) Stop;
End;
Ovviamente a questo listato possiamo aggiungere il Trailing Stop
e lo Stop Loss per il nostro Money Management
Vi ringrazio se potete darmi una mano nella traduzione in Easy Script semplificato, ci sto\' sbattendo la testa inutilmente...
Poi sicuramente fara\' un figurone nei TS da prendere ad esempio di Bee, su Traderstation da\' dei buonissimi risultati..
grazie alla nuova funzione di beeTrader e all\'idea di Apo
ecco tradotto il codice postato da Thalos.
L\'ho tradotto sia come indicatore per dare l\'immagine
del canale dinamico utilizzato per il signal, sia come segnale per la strategia.
Manca da inserire Stoploss e TrailingStop.
Si potrebbe inoltre snellire la parte di codice
relativo alle porzioni Sell, ExitLong e ExitShort
eliminando le linee inutili,
ma io per comodità mi sono limitato ad un copia-incolla.
Scusate la forma ma non ho ancora imparato a delimitare il codice.
Come si fa ?
Saluti
Massimo
#
# Indicatore Volatilità suggerito da Thalos
#
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET PLOT1 = EntryHigh
SET PLOT2 = EntryLow
SET PLOT3 = ExitHigh
SET PLOT4 = ExitLow
#
# Signal Volatilità suggerito da Thalos BuyScript
#
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
COND1 AND CLOSE > REF(EntryHigh, 1)
#
# Signal Volatilità suggerito da Thalos SellScript
#
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
COND1 AND CLOSE < REF(EntryLow, 1)
#
# Signal Volatilità suggerito da Thalos LongExitScript
#
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
CLOSE < REF(ExitLow, 1)
#
# Signal Volatilità suggerito da Thalos ShortExitScript
#
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
CLOSE > REF(ExitHigh, 1)Comment
-
Ottimo, mi hai preceduto sul tempo....
Volevo fare una precisazione, i valori (60) e (20) sono stati calcolati per semplicita\' su grafico con Time Frame a 1 Ora, per cui volendo aumentare o diminuire il Time Frame bisogna necessariamente variare in piu\' o in meno i due valori sopra descritti...
Ovviamente il TS e\' anche modificabile rendendolo piu\' performante mettendo un filtro che dia un segnale piu\' chiaro sull\' Ingresso e sull\' uscita, per esempio un indicatore di Trend tipo il SuperTrend, oppure anche una Media mobile esponenziale potrebbe andare bene...--- Trend my Friend ---Comment
-
Salve a tutti,
grazie alla nuova funzione di beeTrader e all\'idea di Apo
ecco tradotto il codice postato da Thalos.
L\'ho tradotto sia come indicatore per dare l\'immagine
del canale dinamico utilizzato per il signal, sia come segnale per la strategia.
Manca da inserire Stoploss e TrailingStop.
Si potrebbe inoltre snellire la parte di codice
relativo alle porzioni Sell, ExitLong e ExitShort
eliminando le linee inutili,
ma io per comodità mi sono limitato ad un copia-incolla.
Scusate la forma ma non ho ancora imparato a delimitare il codice.
Come si fa ?
Saluti
Massimo
#
# Indicatore Volatilità suggerito da Thalos
#
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET PLOT1 = EntryHigh
SET PLOT2 = EntryLow
SET PLOT3 = ExitHigh
SET PLOT4 = ExitLow
#
# Signal Volatilità suggerito da Thalos BuyScript
#
INPUTS: @MaxLB(60), @MinLB(20)
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
COND1 AND CLOSE > REF(EntryHigh, 1)
#
# Signal Volatilità suggerito da Thalos SellScript
#
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
COND1 AND CLOSE < REF(EntryLow, 1)
#
# Signal Volatilità suggerito da Thalos LongExitScript
#
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
CLOSE < REF(ExitLow, 1)
#
# Signal Volatilità suggerito da Thalos ShortExitScript
#
SET HistVol=SDV(CLOSE, 30, 1, SIMPLE)+0.000001
SET YestHistVol = REF(HistVol, 1)
SET DeltaHistVol = (HistVol - REF(HistVol, 1))/HistVol
SET EntryLB = BARLOOP (20 , 1, MULTIPLY , (1 + DeltaHistVol),@MinLB, @MaxLB)
SET ExitLB = EntryLB *0.5
SET EntryHigh = MAX(HIGH, EntryLB)
SET EntryLow = MIN(LOW, EntryLB)
SET ExitHigh = MAX(HIGH, ExitLB)
SET ExitLow = MIN(LOW, ExitLB)
SET Cond1= TIME >1000 AND TIME <1700
CLOSE > REF(ExitHigh, 1)
Ciao Massimo,
complimenti davvero.
Allora per delimitare il codice puoi fare così: premi questo bottone :
appena lo premi nel testo vengono inseriti questi tag:
Quello che ci scrivi dentro viene renderizzato con il codice.
saluti,
Marco BoscoI 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
-
Comment
-
Complimenti a tutti , veramente un ottimo lavoro.maxmax68;65923]Salve a tutti,
grazie alla nuova funzione di beeTrader e all\'idea di Apo
ecco tradotto il codice postato da Thalos.
L\'ho tradotto sia come indicatore per dare l\'immagine
del canale dinamico utilizzato per il signal, sia come segnale per la strategia.
Manca da inserire Stoploss e TrailingStop.
Si potrebbe inoltre snellire la parte di codice
relativo alle porzioni Sell, ExitLong e ExitShort
eliminando le linee inutili,
ma io per comodità mi sono limitato ad un copia-incolla.
Scusate la forma ma non ho ancora imparato a delimitare il codice.
Come si fa ?
Saluti
Massimo
FabComment
-
-
Io ho copiato esattamente il codice copiandolo dal forum e funziona senza problemi.Ciao ragazzi, ho caricato questo interessante indicatore senza problemi ma nonostante non mi dia errori di compilazione non riesco a far girare il TS, se provo a salvare lo script in strategy mi riporta quattro volte questo errore...
[ATTACH=CONFIG]16434[/ATTACH]
Qualcuno lo stà utilizzando?
Tieni presente (come spiegato nel codice) che il TS va applicato a time frame intraday.Comment


Comment