T O P I C R E V I E W |
VpV |
Posted - 29 October 2008 : 16:14:36 Buon pomeriggio, ho scarito la versione in prova di Insider e ho delle difficoltà importanti nel trovare tutte le risposte sul manuale utente.
Il problema è questo:
Property Period() As Numeric 'definiamo il range di validit della proprieta'... Range (1, 50) 'definiamo il valore di default della proprieta'... Default (14) EndProperty
Function main()
Dim media1 as Numeric Dim media2 as Numeric Dim media3 as Numeric
media1 = moveav(close, period) 'cosa sostituire al primo argomento per renderlo universale ? media2 = moveav(media1, period) 'errore sul primo argomento, "atteso un array numerico" media3 = moveav(media2, period) 'idem
return media3
endfunction
Voglio creare un indicatore che mi fornisca la media della media della media. Lisciare il segnale dunque.
Il primo problema è che, come scritto a fianco del codice, nel primo argomento nulla funziona al di fuori del Close ecc... o altro indicatore; premetto che ho anche provveduto a creare altre funzioni Moveav ma il risultato, nonostante la chiamata, è sempre stato il solito "array numerico al 1° argomento".
Il 2° problema è quello di rendere disponibile per tutti gli indicatori di Insider questo indicatore ovvero nè più nè meno di quello che avviene già con la M.M ecc... quando si decide di disegnarla non su una nuova finestra o grafico titolo ma bensì calcolarla su quell'indicatore specifico con il doppio click del mause e successivo trascinamento del cursore.
Ringrazio anticipatamente. |
3 L A T E S T R E P L I E S (Newest First) |
SupportoTecnico |
Posted - 29 October 2008 : 18:11:28 Il linguaggio di Insider 3000 ha una sintassi simile a quella del visual basic. Per prenderne confidenza può essere una buona idea leggere qualche cosa riguardo la sintassi del VB.
Non puoi rendere l'indicatore disponibile su tutti gli oscillatori. Puoi però crearti una proprietà numerica di tipo "list" dove hai la lista degli indicatori selezionabili:
Property TipoIndicatore() As Numeric List (CCI, 1) List (Stocastico, 2) List (Rsi, 3) EndProperty
Poi dovrai gestire i diversi casi all'interno della funzione "main" a seconda del valore della proprietà magari con un select case:
Select case TipoIndicatore case 1 'gestisci il codice per CCI case 2 'gestisci il codice per Stocastico case 3 'gestisci il codice per RSI endselect
|
VpV |
Posted - 29 October 2008 : 17:52:20 quote: Originally posted by SupportoTecnico
Il problema è che media1, media2 e media3 non sono array numerici ma semplicemente numeri. Il modo migliore per scrivere ciò che vuoi fare è:
Function main() return moveav(moveav(moveav(close, period), period), period) endfunction
Una volta scritto correttamente l'indicatore e salvato è disponibile automaticamente nella lista indicatori.. cosi lo puoi aggiungere ai vari grafici.
Ti ringrazio per la velocità ma continuo ad avere dei problemi di non poco conto con il "metodo".
Property Period() As Numeric 'definiamo il range di validit della proprieta'... Range (1, 50) 'definiamo il valore di default della proprieta'... Default (14) EndProperty
Function main()
Dim mm1 as Numeric Dim mm2 as Numeric Dim mm3 as Numeric Dim 3MME as Numeric
mm1 = moveav(cci(30), period, "e") mm2 = moveav(moveav(cci(30), period, "e"), period, "e") mm3 = moveav(moveav(moveav(cci(30), period, "e",) period, "e"), period, "e")
3MME = 3 * (mm1 - mm2) + mm3
return 3MME 'moveav(moveav(moveav(cci(30), period, "e"), period, "e"), period, "e")
endfunction
Ora mi dà un nuovo errore, il percorso "logico" è tutto chiaro ma non in fase con l'interprete. Inoltre non riesco a rendere l'indicatore disponibile su tutti gli oscillatori. Nel codice sopra ho inserito il cci ma vorrei che l'indicatore personale si disegnasse automaticamente al soggetto volta per volta scelto così come avviene per gli altri indicatori di insider.
Grazie di nuovo.
PS: ritenete che l'unico modo per allinearsi con l'interprete sia quello di approfondire il Visual Basic ? Altro modo ? esempi ? manuale dettagliato ? ecc...
|
SupportoTecnico |
Posted - 29 October 2008 : 16:23:03 Il problema è che media1, media2 e media3 non sono array numerici ma semplicemente numeri. Il modo migliore per scrivere ciò che vuoi fare è:
Function main() return moveav(moveav(moveav(close, period), period), period) endfunction
Una volta scritto correttamente l'indicatore e salvato è disponibile automaticamente nella lista indicatori.. cosi lo puoi aggiungere ai vari grafici.
|
|
|