Re: Re: Re: intervallo temporale
Scritto da trendinrialzo
no, Le assicuro che allo stato attuale è l'unica condizione perchè sto ancora lavorando alla possibilità di inserirvi un kst che incrocia la propria media mobile
Potrebbe allora spedire il file .TTS che le da problemi all'indirizzo email
assistenza@traderlink.it in modo da permetterci di controllare cosa accade?
Scritto da trendinrialzo
anzi al riguardo volevo farLe presente che provando nel modo qui sotto nonostante il kst incrocia la propria media mobile (ho verificato dall'indicatore sul grafico) il TS non restituisce alcun segnale, sicuramente sbaglio qualcosa anche se il compilatore non segnala alcun errore:
In effetti è un "problema" del compilatore.
Bisogna infatti stare attenti quando si scrive un TS alla differenza che c'è fra una variabile e un data-array: la prima contiene un valore numerico singolo mentre il secondo rappresenta una serie di variabili, come può essere ad esempio una media mobile ma più in generale tutti gli oscillatori.
Quando si esegue un calcolo il TS implicitamente converte i valori da data-array a variabile secondo l'occorrenza. Bisogna quindi stare particolarmente attenti quando si mischiano fra loro i due tipi di dati.
Prendiamo ad esempio la riga:
media_roc2=mov(roc(c,10),10,s)*2;
Quando il TS cerca di valutarla vede che si sta effettuando una moltiplicazione di un data-array ed una variabile ed implicitamente assume che si voglia calcolare una variabile. Per cui converte il data-array in variabile prendendo l'ultimo risultato disponibile ed effettua il calcolo, assegnando a media_roc2 un valore numerico singolo.
Il problema riscontrato dall'utente nasce in queste righe seguenti:
somma_kst=media_roc1+media_roc2+media_roc3+media_roc4;
trigger_kst=Mov(somma_kst,8,e);
Poichè tutti i media_rocX sono valori singoli il TS calcola anche somma_kst come valore singolo e quando alla fine si va a calcolarne la media è ovvio che il risultato ottenuto non è quello che ci si sarebbe aspettati, in quanto nel processo di calcolo è stata persa tutta la serie storica necessaria per il calcolo della media stessa.
Per tutto questo è assolutamente necessario fare attenzione quando si mischiano fra loro oscillatori e valori numerici ed è consigliabile, se si devono effettuare operazioni su un oscillatore, utilizzare esclusivamente la funzione OP.
Tale funzione è infatti un oscillatore particolare che permette di eseguire addizioni, sottrazioni, moltiplicazioni e divisioni di data-array.
Ecco come dovrebbe essere scritto la parte di calcolo del codice postato da trendinrialzo:
Codice:
media_roc1 = MOV(ROC(C, 6), 10, S);
media_roc2 = OP(MOV(ROC(C, 10), 10, S), CONSTVAL(2), Mul);
media_roc3 = OP(MOV(ROC(C, 15), 8, S), CONSTVAL(3), Mul);
media_roc4 = OP(MOV(ROC(C, 20), 15, S), CONSTVAL(4), Mul);
somma_kst = OP(media_roc1, OP(media_roc2, OP(media_roc3, media_roc4, Add), Add), Add);
trigger_kst = MOV(somma_kst, 8, E);
Da notare la funzione CONSTVAL che "forza" il TS a considerare il valore numerico espresso fra parentesi come se fosse un data-array.
E' una funzione che abbiamo appena sviluppato per risolvere questo stesso problema per cui, purtroppo, dovrete attendere il prossimo aggiornamento per poterla utilizzare.
Nel frattempo ci scusiamo ma non sarà possibile calcolare il KST a mano come desidererebbe trendinrialzo (consigliamo di utilizzare la funzione "preconfezionata" che sebbene utilizzi solo 3 medie anzichè le 4 desiderate dovrebbe permettere di andare avanti col proprio lavoro in attesa del suddetto aggiornamento).
Cordiali saluti,
Staff Traderlink
PS: se si desidera semplicemente osservare segnali è molto meglio utilizzare la funzione ColorBar anzichè EnterLong.