Programmazione Excel TS Giorno e Notte (3 lettori)

reef

...
Ho trovato un paio di errori nel mio codice che nessuno ha segnalato, fortuna che ci siete voi a guardarmi le spalle :moglie:
Ho implementato la finestra, ma c'è ancora qualcosa che non va nella prima parte!
Edit: forse sono i dati che non sono a posto... vedremo...

Ciao ender, ieri sera ho provato il tuo codice. Avrei alcuni suggerimenti.
1. Per vedere se funziona applicherei le regole del foglio di skarso, quindi partirei dalla regola canonica della differenza tra le chiusure DJ per comprare il FIB in chiusura e rivenderlo all'apertura. Mi pare che ora non sia così. La "taratura" del kappa1 secondo me può anche essere fatta successivamente.
2. Ho controllato i dati e mi pare che tornino con quelli del foglio di skarso
3. Il backtest del tuo codice compra alla mattina e rivende la mattina successiva. C'è qualcosa che non va o che non capisco io?

Purtroppo non sono ancora in grado di modificare il tuo codice scrivendo "bene" come fai tu, altrimenti l'avrei fatto. Per esempio non sono ancora capace di mescolare due serie di dati, una a TF 30 min e una a 15... :(

:)

PAT è una delle persone + preparate e colte che io conosca . . . :up:

:up:
 

ender85

Forumer attivo
Ciao ender, ieri sera ho provato il tuo codice. Avrei alcuni suggerimenti.
1. Per vedere se funziona applicherei le regole del foglio di skarso, quindi partirei dalla regola canonica della differenza tra le chiusure DJ per comprare il FIB in chiusura e rivenderlo all'apertura. Mi pare che ora non sia così. La "taratura" del kappa1 secondo me può anche essere fatta successivamente.
Infatti ho commentato tutta la seconda parte...
2. Ho controllato i dati e mi pare che tornino con quelli del foglio di skarso
3. Il backtest del tuo codice compra alla mattina e rivende la mattina successiva. C'è qualcosa che non va o che non capisco io?
Credo che manchi l'orario di entrata nella condizione di buy (ore 17.00?)
Molto dipende anche a che timeframe imposti il backetest...
Conviene usare due serie storiche di pari timeframe intraday e poi ricavarci i daily!
Purtroppo non sono ancora in grado di modificare il tuo codice scrivendo "bene" come fai tu, altrimenti l'avrei fatto. Per esempio non sono ancora capace di mescolare due serie di dati, una a TF 30 min e una a 15... :(
Multiple Time Frame support
 

reef

...
Infatti ho commentato tutta la seconda parte...
Credo che manchi l'orario di entrata nella condizione di buy (ore 17.00?)

Per sistemare l'orario:
Buy = inputx < kappa AND TimeNum()==174000; :up:

Per riempire il vettore ydj_1:
//Colonna F
Predittore_Open = Foreign( "DOW60-30m", "Open" );
Predittore_Open_Daily = IIf( cambiogiorno == 1, Predittore_Open, 0 );
Predittore_Open_Daily = ValueWhen( Predittore_Open_Daily != 0, Predittore_Open_Daily );
ydj_1 = 100 * ( ( Predittore_Open_Daily / Ref( Predittore_Open_Daily, -1 ) - 1 ) );//calcolo lo yield open VS open del DJ
ydj_1 = ValueWhen( ydj_1 != 0, ydj_1 );

Errorino....
//Colonna L
inputx = IIf( dvstx == 0, 0, ( ydj_1 - avgrx ) / dvstx );


Con rispetto :bow: , immagino che le mie modifiche non siano scritte nel modo più elegante possibile :D Lascio ovviamente a te le ottimizzazioni nella scrittura del codice.
I miei pasticci sono nel file XXXXX_test_reef.afl
Il tuo non lo tocco. Grazie delle dritte
:)


Solo questo varrebbe l'acquisto di Ami ;)
Ops, siamo su una discussione "Programmazione Excel" :D
 
Ultima modifica:

