Author |
Topic |
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 23 December 2012 : 12:50:36
|
Si, corretto. La radice quadrata la devi calcolare tu ed inserirla nella giusta proprietà da pannello di controllo.
E' una limitazione un po' dura, ma all'epoca della creazione del linguaggio, e del suo interprete, non si poteva fare diversamente. Pena una drastica riduzione della velocità di elaborazione.
Tutto questo è stato superato nella nuova versione del linguaggio perchè l'interprete (la procedura che esegue il codice scritto nel linguaggio di programmazione), è stato completamente riscritto, come del resto l'intera piattaforma.
Pensa che il nuovo interprete è mediamente molto più veloce del vecchio, e che nel 90% dei casi abbiamo registrato un miglioramento della velocità di calcolo anche di 100 volte (100 volte non il 100%! e quindi del 10000%) rispetto all'attuale versione.
|
|
|
Frenk
Nuovo Utente
41 Posts |
Posted - 23 December 2012 : 14:43:08
|
quote: Originally posted by SupportoTecnico
Si, corretto. La radice quadrata la devi calcolare tu ed inserirla nella giusta proprietà da pannello di controllo.
E' una limitazione un po' dura, ma all'epoca della creazione del linguaggio, e del suo interprete, non si poteva fare diversamente. Pena una drastica riduzione della velocità di elaborazione.
Tutto questo è stato superato nella nuova versione del linguaggio perchè l'interprete (la procedura che esegue il codice scritto nel linguaggio di programmazione), è stato completamente riscritto, come del resto l'intera piattaforma.
Pensa che il nuovo interprete è mediamente molto più veloce del vecchio, e che nel 90% dei casi abbiamo registrato un miglioramento della velocità di calcolo anche di 100 volte (100 volte non il 100%! e quindi del 10000%) rispetto all'attuale versione.
Visto che le Hull le guardo solo qualche volta per delle conferme cicliche e non per tradare,,, ho risolto in questa maniera:
Property Periodi() As Numeric 'definiamo il range di validit della proprieta'... Range (1, 40000) 'definiamo il valore di default della proprieta'... Default (12) EndProperty
Property Meta_Periodi() As Numeric 'definiamo il range di validit della proprieta'... Range (1, 40000) 'definiamo il valore di default della proprieta'... Default (6) EndProperty
Property radice As Numeric
list (radice T_5_TF5m, 5) list (radice T_4_TF5m, 7.0710678) list (radice T_3_TF5m, 10) list (radice T_2_TF5m, 14.142135) list (radice T_1_TF1h, 5.6568542) list (radice T_TF1h, 8) list (radice T1_TF1h, 11.313708) list (radice T2_TF1h, 16) list (radice T3_TF1h, 22.627416) list (radice T4_TF1h, 32) list (radice T5_TF1h, 45.254833) list (radice 2Anni_TF1h, 65) list (radice 4Anni_TF1h, 90.509667) EndProperty
Function Main()
dim hull as Numeric
Hull = moveav(2 * (moveav(close, Meta_periodi, "w")) - moveav(close, periodi, "w"), radice, "W")
Return Hull
Endfunction
in pratica tramite il List ho messo la radice quadrata di riferimento al ciclo che sto analizzando,,,, le Hull normalmente utilizzano due colori, uno per l' inversione al rialzo e l' altra per l' inversione al ribasso ma per me va bene anche monocolore,,, il listato lo inserito nel caso qualcuno lo voglia utilizzare. La piattaforma è sicuramente da migliorare su diverse cose, ma ha potenzialita enormi ripeto ENORMI, e per ora posso andare avanti tranquillamente con questa versione,,,, sono sicuro che la nuova farà di questa piattaforma una delle migliori in circolazione e per di più è Italiana,, sicuramente alla fine del periodo di prova "fine gennaio" comprerò la licenza,,,, ho sempre pensato che la piattaforma non ti fa diventare un buon Trader ma il Trader ha bisogno di una piattaforma che si trovi a suo agio....... Ho iniziato a cercare di buttare giu il codice del Battleplan, credo che la piattaforma lo possa tranquillamente costruire, devo capire meglio come il property gestisce la data. Ora però è tempo di regali, ci sta che per una paio di giorni non ci ritorni sopra,,,, intanto ti auguro un Buon Natale.... Supporto Tecnico veramente valido.
|
|
|
Frenk
Nuovo Utente
41 Posts |
Posted - 06 January 2013 : 20:33:55
|
quote: Originally posted by Frenk
quote: Originally posted by SupportoTecnico
Si, corretto. La radice quadrata la devi calcolare tu ed inserirla nella giusta proprietà da pannello di controllo.
E' una limitazione un po' dura, ma all'epoca della creazione del linguaggio, e del suo interprete, non si poteva fare diversamente. Pena una drastica riduzione della velocità di elaborazione.
Tutto questo è stato superato nella nuova versione del linguaggio perchè l'interprete (la procedura che esegue il codice scritto nel linguaggio di programmazione), è stato completamente riscritto, come del resto l'intera piattaforma.
Pensa che il nuovo interprete è mediamente molto più veloce del vecchio, e che nel 90% dei casi abbiamo registrato un miglioramento della velocità di calcolo anche di 100 volte (100 volte non il 100%! e quindi del 10000%) rispetto all'attuale versione.
Visto che le Hull le guardo solo qualche volta per delle conferme cicliche e non per tradare,,, ho risolto in questa maniera:
Property Periodi() As Numeric 'definiamo il range di validit della proprieta'... Range (1, 40000) 'definiamo il valore di default della proprieta'... Default (12) EndProperty
Property Meta_Periodi() As Numeric 'definiamo il range di validit della proprieta'... Range (1, 40000) 'definiamo il valore di default della proprieta'... Default (6) EndProperty
Property radice As Numeric
list (radice T_5_TF5m, 5) list (radice T_4_TF5m, 7.0710678) list (radice T_3_TF5m, 10) list (radice T_2_TF5m, 14.142135) list (radice T_1_TF1h, 5.6568542) list (radice T_TF1h, 8) list (radice T1_TF1h, 11.313708) list (radice T2_TF1h, 16) list (radice T3_TF1h, 22.627416) list (radice T4_TF1h, 32) list (radice T5_TF1h, 45.254833) list (radice 2Anni_TF1h, 65) list (radice 4Anni_TF1h, 90.509667) EndProperty
Function Main()
dim hull as Numeric
Hull = moveav(2 * (moveav(close, Meta_periodi, "w")) - moveav(close, periodi, "w"), radice, "W")
Return Hull
Endfunction
in pratica tramite il List ho messo la radice quadrata di riferimento al ciclo che sto analizzando,,,, le Hull normalmente utilizzano due colori, uno per l' inversione al rialzo e l' altra per l' inversione al ribasso ma per me va bene anche monocolore,,, il listato lo inserito nel caso qualcuno lo voglia utilizzare. La piattaforma è sicuramente da migliorare su diverse cose, ma ha potenzialita enormi ripeto ENORMI, e per ora posso andare avanti tranquillamente con questa versione,,,, sono sicuro che la nuova farà di questa piattaforma una delle migliori in circolazione e per di più è Italiana,, sicuramente alla fine del periodo di prova "fine gennaio" comprerò la licenza,,,, ho sempre pensato che la piattaforma non ti fa diventare un buon Trader ma il Trader ha bisogno di una piattaforma che si trovi a suo agio....... Ho iniziato a cercare di buttare giu il codice del Battleplan, credo che la piattaforma lo possa tranquillamente costruire, devo capire meglio come il property gestisce la data. Ora però è tempo di regali, ci sta che per una paio di giorni non ci ritorni sopra,,,, intanto ti auguro un Buon Natale.... Supporto Tecnico veramente valido.
Salve,
sto cercando di costruire il Battleplan, questo è il codice che ho creato:
Property Indietro_Avanti() As Numeric Range (0, 40000) Default () EndProperty
Property Periodi() As Numeric Range (1, 40000) Default (256) EndProperty
Property Tendenza() As Numeric Range ( - 20, 40000) Default (0) EndProperty
Property Modello() As Numeric Range (1, 2) Default (1)
EndProperty
Function Main()
Dim x as Numeric Dim phase as Numeric Dim grc as Numeric Dim C1 as Numeric
x = 360 / Periodi * TotBar() + indietro_avanti phase = - 90 grc = 0.01029 c1 = grc * TotBar(Tendenza)* 1
select case Modello
Case 1
return (4 * sin(x + phase) + 3 * sin(2 * x + phase) + 2 * sin(4 * x + phase) + 1 * sin(8 * x + phase)) + c1
Case 2
return (10 * sin(1 * x + phase) + 8 * sin(2 * x + phase) + 4 * sin(6 * x + phase) + 2 * sin(12 * x + phase)) + c1
endselect
Endfunction
il codice dovrebbe dare la possibilità di vedere due tipi di battleplan,,,, il problema è che non mi riesce di vederne nemmeno uno. Il primo problema è la riga per dare la tendenza:
c1 = grc * TotBar(Tendenza)* 1
dentro il Totbar la Tendenza non ci sta assolutamente, infatti l' interprete mi da errore,,,,, come posso risolvere?
Il secondo problema è relativo nella visualizzazione della forma del Battleplan, nel senso che se elimino la riga della tendenza l' interprete non mi da errore del codice ma al posto del battle vedo una riga orizzontale, a seconda del tipo di battle case 1 o case 2 i valori della riga cambiano sull' asse delle Y ma della forma el Battle neanche l' ombra,,,, c'è modo di risolvere?
grazie |
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 06 January 2013 : 22:05:37
|
Ci sono sicuramente 2 errori:
1) TotBar non accetta argomenti, quindi non puoi scrivere TotBar(Tendenza). Detto questo TotBar restituisce il numero totale dei periodi coinvolti nel calcolo. Se ad esempio il titolo sottostante visualizza una serie storica di 1000 barre allora TotBar ritornerà sempre 1000. Che cosa volevi ottenere esattamente da TotBar ?
2) l'argomento delle funzioni Sin e Cos deve essere espresso in radianti, non in gradi. Per farlo puoi utilizzare la funzione "Crad" che converte appunto i gradi in radianti:
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
|
|
|
Frenk
Nuovo Utente
41 Posts |
Posted - 07 January 2013 : 00:18:52
|
quote: Originally posted by SupportoTecnico
Ci sono sicuramente 2 errori:
1) TotBar non accetta argomenti, quindi non puoi scrivere TotBar(Tendenza). Detto questo TotBar restituisce il numero totale dei periodi coinvolti nel calcolo. Se ad esempio il titolo sottostante visualizza una serie storica di 1000 barre allora TotBar ritornerà sempre 1000. Che cosa volevi ottenere esattamente da TotBar ?
2) l'argomento delle funzioni Sin e Cos deve essere espresso in radianti, non in gradi. Per farlo puoi utilizzare la funzione "Crad" che converte appunto i gradi in radianti:
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
infatti non so se il totbar() è l' opzione giusta (ma credo), in pratica cerco quella funzione che calcola l' insieme cumulativo dell' array nel linguaggio metastock sarebbe il "cum (array)",,, il totbar() dovrebbe restituirmi un valore che sale di un punto per ciascun giorno dall' inizio del grafico. Prendi in considerazione che sto traducendo il codice dal linguaggio metastock quindi alcune parti dell' algoritmo non le conosco, comunque questo è il listato:
prd:=Input("Indietro - Avanti",-5000,5000,0); Lun:=Input("Periodi",1,30000,256); trend:=Input("Tendenza",-20,1000,0); modello:=Input("Modello",1,8,1); canc:=Input("Canc. Periodi Precedenti Batt",0,30000,0); x:=360/lun*Cum(1)+prd*1.41; phase:=-90; grc:=0.01029; c1:=(grc*Cum(trend)*1);
If(modello=1,(4*Sin(x+phase)+3*Sin(2*x+phase)+2*Sin(4*x+phase)+1*Sin(8*x+phase))+c1,
If(modello=2,(4*Sin(x+phase)+2*Sin(4*x+phase)+1*Sin(8*x+phase))+c1,
If(modello=3,(40*Sin(x+phase)+16*Sin(4*x+phase)+10*Sin(8*x+phase)+6*Sin(16*x+phase)+4*Sin(32*x+phase))+c1,
If(modello=4,(32*Sin(x+phase)+16*Sin(4*x+phase)+10*Sin(8*x+phase)+6*Sin(16*x+phase)+4*Sin(32*x+phase)+2*Sin(64*x+phase))+c1,
If(modello=5,(12*Sin(1*x+phase)+8*Sin(3*x+phase)+4*Sin(6*x+phase))+c1,
If(modello=6,(20*Sin(x+phase)+8*Sin(6*x+phase)+4*Sin(12*x+phase))+c1,
If(modello=7,(10*Sin(1*x+phase)+8*Sin(2*x+phase)+4*Sin(6*x+phase)+2*Sin(12*x+phase))+c1,
If(modello=8,(48*Sin(1*x+phase)+16*Sin(6*x+phase)+10*Sin(12*x+phase)+6*Sin(24*x+phase)+4*Sin(48*x+phase)+2*Sin(96*x+phase))+c1,IsUndefined(0)))))))))
in questo codice ci sono più modelli di battleplan ma a me ne servono solo due. Ho provato a ridurre ai minimi termini il codice:
Function Main() Dim x as Numeric Dim phase as Numeric
x = 360 / 256 phase = - 90
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase)))
Endfunction
anche in questo caso la risultante è una linea orizontale,,, forse sto sbagliando qualcosa nel codice,,,, da questa ultima formula come faresti a visualizzare il battleplan? |
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 07 January 2013 : 01:04:06
|
Nel manuale di Metastock è spiegato che "Cum" serve a sommare un certo valore per ogni periodo a partire dall'inizio della serie.
Quindi Cum(1) si traduce nel linguaggio di Insider come:
Pippo = Pippo + 1
dove Pippo è il nome di una variabile dichiarata a livello di modulo (fuori dalla funzione Main).
Di conseguenza Cum(Tendenza) si traduce in:
Pippo = Pippo + Tendenza
Questo è il codice del tuo indicatore con le opportune correzioni:
Dim Cum1 as Numeric = 0
Dim CumTendenza as Numeric = 0
Property Indietro_Avanti() As Numeric
Range (0, 40000)
Default ()
EndProperty
Property Periodi() As Numeric
Range (1, 40000)
Default (256)
EndProperty
Property Tendenza() As Numeric
Range ( - 20, 40000)
Default (0)
EndProperty
Property Modello() As Numeric
Range (1, 2)
Default (1)
EndProperty
Function Main()
Dim x as Numeric
Dim phase as Numeric
Dim grc as Numeric
Dim C1 as Numeric
Cum1 = Cum1 + 1
x = 360 / Periodi * Cum1 + indietro_avanti
phase = - 90
grc = 0.01029
CumTendenza = CumTendenza + Tendenza
c1 = grc * CumTendenza * 1
select case Modello
Case 1
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
Case 2
return (10 * sin(Crad(1 * x + phase)) + 8 * sin(Crad(2 * x + phase)) + 4 * sin(Crad(6 * x + phase)) + 2 * sin(Crad(12 * x + phase))) + c1
endselect
Endfunction
|
|
|
Frenk
Nuovo Utente
41 Posts |
Posted - 07 January 2013 : 18:15:03
|
[quote]Originally posted by SupportoTecnico
Nel manuale di Metastock è spiegato che "Cum" serve a sommare un certo valore per ogni periodo a partire dall'inizio della serie.
Quindi Cum(1) si traduce nel linguaggio di Insider come:
Pippo = Pippo + 1
dove Pippo è il nome di una variabile dichiarata a livello di modulo (fuori dalla funzione Main).
Di conseguenza Cum(Tendenza) si traduce in:
Pippo = Pippo + Tendenza
Questo è il codice del tuo indicatore con le opportune correzioni:
Dim Cum1 as Numeric = 0
Dim CumTendenza as Numeric = 0
Property Indietro_Avanti() As Numeric
Range (0, 40000)
Default ()
EndProperty
Property Periodi() As Numeric
Range (1, 40000)
Default (256)
EndProperty
Property Tendenza() As Numeric
Range ( - 20, 40000)
Default (0)
EndProperty
Property Modello() As Numeric
Range (1, 2)
Default (1)
EndProperty
Function Main()
Dim x as Numeric
Dim phase as Numeric
Dim grc as Numeric
Dim C1 as Numeric
Cum1 = Cum1 + 1
x = 360 / Periodi * Cum1 + indietro_avanti
phase = - 90
grc = 0.01029
CumTendenza = CumTendenza + Tendenza
c1 = grc * CumTendenza * 1
select case Modello
Case 1
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
Case 2
return (10 * sin(Crad(1 * x + phase)) + 8 * sin(Crad(2 * x + phase)) + 4 * sin(Crad(6 * x + phase)) + 2 * sin(Crad(12 * x + phase))) + c1
endselect
Endfunction
Bene, la forma dei Battleplan è perfetta e grazie per la spiegazione di come l' interprete gestisce una variabile cumulativa. Ho visto che inserendo l' indicatore nella finestra grafico "NO su Min-Max Grafico", con l' aumentare dello zoom l' indicatore tende a uscire dalla visuale del grafico, mentre se diminuisco lo zoom l' indicatore rientra nella visuale,,,, per analizzare periodi di lungo periodo va bene, mentre se voglio analizzare medio/breve periodo la cosa diventa problematica, c'è un modo per risolvere?
|
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 07 January 2013 : 20:11:26
|
Purtroppo nell'attuale versione del programma non è possibile gestire più scale Y nella finestra grafico. In pratica, gli indicatori tendono sempre a riempire tutto lo spazio a disposizione nella finestra.
Nella prossima "Insider Suite" anche questa limitazione sarà superata, sarà possibile gestire più Scale Y nella stessa finestra, configurandole a piacimento.
Inoltre sarà possibile inserire Indicatori e Grafici differenti e con differenti compressioni (risoluzioni) nella stessa finestra...
|
|
|
VpV
Utente Medio
155 Posts |
Posted - 08 January 2013 : 12:54:07
|
quote: Originally posted by Frenk
[quote]Originally posted by SupportoTecnico
Nel manuale di Metastock è spiegato che "Cum" serve a sommare un certo valore per ogni periodo a partire dall'inizio della serie.
Quindi Cum(1) si traduce nel linguaggio di Insider come:
Pippo = Pippo + 1
dove Pippo è il nome di una variabile dichiarata a livello di modulo (fuori dalla funzione Main).
Di conseguenza Cum(Tendenza) si traduce in:
Pippo = Pippo + Tendenza
Questo è il codice del tuo indicatore con le opportune correzioni:
Dim Cum1 as Numeric = 0
Dim CumTendenza as Numeric = 0
Property Indietro_Avanti() As Numeric
Range (0, 40000)
Default ()
EndProperty
Property Periodi() As Numeric
Range (1, 40000)
Default (256)
EndProperty
Property Tendenza() As Numeric
Range ( - 20, 40000)
Default (0)
EndProperty
Property Modello() As Numeric
Range (1, 2)
Default (1)
EndProperty
Function Main()
Dim x as Numeric
Dim phase as Numeric
Dim grc as Numeric
Dim C1 as Numeric
Cum1 = Cum1 + 1
x = 360 / Periodi * Cum1 + indietro_avanti
phase = - 90
grc = 0.01029
CumTendenza = CumTendenza + Tendenza
c1 = grc * CumTendenza * 1
select case Modello
Case 1
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
Case 2
return (10 * sin(Crad(1 * x + phase)) + 8 * sin(Crad(2 * x + phase)) + 4 * sin(Crad(6 * x + phase)) + 2 * sin(Crad(12 * x + phase))) + c1
endselect
Endfunction
Bene, la forma dei Battleplan è perfetta e grazie per la spiegazione di come l' interprete gestisce una variabile cumulativa. Ho visto che inserendo l' indicatore nella finestra grafico "NO su Min-Max Grafico", con l' aumentare dello zoom l' indicatore tende a uscire dalla visuale del grafico, mentre se diminuisco lo zoom l' indicatore rientra nella visuale,,,, per analizzare periodi di lungo periodo va bene, mentre se voglio analizzare medio/breve periodo la cosa diventa problematica, c'è un modo per risolvere?
Ciao Frenk, il problema lo risolvi creandoti un database con il sottostante l'indice/titoli ecc.., ad esempio DAX. Dopo di che richiami il DB dalla lista indicatori su una nuova finestra, plotti il battle o altro indicatore nella medisima, con adatta per ognuno e risolvi il problema.
Ciao |
|
|
Frenk
Nuovo Utente
41 Posts |
Posted - 08 January 2013 : 20:03:35
|
quote: Originally posted by VpV
quote: Originally posted by Frenk
[quote]Originally posted by SupportoTecnico
Nel manuale di Metastock è spiegato che "Cum" serve a sommare un certo valore per ogni periodo a partire dall'inizio della serie.
Quindi Cum(1) si traduce nel linguaggio di Insider come:
Pippo = Pippo + 1
dove Pippo è il nome di una variabile dichiarata a livello di modulo (fuori dalla funzione Main).
Di conseguenza Cum(Tendenza) si traduce in:
Pippo = Pippo + Tendenza
Questo è il codice del tuo indicatore con le opportune correzioni:
Dim Cum1 as Numeric = 0
Dim CumTendenza as Numeric = 0
Property Indietro_Avanti() As Numeric
Range (0, 40000)
Default ()
EndProperty
Property Periodi() As Numeric
Range (1, 40000)
Default (256)
EndProperty
Property Tendenza() As Numeric
Range ( - 20, 40000)
Default (0)
EndProperty
Property Modello() As Numeric
Range (1, 2)
Default (1)
EndProperty
Function Main()
Dim x as Numeric
Dim phase as Numeric
Dim grc as Numeric
Dim C1 as Numeric
Cum1 = Cum1 + 1
x = 360 / Periodi * Cum1 + indietro_avanti
phase = - 90
grc = 0.01029
CumTendenza = CumTendenza + Tendenza
c1 = grc * CumTendenza * 1
select case Modello
Case 1
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
Case 2
return (10 * sin(Crad(1 * x + phase)) + 8 * sin(Crad(2 * x + phase)) + 4 * sin(Crad(6 * x + phase)) + 2 * sin(Crad(12 * x + phase))) + c1
endselect
Endfunction
Bene, la forma dei Battleplan è perfetta e grazie per la spiegazione di come l' interprete gestisce una variabile cumulativa. Ho visto che inserendo l' indicatore nella finestra grafico "NO su Min-Max Grafico", con l' aumentare dello zoom l' indicatore tende a uscire dalla visuale del grafico, mentre se diminuisco lo zoom l' indicatore rientra nella visuale,,,, per analizzare periodi di lungo periodo va bene, mentre se voglio analizzare medio/breve periodo la cosa diventa problematica, c'è un modo per risolvere?
Ciao Frenk, il problema lo risolvi creandoti un database con il sottostante l'indice/titoli ecc.., ad esempio DAX. Dopo di che richiami il DB dalla lista indicatori su una nuova finestra, plotti il battle o altro indicatore nella medisima, con adatta per ognuno e risolvi il problema.
Ciao
Ciao VPV, stasera provo a fare come dici te, sembra un' ottima idea,,, spero di riuescirci, ancora non ho grande confidenza con il linguaggio di programmazione,,,grazie |
Edited by - Frenk on 08 January 2013 20:37:13 |
|
|
Frenk
Nuovo Utente
41 Posts |
Posted - 10 January 2013 : 21:25:25
|
quote: Originally posted by Frenk
quote: Originally posted by VpV
quote: Originally posted by Frenk
[quote]Originally posted by SupportoTecnico
Nel manuale di Metastock è spiegato che "Cum" serve a sommare un certo valore per ogni periodo a partire dall'inizio della serie.
Quindi Cum(1) si traduce nel linguaggio di Insider come:
Pippo = Pippo + 1
dove Pippo è il nome di una variabile dichiarata a livello di modulo (fuori dalla funzione Main).
Di conseguenza Cum(Tendenza) si traduce in:
Pippo = Pippo + Tendenza
Questo è il codice del tuo indicatore con le opportune correzioni:
Dim Cum1 as Numeric = 0
Dim CumTendenza as Numeric = 0
Property Indietro_Avanti() As Numeric
Range (0, 40000)
Default ()
EndProperty
Property Periodi() As Numeric
Range (1, 40000)
Default (256)
EndProperty
Property Tendenza() As Numeric
Range ( - 20, 40000)
Default (0)
EndProperty
Property Modello() As Numeric
Range (1, 2)
Default (1)
EndProperty
Function Main()
Dim x as Numeric
Dim phase as Numeric
Dim grc as Numeric
Dim C1 as Numeric
Cum1 = Cum1 + 1
x = 360 / Periodi * Cum1 + indietro_avanti
phase = - 90
grc = 0.01029
CumTendenza = CumTendenza + Tendenza
c1 = grc * CumTendenza * 1
select case Modello
Case 1
return (4 * sin(Crad(x + phase)) + 3 * sin(Crad(2 * x + phase)) + 2 * sin(Crad(4 * x + phase)) + 1 * sin(Crad(8 * x + phase))) + c1
Case 2
return (10 * sin(Crad(1 * x + phase)) + 8 * sin(Crad(2 * x + phase)) + 4 * sin(Crad(6 * x + phase)) + 2 * sin(Crad(12 * x + phase))) + c1
endselect
Endfunction
Bene, la forma dei Battleplan è perfetta e grazie per la spiegazione di come l' interprete gestisce una variabile cumulativa. Ho visto che inserendo l' indicatore nella finestra grafico "NO su Min-Max Grafico", con l' aumentare dello zoom l' indicatore tende a uscire dalla visuale del grafico, mentre se diminuisco lo zoom l' indicatore rientra nella visuale,,,, per analizzare periodi di lungo periodo va bene, mentre se voglio analizzare medio/breve periodo la cosa diventa problematica, c'è un modo per risolvere?
Ciao Frenk, il problema lo risolvi creandoti un database con il sottostante l'indice/titoli ecc.., ad esempio DAX. Dopo di che richiami il DB dalla lista indicatori su una nuova finestra, plotti il battle o altro indicatore nella medisima, con adatta per ognuno e risolvi il problema.
Ciao
Ciao VPV, stasera provo a fare come dici te, sembra un' ottima idea,,, spero di riuescirci, ancora non ho grande confidenza con il linguaggio di programmazione,,,grazie
Ecco il codice:
Property Periodi_Indietro As Numeric Range ( - 4000, 40000) Default (0)
endproperty
Database Relativo("prova", "FIB.MDD", "N")
Function Main()
dim dmvalue as Numeric
dmvalue = value(dbvalue(close, "Relativo"), Periodi_Indietro)
return dmvalue
Endfunction
si può portare indietro il prezzo in maniera da poter visualizzare meglio l' andamento ciclico prezzo/battleplan, pero c'è un piccolo problema che credo non si possa risolvere, quando porto indietro il prezzo l' ultimo valore tende a scendere fino a zero,,,,
per supporto tecnico
è possibile risolvere il problema? |
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 11 January 2013 : 01:03:23
|
Portando indietro la serie di n. periodi rimangono al solito scoperti gli ultimi n. periodi. L'interprete, non trovando quindi il valore della rispettiva chiusura, prende il valore zero.
Non è molto bello da vedere, questo si. Ma non si può fare molto a riguardo. Per esempio si potrebbe prendere il valore dell'ultima chiusura al posto dello zero, e quindi scrivere una cosa del genere:
dim dLastClose as Numeric
Property Periodi_Indietro As Numeric
Range ( - 4000, 40000)
Default (0)
endproperty
Database Relativo("prova", "FIB.MDD", "N")
Function Main()
dim dmvalue as Numeric
if (CurrentBar <= (TotBar - Periodi_Indietro)) Then
dmvalue = value(dbvalue(close, "Relativo"), Periodi_Indietro)
dLastClose = dmvalue
else
dmvalue = dLastClose
EndIf
return dmvalue
Endfunction
Il risultato sarà una linea orizzontale in avanti a partire dall'ultima chiusura.
|
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 17 January 2013 : 21:04:48
|
Abbiamo eseguito dei test sulla nuova "Insider Suite" utilizzando proprio il codice del Battleplan. Ebbene a parità di quantità di dati e PC di test, la velocità del calcolo del Battleplan è risultata di 60 volte superiore o più, rispetto all'attuale Insider 3000.
In pratica, se ad esempio con una grossa quantità di dati il tempo di calcolo del Battleplan utilizzando l'attuale Insider 3000 è di 30 secondi, con la nuova "Insider Suite" il calcolo viene portato a termine in meno di mezzo secondo! |
|
|
VpV
Utente Medio
155 Posts |
Posted - 18 January 2013 : 10:50:28
|
Solo per curiosità, ma delle cose che ci siamo detti negli anni, vedi forum con mie indicazioni, cosa avete inserito o modificato ripsetto all'attuale versione ?
Grazie |
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 18 January 2013 : 14:26:07
|
Beh.. direi che sono state prese in considerazione quasi tutte. Ma più in generale abbiamo cercato di inserire la maggior parte delle richieste/segnalazioni che negli anni gli utenti ci hanno fatto.
Comunque, se avete altri suggerimenti da sottoporci ben vengano! => non è mai troppo tardi! Anzi..
Contiamo di terminare lo sviluppo per l'estate e cominciare a sottoporre, a chi ne farà richiesta, una versione beta per l'autunno. Tu VpV e Frenk ovviamente siete invitati a partecipare visto i vostri interventi interessanti e assolutamente sopra la media. |
|
|
Topic |
|
|
|