Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Help
 Aiuti, consigli, dubbi ...
 Ricezione dati DDE da Metatrader usando Metaserver
 New Topic  Reply to Topic
 Printer Friendly
Previous Page | Next Page
Author Previous Topic Topic Next Topic
Page: of 5

SupportoTecnico
Forum Admin

1261 Posts

Posted - 23 December 2012 :  12:50:36  Show Profile  Reply with Quote
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.
Go to Top of Page

Frenk
Nuovo Utente

41 Posts

Posted - 23 December 2012 :  14:43:08  Show Profile  Reply with Quote
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.
Go to Top of Page

Frenk
Nuovo Utente

41 Posts

Posted - 06 January 2013 :  20:33:55  Show Profile  Reply with Quote
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
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 06 January 2013 :  22:05:37  Show Profile  Reply with Quote
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

Go to Top of Page

Frenk
Nuovo Utente

41 Posts

Posted - 07 January 2013 :  00:18:52  Show Profile  Reply with Quote
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?
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 07 January 2013 :  01:04:06  Show Profile  Reply with Quote
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


Go to Top of Page

Frenk
Nuovo Utente

41 Posts

Posted - 07 January 2013 :  18:15:03  Show Profile  Reply with Quote
[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?

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 07 January 2013 :  20:11:26  Show Profile  Reply with Quote
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...
Go to Top of Page

VpV
Utente Medio

155 Posts

Posted - 08 January 2013 :  12:54:07  Show Profile  Reply with Quote
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
Go to Top of Page

Frenk
Nuovo Utente

41 Posts

Posted - 08 January 2013 :  20:03:35  Show Profile  Reply with Quote
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
Go to Top of Page

Frenk
Nuovo Utente

41 Posts

Posted - 10 January 2013 :  21:25:25  Show Profile  Reply with Quote
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?
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 11 January 2013 :  01:03:23  Show Profile  Reply with Quote
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.
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 17 January 2013 :  21:04:48  Show Profile  Reply with Quote
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!
Go to Top of Page

VpV
Utente Medio

155 Posts

Posted - 18 January 2013 :  10:50:28  Show Profile  Reply with Quote
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
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 18 January 2013 :  14:26:07  Show Profile  Reply with Quote
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.
Go to Top of Page
Page: of 5 Previous Topic Topic Next Topic  
Previous Page | Next Page
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07