Discussione: Indicatore Pidi_Trend
-
03-12-13, 14:58 #11Senior Member



- Data Registrazione
- Dec 2009
- Messaggi
- 813
-
03-12-13, 15:36 #12Senior Member

- Data Registrazione
- Nov 2010
- Messaggi
- 105
-
03-12-13, 21:43 #13Senior Member

- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
Ciao Luca,
scusa il ritardo con cui ti rispondo, assolutamente nessun disturbo !
Probabilmente a quest'ora avrai già individuato il problema.
L'unica spiegazione logica che mi viene in mente è che tu nel copia-incolla
abbia importato qualche carattere strano nell'editor. E quel carattere è la causa dell'errore.
Prova a controllare all'inizio e alla fine del codice che non ci siano errori.
Saluti
Massimo
-
03-12-13, 21:48 #14Senior Member

- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
-
04-12-13, 16:10 #15Senior Member


- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao Massimo,
scusa ma leggo soltanto adesso.
Per il calcolo degli strike
# Calcolo dei 2 livelli di Strike Up SET StrikeUp1 = DIV(TODAYOPEN() * 100, 50) / 2 + @AmpStrike SET StrikeUp2 = StrikeUp1 + @AmpStrike # Calcolo dei 2 livelli di Strike Down SET CondDown = MOD(TODAYOPEN() * 100, 50) = 0 SET StrikeDown1 = IF(CondDown, DIV(TODAYOPEN() * 100, 50) / 2 - @AmpStrike, DIV(TODAYOPEN() * 100, 50) / 2) SET StrikeDown2 = StrikeDown1 - @AmpStrike
per il Bund si è dovuto moltiplicare il TODAYOPEN per 100 in modo tale da togliere tutti i decimali (il Bund ne ha 2, ma se un altro future o azione ad esempio ne avesse 4 allora andava moltiplicato per 10000), altrimenti beeTrader approssima all'unità e sballa il risultato della divisione.
In seguito quel 50 che si divide a TODAYOPEN() * 100 è un multiplo della distanza @AmpStrike :
è @AmpStrike * 100 in questo caso sul Bund; sarebbe stato @AmpStrike * 10000 per un altro sottostante a 4 cifre decimali.
Ed infine quel 2 che si è usato per dividere il DIV(TODAYOPEN() * 100, 50)
in realtà sarebbe pari a 1 / @AmpStrike
Quindi per avere un codice corretto per un future diverso dal Bund andrebbero fatte alcune piccole modifiche.
Ma siccome per il momento si era detto che le Fasce di Pidi si usavano solo sul Bund, io l'avevo scritto così!Ultima modifica di Smash; 04-12-13 alle 16:26
-
04-12-13, 19:20 #16Senior Member

- Data Registrazione
- Nov 2010
- Messaggi
- 105
Ciao Massimo,
ti descrivo la procedura che applico.
Vado dentro new easyscript poi indicator copio e incollo questo:
# Ampiezza Strike
INPUTS: @AmpStrike(0.5)
# Ampiezza Fascia Pidi
INPUTS: @AmpPidi(0.22)
# Ampiezza Frontiera della direzione
INPUTS: @AmpFdD(0.22)
# Calcolo dei Pivot Points
SET AP = (YESTERDAYHIGH() + YESTERDAYLOW() + YESTERDAYCLOSE()) / 3
SET Sup1 = (AP * 2) - YESTERDAYHIGH()
SET Res1 = (AP * 2) - YESTERDAYLOW()
SET Sup2 = AP - (Res1 - Sup1)
SET Res2 = (AP - Sup1) + Res1
#SET Res3 = Res2 + (YESTERDAYHIGH() - YESTERDAYLOW())
#SET Sup3 = Sup2 - (YESTERDAYHIGH() - YESTERDAYLOW())
# Calcolo Frontiere della direzione
SET FdDUp = TODAYOPEN() + @AmpFdD
SET FdDDown = TODAYOPEN() - @AmpFdD
# Calcolo dei 2 livelli di Strike Up
SET StrikeUp1 = DIV(TODAYOPEN() * 100, 50) / 2 + @AmpStrike
SET StrikeUp2 = StrikeUp1 + @AmpStrike
# Calcolo dei 2 livelli di Strike Down
SET CondDown = MOD(TODAYOPEN() * 100, 50) = 0
SET StrikeDown1 = IF(CondDown, DIV(TODAYOPEN() * 100, 50) / 2 - @AmpStrike, DIV(TODAYOPEN() * 100, 50) / 2)
SET StrikeDown2 = StrikeDown1 - @AmpStrike
# Calcola SogliaPidiUp
SET c1 = IF(StrikeUp1 < Res2, StrikeUp1, Res2 )
SET c2 = IF(StrikeUp1 < Res1, Res1, c1)
SET c3 = IF(StrikeUp1 < Res1, StrikeUp1, Res1 )
SET c4 = IF(StrikeUp1 < AP, AP, c3)
SET SogliaPidiUp = IF(TODAYOPEN() > AP, c2 , c4)
# Calcola SogliaPidiDown
SET c5 = IF(StrikeDown1 > Sup2, StrikeDown1, Sup2 )
SET c6 = IF(StrikeDown1 > Sup1, Sup1, c5)
SET c7 = IF(StrikeDown1 > Sup1, StrikeDown1, Sup1 )
SET c8 = IF(StrikeDown1 > AP, AP, c7)
SET SogliaPidiDown = IF(TODAYOPEN() < AP, c6 , c8)
# Calcola Punti di non ritorno
SET PNRUp = SogliaPidiUp + @AmpPidi
SET PNRDown = SogliaPidiDown - @AmpPidi
SET PLOT1 = TODAYOPEN()
SET PLOT2 = FdDUp
SET PLOT3 = FdDDown
SET PLOT4 = PNRUp
SET PLOT5 = PNRDown
SET PLOT6 = SogliaPidiUp
SET PLOT7 = SogliaPidiDown
SET PLOTCOLOR1 = COLOR_SILVER
SET PLOTCOLOR2 = COLOR_GREEN
SET PLOTCOLOR3 = COLOR_RED
SET PLOTCOLOR4 = COLOR_GREEN
SET PLOTCOLOR5 = COLOR_RED
SET PLOTCOLOR6 = COLOR_YELLOW
SET PLOTCOLOR7 = COLOR_YELLOW
-
04-12-13, 19:50 #17Senior Member


- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
-
04-12-13, 21:19 #18Senior Member

- Data Registrazione
- Sep 2013
- Località
- Monza
- Messaggi
- 186
-
05-12-13, 13:32 #19Senior Member

- Data Registrazione
- Nov 2010
- Messaggi
- 105
Ciao Smash,
veramente ho l'ultima versione di Beetrader.
L'indicatore va copiato e incollato senza aggiungere niente?
perchè mi dice che ci sono errori.
devo aggiungere qualcosa dentr output?
grazie
Luca
-
05-12-13, 14:42 #20Senior Member


- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351

Rispondi Citando