Imar

Forumer attivo
Ho trovato un paio di errori nel mio codice che nessuno ha segnalato, fortuna che ci siete voi a guardarmi le spalle :moglie:


Io ho guardato il tuo codice.... ma non mi ci sono ritrovato (come mi capita
quasi sempre con il codice di altri... ) ed ho dato la colpa alla frettolosità con cui avevo letto il tutto ed ho lascito perdere.(ok ok ho anche perso un poco di interesse su questo filone per motivi che non è il caso di approndire qui, altrimenti vado troppo OT).

In particolare,
.........dato che il segnale di BUY dipende da "inputx";
........ dato che "inputx" è sostanzialmente funzione del un solo argomento " [FONT=&quot]ydj_1[/FONT]"
............. mi sarei aspettato che esso fosse generato con una funzione "foreign" ai dati del DJIA... e sono rimasto un poco basito quanto mi pare che tu non sia andato oltre l'inizializzazione dell'array con l'istruzione

//Colonna Fydj_1=0;//calcolo lo yield open VS open del DJ

L'inizializzazione va bene.... ma quando riempi questo array con i rendimenti del DJIA?


Però, ripeto, non ho fatto troppa attenzione..... per me di base rimane la domanda "perchè una seduta negativa del DJ dovrebbe essere bullish per il FIB"?

For my 2 cents opinion, se non si risponde a questo, tutto il resto è solo "number crunching"....

Un saluto.
 
Ultima modifica:

Imar

Forumer attivo
Per riempire il vettore ydj_1:
//Colonna F
Predittore_Open = Foreign( "DOW60-30m", "Open" );
Predittore_Open_Daily = IIf( cambiogiorno == 1, Predittore_Open, 0 );
Predittore_Open_Daily = ValueWhen( Predittore_Open_Daily != 0, Predittore_Open_Daily );
ydj_1 = 100 * ( ( Predittore_Open_Daily / Ref( Predittore_Open_Daily, -1 ) - 1 ) );//calcolo lo yield open VS open del DJ
ydj_1 = ValueWhen( ydj_1 != 0, ydj_1 );


Ah ecco, così ha già più senso... solo che tutto questo codice nel msg #431.... non c'è.

Ragazzi.... se il codice completo è privato...... nulla quaestio..... però ditelo così il primo che passa (ad esempio io :D:D:D) evita di perderci tempo....

Adios.... :ciao:
 

ender85

Forumer attivo
Per sistemare l'orario:
Buy = inputx < kappa AND TimeNum()==174000; :up:
dipende dal timeframe che vogliamo usare
Per riempire il vettore ydj_1:
//Colonna F
Predittore_Open = Foreign( "DOW60-30m", "Open" );
Predittore_Open_Daily = IIf( cambiogiorno == 1, Predittore_Open, 0 );
Predittore_Open_Daily = ValueWhen( Predittore_Open_Daily != 0, Predittore_Open_Daily );
ydj_1 = 100 * ( ( Predittore_Open_Daily / Ref( Predittore_Open_Daily, -1 ) - 1 ) );//calcolo lo yield open VS open del DJ
ydj_1 = ValueWhen( ydj_1 != 0, ydj_1 );

Errorino....
//Colonna L
inputx = IIf( dvstx == 0, 0, ( ydj_1 - avgrx ) / dvstx );
Ricontrollo :D
Con rispetto :bow: , immagino che le mie modifiche non siano scritte nel modo più elegante possibile :D Lascio ovviamente a te le ottimizzazioni nella scrittura del codice.
I miei pasticci sono nel file XXXXX_test_reef.afl
Il tuo non lo tocco. Grazie delle dritte
:)
Il codice non è per nulla ottimizzato per l'esecuzione, ho solo cercato di rendelo il più semplice possibile da leggere.
Solo questo varrebbe l'acquisto di Ami ;)
Ops, siamo su una discussione "Programmazione Excel" :D
Non hai ancora visto il Custom Backtester: Porfolio Backtester Interface Reference
Io ho guardato il tuo codice.... ma non mi ci sono ritrovato (come mi capita
quasi sempre con il codice di altri... ) ed ho dato la colpa alla frettolosità con cui avevo letto il tutto ed ho lascito perdere.(ok ok ho anche perso un poco di interesse su questo filone per motivi che non è il caso di approndire qui, altrimenti vado troppo OT).

