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
 creazione e visulaizzazione indicatori.

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
piter Posted - 28 October 2005 : 10:23:19
Semplice e piccolo problema:

ho bisogno di calcolare ad eseempio la media mobile di una valibile

a=close-open (? un esempio a caso)

b=moveav(a,10,"S")

non me l'accetta.
ho risolto crando un indicatore che calcolase "a"

e poi un successivo indicatore che calcolasse la media dell'indicatore creato con "a", ma cos? mi trovo ad avere nella lista una serie di "mezzi indicatori"

L'altro problema ? che un volta creato questo indicatore che v? da
-100 a 0 quando lo faccio scorrere l'asse y non resta fisso.

Grazie

piter
9   L A T E S T    R E P L I E S    (Newest First)
SupportoTecnico Posted - 28 October 2005 : 20:25:13
Un esempio di ci? che vuoi fare lo puoi trovare qui:

http://www.insider3000.com/insider/it/tastudio/details1.asp?type=T&titleid=00500&argid=00100


Non vengono usati i valori di un indicatore ma solamente i valori standard di Open, High, Low e Close ma una volta capito il concetto puoi modificare il codice secondo le tue esigenze..

Ti faccio comunque un esempio di come entrare Long se il tuo indicatore supera il suo massimo degli ultimi 10 periodi + una certa percentuale (del 10%):


Function Main()
Dim dMyMax as Numeric

dMyMax = Max(MioIndicatore, 10)

Return (MioIndicatore > (dMyMax + 0.1 * dMyMax))
EndFunction
piter Posted - 28 October 2005 : 19:37:49
mi stavo muovendo creando un indicatore con valore fisso 70 e poi fare il cross di 2 indicatori che mi sembra si possa fare, ma devo dire che la tua soluzione (come sempre) ? la migliore.

Resta in sospeso il fatto di come posso dire al trading system di entrare in posizione o di chiuderne una al superamento del minimo (meglio ancora se al superamento del minimo - una percentuale o ad un max pi? una percentuale)

piter
SupportoTecnico Posted - 28 October 2005 : 19:13:54
Ti conviene lasciare perdere le funzioni Cross e gestire la cosa con degli IF.. magari controllando i valori precedenti.

Quindi ad esempio:

If (Value(MioIndicatore, -1) <= -75) Then
If (MioIndicatore > -75) Then
bIncrocio = True
Endif
Endif



In questo modo fai ci? che fa una funzione CrossAbove cio? controlli che il dato precedente dell'indicatore sia minore o uguale al tuo valore soglia e quello attuale sia maggiore del valore soglia. In pratica hai controllato se l'indicatore incrocia verso l'alto il tuo valore di soglia.



piter Posted - 28 October 2005 : 18:48:45
se non fosse possibile fare il cross del mio indicatore con un determinato valore di scala sarebbe possibile ad esempio fare la media a 1 periodo del valore della scala per il cross con l'indicatore, mi spiego meglio calcolo la media a 1 periodo del dato 70 e poi gli dico di dirmi se true crossabove del mio indicatore con la media.

piter
piter Posted - 28 October 2005 : 18:44:10
Intanto grazie,

per quello che riguarda il cross per? non credo sia la stessa cosa dire se l'indicatore incrocia un valore piuttosto che dire se maggiore o uguale a quel valore.
Il cross identifica un momento preciso e una direzione precisa di superamento che non si pu? attribuire a un >=

piter
SupportoTecnico Posted - 28 October 2005 : 16:02:08

Non ? possibile calcolare la media mobile di una variabile. La strada da te scelta ? quella giusta (quella di creare un indicatore a parte).

Per? esiste un'eccezione. Se la tua espressione ? composta da funzioni Dati o Indicatori allora puoi scrivere una cosa del tipo:

b = Moveav(Close - Open,10,"S")

cio? devi scrivere l'espressione direttamente nel parametro della funzione Moveav.


>>L'altro problema ? che un volta creato questo indicatore che
>>v? da -100 a 0 quando lo faccio scorrere l'asse y non resta fisso.

Si ? cos?. La scala Y viene settata automaticamente in modo da riempire totalemente la finestra. Per farla rimanere fissa devi settarla manualmente cliccando con il tasto sinistro del mouse sopra l'asse Y e trascinando il mouse su o gi? tenendo premuto il tasto.
Il problema ? che la modifica non ? permanente e la prossima volta che rientrerai sul grafico il tutto sar? risettato automaticamente.


>>return if crossabove(-75,"indicatore"(-1),=true) and

questa sintassi contiene un'infinit? di errori! Inoltre stai utilizzando la funzione CrossAbove in modo assolutamente errato, anzi impossibile. CrossAbove serve per capire se due ARRAY si stanno incrociando verso l'alto. Tu invece stai utilizzando due valori numerici non due array!

Per fare ci? che vuoi tu basta semplicemente scrivere:

If (Value(MioIndicatore, -1) > -75) Then


Per quanto riguarda la terza domanda:

>>if (crossabove(PIT_VAL, bandasup) = true) then

vale la stessa cosa detta prima. CrossAbove non pu? essere utilizzata per un'operazione del genere! Usa un semplice IF.



piter Posted - 28 October 2005 : 14:44:21
scusate, e poi ancora, perch? in un trading system
se scrivo

Function main()
dim bandasup as numeric
bandasup = 75
dim cond as Boolean = false
if (crossabove(PIT_VAL, bandasup) = true) then
cond = true
endif
return cond
Endfunction

non genera alcuna vendita, mentre se scrivo

Function main()
return PIT_VAL > 75
Endfunction

mi genera segnali?


piter
piter Posted - 28 October 2005 : 11:21:30
scusa
return if crossabove(-75,"indicatore"(-1),=true) and
if ........................

piter
piter Posted - 28 October 2005 : 11:20:24
visto che ci sono:

come faccio a dirgli in un trading system entra al superamento del minimo, ad esempio :

entra se avviene il cross tra -75 e il valore dell'indicatore del giorno prima (quindi indicatore che va in basso), e se si viola al ribasso il minimo di oggi.

return if crossabove(-75,"indicatore",=true) and
if ........................

piter

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