T O P I C R E V I E W |
simo |
Posted - 20 April 2005 : 21:54:08 Ho creato un allarme e l'ho testato su diversi titoli (il risultato che ho trovato sono stati una serie di vero e falso). Dopodich? sono andato in esploratori, ho creato l'esploratore (ho impostato le opzioni su a partire da ...) e l'ho lanciato. Il report mi ha restituito un segnale di ingresso (entra lungo) in ogni giorno, quando invece il test mi forniva un segnale solo in giorni particolari. Inoltre specifico che l'allarme l'ho creato solo su lungo, attivando solo questo allarme. Grazie |
4 L A T E S T R E P L I E S (Newest First) |
simo |
Posted - 22 April 2005 : 21:34:01 Grazie.
|
SupportoTecnico |
Posted - 22 April 2005 : 20:59:20 Il problema sta nel fatto che nel caso degli allarmi, differentemente da come accade per gli indicatori o trading system, il codice e le variabili a livello di modulo vengono resettate per ogni periodo in elaborazione. Questo perch? l'allarme ? visto a livello di periodo e non di tutta la serie storica.
Nel tuo caso quindi non ha senso utilizzare l'array Temp perch? la volta successiva che il codice sar? eseguito Temp sar? resettato e di conseguenza il tuo allarme ritorner? sempre true.
Il modo corretto di scrivere il tuo codice ? il seguente:
function main() Dim dValue1 as Numeric Dim dValue2 as Numeric Dim dTmpMA10 as Numeric Dim dTmpMA20 as Numeric
dValue1 = (moveav(close, 10) - moveav(close, 20)) / (abs(moveav(close, 10) - moveav(close, 20)))
dTmpMA10 = Value(Moveav(Close, 10), - 1) dTmpMA20 = Value(Moveav(Close, 20), - 1) dValue2 = (dTmpMA10 - dTmpMA20) / (abs(dTmpMA10 - dTmpMA20))
Return (dValue1 <> dValue2)
Endfunction
|
simo |
Posted - 22 April 2005 : 19:37:08 Quello che faccio sono le seguenti operazioni: Costruisco l'allarme sulla cartella lungo e abilito solo questa formula impostando no su controllo apertura grafico e si su controlla ad ogni variazione dati, l'allarme ? cos? costruito: dim temp as Numeric()
function main()
dim result as Boolean
temp(currentbar) = (moveav(close, 10) - moveav(close, 20)) / (abs(moveav(close, 10) - moveav(close, 20)))
if (temp(currentbar - 1) = temp(currentbar)) then result = False else result = True endif
return result
endfunction Poi lo testo su un titolo a caso e il risultato sono una serie di vero o falso. Se poi vado in Esploratori, creo un esploratore attivandogli l'allarme creato sopra e avviando l'esplorazione sullo stesso titolo del test mi capita che il report mi da come segnale qualsiasi giorno. Quindi in fase di testing funziona, quando lo elaboro inserendo come opzioni: Gruppo di lavoro: (QUELLO DEL TITOLO CHE HO TESTATO) Tipo di esplorazione: a partire da ... Data iniziale: xxxxx (ne ho provate diverse) Ora: 00:00:000 Numero massimo di periodi da caricare: 1000 |
SupportoTecnico |
Posted - 21 April 2005 : 13:52:18 Il solo modo per darti una risposta ? vedere il codice dell'allarme.
Senza di quello ? impossibile dire qualsiasi cosa. |
|
|