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

 All Forums
 Problemi con "Insider 3000 versione 3"
 Problemi col linguaggio di programmazione
 creazione e visulaizzazione indicatori.
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

piter
Nuovo Utente

40 Posts

Posted - 28 October 2005 :  10:23:19  Show Profile  Reply with Quote
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

piter
Nuovo Utente

40 Posts

Posted - 28 October 2005 :  11:20:24  Show Profile  Reply with Quote
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
Go to Top of Page

piter
Nuovo Utente

40 Posts

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

piter
Go to Top of Page

piter
Nuovo Utente

40 Posts

Posted - 28 October 2005 :  14:44:21  Show Profile  Reply with Quote
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
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 28 October 2005 :  16:02:08  Show Profile  Reply with Quote

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.



Go to Top of Page

piter
Nuovo Utente

40 Posts

Posted - 28 October 2005 :  18:44:10  Show Profile  Reply with Quote
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
Go to Top of Page

piter
Nuovo Utente

40 Posts

Posted - 28 October 2005 :  18:48:45  Show Profile  Reply with Quote
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
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 28 October 2005 :  19:13:54  Show Profile  Reply with Quote
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.



Go to Top of Page

piter
Nuovo Utente

40 Posts

Posted - 28 October 2005 :  19:37:49  Show Profile  Reply with Quote
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
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 28 October 2005 :  20:25:13  Show Profile  Reply with Quote
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
Go to Top of Page
  Previous Topic Topic Next Topic  
 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