In particolare,
.........dato che il segnale di BUY dipende da "inputx";
........ dato che "inputx" è sostanzialmente funzione del un solo argomento " [FONT=&quot]ydj_1[/FONT]"
............. mi sarei aspettato che esso fosse generato con una funzione "foreign" ai dati del DJIA... e sono rimasto un poco basito quanto mi pare che tu non sia andato oltre l'inizializzazione dell'array con l'istruzione

//Colonna Fydj_1=0;//calcolo lo yield open VS open del DJ

L'inizializzazione va bene.... ma quando riempi questo array con i rendimenti del DJIA?
Non avevo sottomano le serie storiche, per cui non avevo ancora scritto il richiamo alla serie storica esterna. L'ho fatto ieri!
Però, ripeto, non ho fatto troppa attenzione..... per me di base rimane la domanda "perchè una seduta negativa del DJ dovrebbe essere bullish per il FIB"?

For my 2 cents opinion, se non si risponde a questo, tutto il resto è solo "number crunching"....

Un saluto.
Giusta domanda, lascio la parola a chi ha proposto il progetto.
Se mi mandi la mail con cui ti sei registrato a dropbox ti condivido la cartella...
 

ender85

Forumer attivo
Per riempire il vettore ydj_1:
//Colonna F
Predittore_Open = Foreign( "DOW60-30m", "Open" );
Predittore_Open_Daily = IIf( cambiogiorno == 1, Predittore_Open, 0 );
Predittore_Open_Daily = ValueWhen( Predittore_Open_Daily != 0, Predittore_Open_Daily );
ydj_1 = 100 * ( ( Predittore_Open_Daily / Ref( Predittore_Open_Daily, -1 ) - 1 ) );//calcolo lo yield open VS open del DJ
ydj_1 = ValueWhen( ydj_1 != 0, ydj_1 );
ydj_1 = ValueWhen( ydj_1 != 0, ydj_1 );
questo è sbagliato, o almeno come ho pensato io il ydj_1 non ha bisogno di questa istruzione. Ma è una scelta di programmazione, se avete idee diverse per implementarlo parliamone.
Abbiamo Imar e Angio in questo thread, programmatori Amibroker con molta più esperienza di me!

X l'altro errore hai ragione ho dimenticato un =, bravo!:up:
 

Skarso

Forumer attivo
..... per me di base rimane la domanda "perchè una seduta negativa del DJ dovrebbe essere bullish per il FIB"?

For my 2 cents opinion, se non si risponde a questo, tutto il resto è solo "number crunching"....


eh non hai guardato bene il foglio . . . :rolleyes:
in realtà nemmeno io lo sapevo, l’ ho letto su questo thread . . . :-o
però ho verificato ed un ACF( 1 ) di ydj_1 vs yield2 pari a – 0.130 mi è sembrata una buona motivazione x provare . . . :D
 

Pek

Forumer storico
eh non hai guardato bene il foglio . . . :rolleyes:
in realtà nemmeno io lo sapevo, l’ ho letto su questo thread . . . :-o
però ho verificato ed un ACF( 1 ) di ydj_1 vs yield2 pari a – 0.130 mi è sembrata una buona motivazione x provare . . . :D

Appunto
Il problema è a monte
Esiste realmente e fino a quando l'effetto reverse,pur non sfruttabile senza filtri, su close degli indici USA che sembra manifestarsi dal 2000 (2002 per il Reverse Long giallo)?
L'effetto sugli indici europei è derivato
 

Allegati

  • CReverse.gif
    CReverse.gif
    10,2 KB · Visite: 457
Ultima modifica:

Users who are viewing this thread

Alto