Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
 All Forums
 Problemi con "Insider 3000 versione 3"
 Problemi col linguaggio di programmazione
 Incatore universale della Media della media

Note: You must be registered in order to post a reply.

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert Email Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

   
   

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.

Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07